Add typer equivalents for rattail
commands
This commit is contained in:
parent
93c7b254a3
commit
ea147e8c0d
|
@ -2,7 +2,7 @@
|
|||
################################################################################
|
||||
#
|
||||
# Rattail -- Retail Software Framework
|
||||
# Copyright © 2010-2023 Lance Edgar
|
||||
# Copyright © 2010-2024 Lance Edgar
|
||||
#
|
||||
# This file is part of Rattail.
|
||||
#
|
||||
|
@ -24,11 +24,101 @@
|
|||
Rattail Commands
|
||||
"""
|
||||
|
||||
from rattail import commands
|
||||
from rattail.util import load_object
|
||||
import typer
|
||||
from typing_extensions import Annotated
|
||||
|
||||
from corepos.enum import CoreDbType
|
||||
|
||||
from rattail.commands import rattail_typer
|
||||
from rattail.commands.typer import importer_command, file_importer_command, typer_get_runas_user
|
||||
from rattail.commands.importing import (ImportSubcommand, ImportFileSubcommand,
|
||||
ImportCommandHandler)
|
||||
|
||||
|
||||
class ExportCore(commands.ImportSubcommand):
|
||||
@rattail_typer.command()
|
||||
@file_importer_command
|
||||
def corepos_import_square(
|
||||
ctx: typer.Context,
|
||||
**kwargs
|
||||
):
|
||||
"""
|
||||
Import transaction data from Square into CORE
|
||||
"""
|
||||
config = ctx.parent.rattail_config
|
||||
progress = ctx.parent.rattail_progress
|
||||
handler = ImportCommandHandler(
|
||||
config, import_handler_key='to_corepos_db_office_trans.from_square_csv.import')
|
||||
kwargs['user'] = typer_get_runas_user(ctx)
|
||||
handler.run(kwargs, progress=progress)
|
||||
|
||||
|
||||
@rattail_typer.command()
|
||||
@importer_command
|
||||
def export_corepos(
|
||||
ctx: typer.Context,
|
||||
**kwargs
|
||||
):
|
||||
"""
|
||||
Export data from Rattail to CORE-POS
|
||||
"""
|
||||
config = ctx.parent.rattail_config
|
||||
progress = ctx.parent.rattail_progress
|
||||
handler = ImportCommandHandler(
|
||||
config, import_handler_key='to_corepos_api.from_rattail.export')
|
||||
kwargs['user'] = typer_get_runas_user(ctx)
|
||||
handler.run(kwargs, progress=progress)
|
||||
|
||||
|
||||
@rattail_typer.command()
|
||||
@importer_command
|
||||
def import_corepos_api(
|
||||
ctx: typer.Context,
|
||||
**kwargs
|
||||
):
|
||||
"""
|
||||
Import data from a CORE POS API
|
||||
"""
|
||||
config = ctx.parent.rattail_config
|
||||
progress = ctx.parent.rattail_progress
|
||||
handler = ImportCommandHandler(
|
||||
config, import_handler_key='to_rattail.from_corepos_api.import')
|
||||
kwargs['user'] = typer_get_runas_user(ctx)
|
||||
handler.run(kwargs, progress=progress)
|
||||
|
||||
|
||||
@rattail_typer.command()
|
||||
@importer_command
|
||||
def import_corepos_db(
|
||||
ctx: typer.Context,
|
||||
corepos_dbtype: Annotated[
|
||||
CoreDbType,
|
||||
typer.Option(help="Type of CORE-POS DB engine to be used as data host. "
|
||||
"This determines which config section is used with regard "
|
||||
"to the --corepos-dbkey arg.")] = 'office_op',
|
||||
corepos_dbkey: Annotated[
|
||||
str,
|
||||
typer.Option(help="Config key for CORE POS database engine to be used as "
|
||||
"the \"host\", i.e. the source of the data to be imported. "
|
||||
"This key must be defined in the [rattail_corepos.db] section "
|
||||
"of your config file.")] = 'default',
|
||||
**kwargs
|
||||
):
|
||||
"""
|
||||
Import data from a CORE POS database
|
||||
"""
|
||||
config = ctx.parent.rattail_config
|
||||
progress = ctx.parent.rattail_progress
|
||||
handler = ImportCommandHandler(
|
||||
config, import_handler_key='to_rattail.from_corepos_db_office_op.import')
|
||||
kwargs['user'] = typer_get_runas_user(ctx)
|
||||
kwargs['handler_kwargs'] = {
|
||||
'corepos_dbtype': corepos_dbtype,
|
||||
'corepos_dbkey': corepos_dbkey,
|
||||
}
|
||||
handler.run(kwargs, progress=progress)
|
||||
|
||||
|
||||
class ExportCore(ImportSubcommand):
|
||||
"""
|
||||
Export data from Rattail to CORE-POS
|
||||
"""
|
||||
|
@ -37,7 +127,7 @@ class ExportCore(commands.ImportSubcommand):
|
|||
handler_key = 'to_corepos_api.from_rattail.export'
|
||||
|
||||
|
||||
class ImportCOREPOSAPI(commands.ImportSubcommand):
|
||||
class ImportCOREPOSAPI(ImportSubcommand):
|
||||
"""
|
||||
Import data from a CORE POS API
|
||||
"""
|
||||
|
@ -46,7 +136,7 @@ class ImportCOREPOSAPI(commands.ImportSubcommand):
|
|||
handler_key = 'to_rattail.from_corepos_api.import'
|
||||
|
||||
|
||||
class ImportCOREPOSDB(commands.ImportSubcommand):
|
||||
class ImportCOREPOSDB(ImportSubcommand):
|
||||
"""
|
||||
Import data from a CORE POS database
|
||||
"""
|
||||
|
@ -76,7 +166,7 @@ class ImportCOREPOSDB(commands.ImportSubcommand):
|
|||
return kwargs
|
||||
|
||||
|
||||
class CoreImportSquare(commands.ImportFromCSV):
|
||||
class CoreImportSquare(ImportFileSubcommand):
|
||||
"""
|
||||
Import transaction data from Square into CORE
|
||||
"""
|
||||
|
|
|
@ -25,13 +25,14 @@ CORE Office commands
|
|||
"""
|
||||
|
||||
import sys
|
||||
from enum import Enum
|
||||
|
||||
import requests
|
||||
from requests.auth import HTTPDigestAuth
|
||||
import typer
|
||||
from typing_extensions import Annotated
|
||||
|
||||
from corepos.enum import CoreDbType
|
||||
|
||||
from rattail.commands.typer import (make_typer, typer_eager_imports,
|
||||
importer_command, typer_get_runas_user,
|
||||
file_importer_command, file_exporter_command)
|
||||
|
@ -41,12 +42,6 @@ from rattail_corepos.config import core_office_url
|
|||
from rattail_corepos.corepos.office.util import get_fannie_config_value, get_blueline_template, make_blueline
|
||||
|
||||
|
||||
class CoreDbType(str, Enum):
|
||||
office_op = 'office_op'
|
||||
office_trans = 'office_trans'
|
||||
office_arch = 'office_arch'
|
||||
|
||||
|
||||
core_office_typer = make_typer(
|
||||
name='core_office',
|
||||
help="core-office -- command line interface for CORE Office"
|
||||
|
|
|
@ -49,6 +49,9 @@ rattail.subcommands =
|
|||
import-corepos-api = rattail_corepos.commands:ImportCOREPOSAPI
|
||||
import-corepos-db = rattail_corepos.commands:ImportCOREPOSDB
|
||||
|
||||
rattail.typer_imports =
|
||||
rattail_corepos = rattail_corepos.commands
|
||||
|
||||
rattail.emails =
|
||||
rattail_corepos = rattail_corepos.emails
|
||||
|
||||
|
|
Loading…
Reference in a new issue