diff --git a/app/api/routes/routes.py b/app/api/routes/routes.py index 470b5aa..d5d83c7 100644 --- a/app/api/routes/routes.py +++ b/app/api/routes/routes.py @@ -163,6 +163,14 @@ def get_myproduct_templates(): response = MyProductsService.mpproduct_template_data(data) return response +@api.route("/panel/account/template/activate", methods=["POST"]) +# @token_required +def get_myproduct_templates_activate(): + data = request.get_json() + # logger.info(f"Route Product Template Data ==>>>> {data}") + response = MyProductsService.process_set_template(data) + return response + @api.route("/panel/contacts", methods=["POST"]) def merms_contacts(): data = request.get_json() diff --git a/app/api/schemas/myproduct_set_template.py b/app/api/schemas/myproduct_set_template.py new file mode 100644 index 0000000..175c27a --- /dev/null +++ b/app/api/schemas/myproduct_set_template.py @@ -0,0 +1,8 @@ +from marshmallow import Schema, fields + +class MyProductSetTemplateSchema(Schema): + token = fields.Str(required=True) + uid = fields.Str(required=True) + product_id = fields.Str(required=True) + template_uid = fields.Str(required=True) + diff --git a/app/api/services/myproduct.py b/app/api/services/myproduct.py index feee1e4..f2357e4 100644 --- a/app/api/services/myproduct.py +++ b/app/api/services/myproduct.py @@ -3,6 +3,7 @@ from urllib import request from flask import session, jsonify from app.api.enums import SettingsItemsData +from app.api.schemas.myproduct_set_template import MyProductSetTemplateSchema from app.utils.logger import logger from app.api.services.base_service import BaseService from marshmallow import ValidationError @@ -27,6 +28,48 @@ class MyProductsService(BaseService): def process_provision_actions(data): pass + @staticmethod + def process_set_template(data): + try: + with db.session.begin(): + # logger.info(f"Incoming MyProduct data ==>>>> {data}") + validated_data = MyProductsService.validate_data(data, MyProductSetTemplateSchema()) + 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') + + template_data = [] + + response_data = { + "product_id": product_id, + "current_template_uid": "f7198ccc-1efc-4c40-8b79-17bc17956195", + "templates": template_data, + "last_update": datetime.datetime.utcnow(), + } + + 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() + + @staticmethod def mpproduct_template_data(data): try: @@ -438,7 +481,7 @@ class MyProductsService(BaseService): productDataStatus = product_data.status memberSubscription = MembersProducts.get_member_product_by_product_member_id(member_id, product_id) - + if memberSubscription is not None: # logger.info(f"Incoming MyProduct data ==>>>> {memberSubscription}") product_subscription_uid = memberSubscription.uid