Update usage of short_session()
per upstream changes
This commit is contained in:
parent
7eb7c25172
commit
63a1172408
|
@ -124,7 +124,7 @@ class MemberImporter(ToCoreAPI):
|
||||||
empty_date_value = '0000-00-00 00:00:00'
|
empty_date_value = '0000-00-00 00:00:00'
|
||||||
|
|
||||||
def get_local_objects(self, host_data=None):
|
def get_local_objects(self, host_data=None):
|
||||||
return get_core_members(self.api, progress=self.progress)
|
return get_core_members(self.config, self.api, progress=self.progress)
|
||||||
|
|
||||||
def get_single_local_object(self, key):
|
def get_single_local_object(self, key):
|
||||||
assert len(self.key) == 1
|
assert len(self.key) == 1
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2021 Lance Edgar
|
# Copyright © 2010-2022 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -30,7 +30,6 @@ from sqlalchemy import orm
|
||||||
|
|
||||||
from rattail import importing
|
from rattail import importing
|
||||||
from rattail.db import model
|
from rattail.db import model
|
||||||
from rattail.db.util import short_session
|
|
||||||
from rattail.util import OrderedDict, pretty_quantity
|
from rattail.util import OrderedDict, pretty_quantity
|
||||||
from rattail_corepos.corepos import importing as corepos_importing
|
from rattail_corepos.corepos import importing as corepos_importing
|
||||||
from rattail_corepos.corepos.util import get_max_existing_vendor_id
|
from rattail_corepos.corepos.util import get_max_existing_vendor_id
|
||||||
|
@ -220,7 +219,7 @@ class VendorImporter(FromRattail, corepos_importing.model.VendorImporter):
|
||||||
super(VendorImporter, self).setup()
|
super(VendorImporter, self).setup()
|
||||||
|
|
||||||
# self.max_existing_vendor_id = self.get_max_existing_vendor_id()
|
# self.max_existing_vendor_id = self.get_max_existing_vendor_id()
|
||||||
self.max_existing_vendor_id = get_max_existing_vendor_id()
|
self.max_existing_vendor_id = get_max_existing_vendor_id(self.config)
|
||||||
self.last_vendor_id = self.max_existing_vendor_id
|
self.last_vendor_id = self.max_existing_vendor_id
|
||||||
|
|
||||||
def get_next_vendor_id(self):
|
def get_next_vendor_id(self):
|
||||||
|
@ -228,7 +227,7 @@ class VendorImporter(FromRattail, corepos_importing.model.VendorImporter):
|
||||||
self.last_vendor_id += 1
|
self.last_vendor_id += 1
|
||||||
return self.last_vendor_id
|
return self.last_vendor_id
|
||||||
|
|
||||||
last_vendor_id = get_max_existing_vendor_id()
|
last_vendor_id = get_max_existing_vendor_id(self.config)
|
||||||
return last_vendor_id + 1
|
return last_vendor_id + 1
|
||||||
|
|
||||||
def normalize_host_object(self, vendor):
|
def normalize_host_object(self, vendor):
|
||||||
|
|
|
@ -30,22 +30,23 @@ import sqlalchemy as sa
|
||||||
|
|
||||||
from corepos.db.office_op import Session as CoreSession, model as corepos
|
from corepos.db.office_op import Session as CoreSession, model as corepos
|
||||||
|
|
||||||
from rattail.db.util import short_session
|
from rattail.util import OrderedDict
|
||||||
from rattail.util import OrderedDict, progress_loop
|
|
||||||
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def get_core_members(api, progress=None):
|
def get_core_members(config, api, progress=None):
|
||||||
"""
|
"""
|
||||||
Shared logic for fetching *all* customer accounts from CORE-POS API.
|
Shared logic for fetching *all* customer accounts from CORE-POS API.
|
||||||
"""
|
"""
|
||||||
|
app = config.get_app()
|
||||||
|
|
||||||
# TODO: ideally could do this, but API doesn't let us fetch "all"
|
# TODO: ideally could do this, but API doesn't let us fetch "all"
|
||||||
# return api.get_members()
|
# return api.get_members()
|
||||||
|
|
||||||
# first we fetch all customer records from CORE DB
|
# first we fetch all customer records from CORE DB
|
||||||
with short_session(Session=CoreSession) as s:
|
with app.short_session(factory=CoreSession) as s:
|
||||||
db_customers = s.query(corepos.CustData).all()
|
db_customers = s.query(corepos.CustData).all()
|
||||||
s.expunge_all()
|
s.expunge_all()
|
||||||
|
|
||||||
|
@ -63,16 +64,17 @@ def get_core_members(api, progress=None):
|
||||||
logger("could not fetch member from CORE API: %s",
|
logger("could not fetch member from CORE API: %s",
|
||||||
dbcust.card_number)
|
dbcust.card_number)
|
||||||
|
|
||||||
progress_loop(fetch, db_customers, progress,
|
app.progress_loop(fetch, db_customers, progress,
|
||||||
message="Fetching Member data from CORE API")
|
message="Fetching Member data from CORE API")
|
||||||
return list(members.values())
|
return list(members.values())
|
||||||
|
|
||||||
|
|
||||||
def get_max_existing_vendor_id(session=None):
|
def get_max_existing_vendor_id(config, session=None):
|
||||||
"""
|
"""
|
||||||
Returns the "last" (max) existing value for the ``vendors.vendorID``
|
Returns the "last" (max) existing value for the ``vendors.vendorID``
|
||||||
column, for use when creating new records, since it is not auto-increment.
|
column, for use when creating new records, since it is not auto-increment.
|
||||||
"""
|
"""
|
||||||
with short_session(Session=CoreSession, session=session) as s:
|
app = config.get_app()
|
||||||
|
with app.short_session(factory=CoreSession, session=session) as s:
|
||||||
return s.query(sa.func.max(corepos.Vendor.id))\
|
return s.query(sa.func.max(corepos.Vendor.id))\
|
||||||
.scalar() or 0
|
.scalar() or 0
|
||||||
|
|
|
@ -92,7 +92,7 @@ class FromCOREPOSAPI(importing.Importer):
|
||||||
self.api = make_corepos_api(self.config)
|
self.api = make_corepos_api(self.config)
|
||||||
|
|
||||||
def get_core_members(self):
|
def get_core_members(self):
|
||||||
return get_core_members(self.api, progress=self.progress)
|
return get_core_members(self.config, self.api, progress=self.progress)
|
||||||
|
|
||||||
|
|
||||||
class CustomerImporter(FromCOREPOSAPI, corepos_importing.model.CustomerImporter):
|
class CustomerImporter(FromCOREPOSAPI, corepos_importing.model.CustomerImporter):
|
||||||
|
|
Loading…
Reference in a new issue