added product settings

This commit is contained in:
CHIEFSOFT\ameye
2025-08-07 11:58:32 -04:00
parent f30a8829b6
commit ba4756d456
8 changed files with 281 additions and 33 deletions
+9 -1
View File
@@ -172,10 +172,18 @@ def myproduct_dash():
@api.route("/panel/myproduct/settings", methods=["POST"])
def myproduct_settings():
data = request.get_json()
logger.info(f"Route MyProduct Settings Data ==>>>> {data}")
logger.info(f"Route Save MyProduct Settings Data ==>>>> {data}")
response = MyProductsService.process_settings(data)
return response
@api.route("/panel/myproduct/settings/values", methods=["POST"])
def myproduct_settings_values():
data = request.get_json()
logger.info(f"Route Get MyProduct Settings Data ==>>>> {data}")
response = MyProductsService.process_settings_values(data)
return response
# /panel/myproduct/subscription
@api.route("/panel/myproduct/subscription", methods=["POST"])
+4 -4
View File
@@ -1,14 +1,14 @@
from flask import session, jsonify
from app.models.loan import Loan
# 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.api.integrations import SimbrellaIntegration
from app.extensions import db
from app.models import Offer, RACCheck, Members, MembersActions
from app.api.services.offer_analysis import OfferAnalysis
from app.models import Members, MembersActions
# 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.user import UserSchema
+53 -12
View File
@@ -3,7 +3,7 @@ from app.utils.logger import logger
from app.api.services.base_service import BaseService
from marshmallow import ValidationError
from app.extensions import db
from app.models import MembersProducts, Products, Members, ProductsDetails, ProductsDetails, ProvisionActions
from app.models import MembersProducts, Products, Members, ProductsDetails, ProductsDetails, ProvisionActions, MembersProductsSettings
from app.api.helpers.response_helper import ResponseHelper
from app.api.schemas.myproduct import MyProductSchema
from app.api.schemas.provision import ProvisionSchema
@@ -176,7 +176,6 @@ class MyProductsService(BaseService):
product_subscription_external_url = memberSubscription.external_url
product_subscription_internal_url = memberSubscription.internal_url
# "banner": "banner.jpg",
result_data = {
"myproudct": {
"result": "Reveived under development ",
@@ -184,19 +183,10 @@ class MyProductsService(BaseService):
}
}
# my_dict = {"apple": 1, "banana": 2, "cherry": 3}
for key in settings.keys():
# logger.info(f"settings_key : {key}")
# logger.info(f"settings_value : {settings[key]}") # Accessing value using the key
# logger.info(f"subscription_uid: {memberSubscription.uid}")
# logger.info(f"product_id : {product_id}")
# logger.info(f"member_id : {member_id}")
setting_value = settings[key]
subscription_uid = memberSubscription.uid
MembersProducts.save_update_product_settings(member_id,subscription_uid,product_id,key, 'TXT', setting_value)
MembersProductsSettings.save_update_product_settings(member_id,subscription_uid,product_id,key, 'TXT', setting_value)
# Simulate processing
response_data = {
@@ -324,3 +314,54 @@ class MyProductsService(BaseService):
db.session.rollback()
return ResponseHelper.internal_server_error()
@staticmethod
def process_settings_values(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_subscription_uid = ''
product_subscription_external_url = ''
product_subscription_internal_url = ''
product_data = Products.get_product_by_product_id(product_id)
product_description = ProductsDetails.get_product_details_with_product_id('A000002')
productDataStatus = product_data.status
memberSubscription = MembersProducts.get_member_product_by_product_member_id(member_id, product_id)
settings_data = []
if memberSubscription is not None:
logger.info(f"Incoming MyProduct data ==>>>> {memberSubscription}")
product_subscription_uid = memberSubscription.uid
settings_data = MembersProductsSettings.get_product_settings_by_product_id_and_member_id(product_id, member_id)
# Simulate processing
response_data = {
"settings": settings_data,
"member_id": member_id,
"product_subscription_uid": product_subscription_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()