From 5ef94d04b270117d5f98ca150222b7718692f68c Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Sun, 6 Jul 2025 20:16:34 -0400 Subject: [PATCH] Fix data --- app/api/services/contacts.py | 3 ++ app/api/services/myproduct.py | 59 ++++++++++++++++++++++++++++++---- app/api/services/products.py | 3 +- app/models/members_products.py | 7 ++++ 4 files changed, 65 insertions(+), 7 deletions(-) diff --git a/app/api/services/contacts.py b/app/api/services/contacts.py index e153240..1a40551 100644 --- a/app/api/services/contacts.py +++ b/app/api/services/contacts.py @@ -32,6 +32,8 @@ class ContactService(BaseService): validated_data = ContactService.validate_data(data, UserSchema()) token = validated_data.get('token') uid = validated_data.get('uid') + member_data = Members.get_member_by_uid(uid) + member_id = member_data.id cat_list = ['A000002', 'A000004', 'A000001', 'A000003'] @@ -81,6 +83,7 @@ class ContactService(BaseService): response_data = { "last_update": datetime.datetime.utcnow(), + "member_id":member_id, "category": category_data, "contacts": dList } diff --git a/app/api/services/myproduct.py b/app/api/services/myproduct.py index 4771848..11a46b5 100644 --- a/app/api/services/myproduct.py +++ b/app/api/services/myproduct.py @@ -18,12 +18,57 @@ class MyProductsService(BaseService): @staticmethod def process_subscription(data): - response_data = { - "subscription": "No ready", - "member_id": 1, - "uid": '', - } - return ResponseHelper.success(data=response_data) + try: + with db.session.begin(): + logger.info(f"Incoming MyProduct data ==>>>> {data}") + validated_data = MyProductsService.validate_data(data, MyProductSchema()) + token = validated_data.get('token') + uid = validated_data.get('uid') + member_data = Members.get_member_by_uid(uid) + member_id = member_data.id + + product_id = validated_data.get('product_id') + product_data = Products.get_product_by_product_id(product_id) + + if not product_data: + return { + "message": "Please provide product_id", + "data": None, + "error": "Bad request" + }, 400 + + mumberSub = MembersProducts.get_member_product_by_product__member_id(member_id, product_id) + if not mumberSub: + logger.error(f"Ready to add data to tables") + + + response_data = { + "subscription": "No ready", + "member_id": 1, + "uid": '', + } + return ResponseHelper.success(data=response_data) + + + except ValidationError as err: + + logger.error(f"Validation Error: {getattr(err, 'messages', str(err))}") + db.session.rollback() + return ResponseHelper.unprocessable_entity(result_description="Validation exception") + + except ValueError as err: + logger.error(f"{getattr(err, 'messages', str(err))}") + db.session.rollback() + return ResponseHelper.error(result_description=str(err)) + + except Exception as e: + logger.error(f"An error occurred: {str(e)}", exc_info=True) + db.session.rollback() + return ResponseHelper.internal_server_error() + + + + @@ -35,6 +80,8 @@ class MyProductsService(BaseService): validated_data = MyProductsService.validate_data(data, MyProductSchema()) token = validated_data.get('token') uid = validated_data.get('uid') + member_data = Members.get_member_by_uid(uid) + member_id = member_data.id product_id = validated_data.get('product_id') ''' diff --git a/app/api/services/products.py b/app/api/services/products.py index 388311d..e13b87b 100644 --- a/app/api/services/products.py +++ b/app/api/services/products.py @@ -47,8 +47,9 @@ class ProductsService(BaseService): validated_data = ProductsService.validate_data(data, UserSchema()) token = validated_data.get('token') uid = validated_data.get('uid') + member_data = Members.get_member_by_uid(uid) + member_id = member_data.id - member_id = 1 # current_user["user"]["id"] # PRODUCT_LIST = f"""SELECT p.id,p.uid,p.product_id,p.name,p.description,p.status,p.banner, # mp.status AS prov_status, # (CASE WHEN mp.status =6 THEN 'Preparing' WHEN mp.status=7 THEN 'Active' ELSE 'Activate Now' END) AS status_text diff --git a/app/models/members_products.py b/app/models/members_products.py index d3f5959..b23bac1 100644 --- a/app/models/members_products.py +++ b/app/models/members_products.py @@ -40,6 +40,13 @@ class MembersProducts(db.Model): return None return member_products + @classmethod + def get_member_product_by_product__member_id(cls, member_id, product_id): + member_product = cls.query.filter_by(member_id=str(member_id), product_id=str(product_id)) + if not member_product: + return None + return member_product + def to_dict(self): """