From 7778b3ce20672e6aa1fc98a4bc3bab14bc596dda Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Sun, 29 Jun 2025 21:13:35 -0400 Subject: [PATCH] My product data --- app/api/routes/routes.py | 20 ++++++++ app/api/schemas/register.py | 2 +- app/api/services/__init__.py | 3 +- app/api/services/myproduct.py | 94 +++++++++++++++++++++++++++++++++++ 4 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 app/api/services/myproduct.py diff --git a/app/api/routes/routes.py b/app/api/routes/routes.py index 454a6bd..a848972 100644 --- a/app/api/routes/routes.py +++ b/app/api/routes/routes.py @@ -12,6 +12,7 @@ from app.api.services import ( CustomerConsentService, NotificationCallbackService, AuthorizationService, + MyProductsService, ) from app.utils.logger import logger from app.api.middlewares import enforce_json, require_auth @@ -116,6 +117,25 @@ def merms_products(): return response +# Health Check Endpoint +@api.route("/panel/myproduct/dash", methods=["POST"]) +def myproduct_dash(): + data = request.get_json() + response = MyProductsService.process_request(data) + return response + + +# Health Check Endpoint +@api.route("/test", methods=["GET"]) +def test_check(): + + data = {"uid": "ok", "token":"jjjfjfjfjfjjf"} + logger.info(f"Member Actions Error: {action_data}") + response = AccountService.process_action_request(data) + #response = ProductsService.process_request(data) + return {"status": "ok"}, 200 + + # # EligibilityCheck Endpoint # @api.route("/EligibilityCheck", methods=["POST"]) # @jwt_required() diff --git a/app/api/schemas/register.py b/app/api/schemas/register.py index 69b9110..89802f4 100644 --- a/app/api/schemas/register.py +++ b/app/api/schemas/register.py @@ -4,4 +4,4 @@ class RegisterSchema(Schema): email = fields.Str(required=True) firstname = fields.Str(required=True) lastname = fields.Str(required=True) - # isChecked = fields.fields.Str(required=True) + isChecked = fields.Str(required=False) diff --git a/app/api/services/__init__.py b/app/api/services/__init__.py index 60b9731..ebb76b5 100644 --- a/app/api/services/__init__.py +++ b/app/api/services/__init__.py @@ -10,4 +10,5 @@ from app.api.services.offer_analysis import OfferAnalysis from app.api.services.login import LoginService from app.api.services.register import RegisterService from app.api.services.products import ProductsService -from app.api.services.account import AccountService \ No newline at end of file +from app.api.services.account import AccountService +from app.api.services.myproduct import MyProductsService \ No newline at end of file diff --git a/app/api/services/myproduct.py b/app/api/services/myproduct.py new file mode 100644 index 0000000..079669c --- /dev/null +++ b/app/api/services/myproduct.py @@ -0,0 +1,94 @@ +from flask import session, jsonify +from app.models.loan import Loan +from app.utils.logger import logger +from app.api.services.base_service import BaseService +# from app.api.schemas.eligibility_check import EligibilityCheckSchema +from marshmallow import ValidationError +from app.api.enums import TransactionType +from app.api.integrations import SimbrellaIntegration +from app.extensions import db +from app.models import MembersProducts, Products, Members + +from app.api.services.offer_analysis import OfferAnalysis +from app.api.helpers.response_helper import ResponseHelper +from werkzeug.security import generate_password_hash, check_password_hash +# from app.api.schemas.register import RegisterSchema +from app.api.schemas.products import ProductsSchema +from app.api.schemas.user import UserSchema + +import datetime +import jwt +import random +from app.config import Config + + +class MyProductsService(BaseService): + + @staticmethod + def process_request(data): + try: + with db.session.begin(): + + validated_data = MyProductsService.validate_data(data, UserSchema()) + token = validated_data.get('token') + uid = validated_data.get('uid') + + # product_id = request.args.get('product_id') + # print(product_id) + # if not product_id: + # return { + # "message": "Please provide product_id", + # "data": None, + # "error": "Bad request" + # }, 400 + # + # print(product_id) + # member_id = current_user['user']['member_id'] + # myproduct_data = myproduct_detail(member_id, product_id) + + + member_id = 1 # current_user["user"]["id"] + products = Products.get_user_product_list(member_id) + product_data=[] + logger.info(f"Product Data ****** *****: {products}") + + for t in products: + product_data.append({ + 'id': t.id, + 'uid': t.uid, + 'product_id': t.product_id, + 'description': t.description, + 'name': t.name, + 'status': t.status, + 'added': t.added.isoformat() if t.added else None, + 'updated': t.updated.isoformat() if t.updated else None, + 'banner': t.banner, + 'prov_status': '', + 'status_text': 'Activate Now' + }) + + # Simulate processing + response_data = { + "products_data": product_data, + "member_id": 0, + "uid": 0, + } + + 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() +