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
+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()