From a87f48224050d137ac0b87d8e2032296d582626e Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Sat, 11 Oct 2025 06:17:27 -0400 Subject: [PATCH] Refresh product from back office --- app/api/routes/routes.py | 8 +++++ app/api/services/office_templates.py | 50 +++++++++++++++++++++++----- app/models/member_product_refresh.py | 2 +- 3 files changed, 50 insertions(+), 10 deletions(-) diff --git a/app/api/routes/routes.py b/app/api/routes/routes.py index a8e87cb..8d32977 100644 --- a/app/api/routes/routes.py +++ b/app/api/routes/routes.py @@ -536,6 +536,14 @@ def get_product_update_office(): return jsonify(result) +@api.route('/office/rebuild-template', methods=['POST']) +def product_rebuild_office(): + # Call the dashboard service + data = request.get_json() + result = OfficeTemplatesService.office_template_rebuild(data) + return jsonify(result) + + @api.route('/office/products-templates', methods=['GET']) def get_product_templates(): # Call the dashboard service diff --git a/app/api/services/office_templates.py b/app/api/services/office_templates.py index f1c70af..0c72ebb 100644 --- a/app/api/services/office_templates.py +++ b/app/api/services/office_templates.py @@ -4,7 +4,7 @@ from app.api.services.base_service import BaseService from sqlalchemy import func, desc from datetime import datetime, timedelta, timezone from app.extensions import db -from app.models import OfficeUsers, CustomTemplates, MembersProducts, ProductsTemplates +from app.models import OfficeUsers, CustomTemplates, MembersProducts, ProductsTemplates, MembersProductsRefresh class OfficeTemplatesService(BaseService): @@ -31,7 +31,6 @@ class OfficeTemplatesService(BaseService): MembersProducts.set_member_product_custom_template(member_id, subscrtiption_uid, custom_id) - office_users_result = { "set_office_custom_template": [], } @@ -44,7 +43,6 @@ class OfficeTemplatesService(BaseService): } return office_users_result - @staticmethod def set_office_user_template(data): logger.info('set_office_user_template') @@ -56,7 +54,7 @@ class OfficeTemplatesService(BaseService): selectProduct = MembersProducts.get_member_product_by_subscription_uid(subscrtiption_uid) if selectProduct: - selectedTemplate = ProductsTemplates.get_template_by_uid(template_uid) + selectedTemplate = ProductsTemplates.get_template_by_uid(template_uid) if selectedTemplate is None or selectedTemplate is None: return jsonify({ @@ -64,7 +62,6 @@ class OfficeTemplatesService(BaseService): 'message': 'Invalid credentials', }), 400 - office_users_result = { "set_office_user_template": [], } @@ -77,8 +74,6 @@ class OfficeTemplatesService(BaseService): } return office_users_result - - @staticmethod def create_custom_template(data): logger.info('create_custom_template') @@ -87,11 +82,11 @@ class OfficeTemplatesService(BaseService): provision_name = data.get('provision_name', '') similarName = CustomTemplates.get_template_by_custom_id(custom_id) - if not similarName and provision_name !='': + if not similarName and provision_name != '': # with db.session.begin(): custom_data = CustomTemplates.create_template(custom_id, provision_name) else: - custom_data ={ + custom_data = { "error": "Possible duplicate" } @@ -106,3 +101,40 @@ class OfficeTemplatesService(BaseService): "error": f"An error occurred: {str(e)}", } return office_users_result + + @staticmethod + def office_template_rebuild(data): + logger.info('office_template_rebuild') + try: + with db.session.begin(): + subscription_uid = data.get('subscription_uid', '') + custom_id = data.get('custom_id', '') + + membersSubResult = MembersProducts.get_member_product_by_subscription_uid(subscription_uid) + if not membersSubResult: + return { + "message": "Invalid Subscription", + "error_message": "Error - Please select a valid product to view", + "data": None, + "error": f"Subscription with UID {subscription_uid} does not exist." + }, 400 + + member_id = membersSubResult.member_id + product_id = membersSubResult.product_id + + logger.info(f'office_template_rebuild {member_id} {subscription_uid} {product_id}') + # with db.session.begin(): + plannedRefresh = MembersProductsRefresh.create_subscription_refresh(member_id, product_id, + subscription_uid) + + office_rebuild_result = { + "office_template_rebuild": [], + } + return office_rebuild_result + + except Exception as e: + logger.error(f"An error occurred: {str(e)}", exc_info=True) + office_rebuild_result = { + "error": f"An error occurred: {str(e)}", + } + return office_rebuild_result diff --git a/app/models/member_product_refresh.py b/app/models/member_product_refresh.py index cfbdd46..b9d1b02 100644 --- a/app/models/member_product_refresh.py +++ b/app/models/member_product_refresh.py @@ -51,7 +51,7 @@ class MembersProductsRefresh(db.Model): ) try: - logger.info(f" About to Insert Subscription Data {subscription.member_id} ") + logger.info(f" About to Insert Subscription REfresh Data {subscription.member_id} ") db.session.add(subscription) db.session.flush() except IntegrityError as err: