diff --git a/app/api/enums/settings_items_data.py b/app/api/enums/settings_items_data.py index 0bd9c06..382be72 100644 --- a/app/api/enums/settings_items_data.py +++ b/app/api/enums/settings_items_data.py @@ -1,70 +1,75 @@ from symtable import Class + class SettingsItemsData: @staticmethod def get_site_settings_data(): - data = { - "site_title": { "name": 'Title', "controls": 'TEXT', "active": True }, - "site_description": { "name": 'Description', "controls": 'TEXTAREA', "active": True }, - "site_logo_text": { "name": 'Logo Text', "controls": 'TEXT', "active": True }, - "site_contact_email": { "name": 'Email', "controls": 'TEXT', "active": True }, - "site_contact_phone": { "name": 'Phone', "controls": 'TEXT', "active": True }, + data = { + "site_title": {"name": 'Title', "controls": 'TEXT', "active": True, "list_order": 0}, + "site_description": {"name": 'Description', "controls": 'TEXTAREA', "active": True, "list_order": 1}, + "site_logo_text": {"name": 'Logo Text', "controls": 'TEXT', "active": True, "list_order": 2}, + "site_contact_email": {"name": 'Email', "controls": 'TEXT', "active": True, "list_order": 3}, + "site_contact_phone": {"name": 'Phone', "controls": 'TEXT', "active": True, "list_order": 4}, } return data @staticmethod def get_site_social_settings_data(): data = { - "facebook": { "name": 'Facebook', "controls": 'TEXT', "active": True }, - "twitter": { "name": 'Twitter', "controls": 'TEXT', "active": True }, - "youtube": { "name": 'Youtube', "controls": 'TEXT', "active": True }, + "facebook": {"name": 'Facebook', "controls": 'TEXT', "active": True, "list_order": 0}, + "twitter": {"name": 'Twitter', "controls": 'TEXT', "active": True, "list_order": 1}, + "youtube": {"name": 'Youtube', "controls": 'TEXT', "active": True, "list_order": 2}, } return data @staticmethod def get_site_home_settings(): data = { - "banner_text": { "name": 'Banner Text', "controls": 'TEXT', "active": True }, - "banner_description": { "name": 'Banner Description', "controls": 'TEXTAREA', "active": True }, + "banner_text": {"name": 'Banner Text', "controls": 'TEXT', "active": True, "list_order": 0}, + "banner_description": {"name": 'Banner Description', "controls": 'TEXTAREA', "active": True, + "list_order": 1}, } return data @staticmethod def get_site_footer_settings(): data = { - "footer_description": { "name": 'Footer Description', "controls": 'TEXTAREA', "active": True }, - "boolean_footer_show_email": { "name": 'Show email in footer', "controls": 'SELECT_NO_YES', "active": True }, - "boolean_footer_show_made_by": { "name": 'Show made by in footer', "controls": 'SELECT_NO_YES', "active": True }, - "boolean_footer_show_socials": { "name": 'Show social in footer', "controls": 'SELECT_NO_YES', "active": True }, + "footer_description": {"name": 'Footer Description', "controls": 'TEXTAREA', "active": True, + "list_order": 0}, + "boolean_footer_show_email": {"name": 'Show email in footer', "controls": 'SELECT_NO_YES', "active": True, + "list_order": 1}, + "boolean_footer_show_made_by": {"name": 'Show made by in footer', "controls": 'SELECT_NO_YES', + "active": True, "list_order": 2}, + "boolean_footer_show_socials": {"name": 'Show social in footer', "controls": 'SELECT_NO_YES', + "active": True, "list_order": 3}, } return data @staticmethod def get_site_testimonial_settings(): data = { - "boolean_testimonial_show": {"name": 'Show testimonial section', "controls": 'SELECT_NO_YES', "active": True}, - "testimonial_description": { "name": 'Description', "controls": 'TEXT', "active": True }, + "boolean_testimonial_show": {"name": 'Show testimonial section', "controls": 'SELECT_NO_YES', + "active": True, "list_order": 0}, + "testimonial_description": {"name": 'Description', "controls": 'TEXT', "active": True, "list_order": 1}, } return data @staticmethod def get_site_about_items(): data = { - "about_title": { "name": 'About Title', "controls": 'TEXT', "active": True }, - "about_description": { "name": 'About Details', "controls": 'TEXTAREA', "active": True }, - "about_extra_1": { "name": 'Extra About us', "controls": 'TEXTAREA', "active": True }, - "about_extra_2": { "name": 'More About us', "controls": 'TEXTAREA', "active": True }, + "about_title": {"name": 'About Title', "controls": 'TEXT', "active": True, "list_order": 0}, + "about_description": {"name": 'About Details', "controls": 'TEXTAREA', "active": True, "list_order": 1}, + "about_extra_1": {"name": 'Extra About us', "controls": 'TEXTAREA', "active": True, "list_order": 2}, + "about_extra_2": {"name": 'More About us', "controls": 'TEXTAREA', "active": True, "list_order": 3}, } return data @staticmethod def get_site_contact_items(): data = { - "contact_title" : { "name": 'Contact Title', "controls": 'TEXT', "active": True }, - "contact_introduction": { "name": 'Extra Introduction', "controls": 'TEXTAREA', "active": True }, + "contact_title": {"name": 'Contact Title', "controls": 'TEXT', "active": True, "list_order": 0}, + "contact_introduction": {"name": 'Extra Introduction', "controls": 'TEXTAREA', "active": True, + "list_order": 1}, } return data - - - diff --git a/app/api/services/myproduct.py b/app/api/services/myproduct.py index 9d442e9..59acd2d 100644 --- a/app/api/services/myproduct.py +++ b/app/api/services/myproduct.py @@ -39,7 +39,7 @@ class MyProductsService(BaseService): template_uid = validated_data.get('template_uid') member_data = Members.get_member_by_uid(uid) member_id = member_data.id - response_data ={} + response_data = {} product_id = validated_data.get('product_id') MembersProducts.set_member_product_template(member_id, product_id, template_uid) @@ -69,7 +69,6 @@ class MyProductsService(BaseService): db.session.rollback() return ResponseHelper.internal_server_error() - @staticmethod def mpproduct_template_data(data): try: @@ -83,7 +82,7 @@ class MyProductsService(BaseService): product_id = validated_data.get('product_id') template_data = [] - memberSubscription = MembersProducts.get_member_product_by_product_member_id(member_id, product_id) + memberSubscription = MembersProducts.get_member_product_by_product_member_id(member_id, product_id) if memberSubscription: templates = ProductsTemplates.get_template_by_product_id(product_id) for t in templates: @@ -98,7 +97,7 @@ class MyProductsService(BaseService): response_data = { "product_id": product_id, - "current_template_uid": memberSubscription.product_template if memberSubscription else None , + "current_template_uid": memberSubscription.product_template if memberSubscription else None, "templates": template_data, "last_update": datetime.datetime.utcnow(), } @@ -135,12 +134,13 @@ class MyProductsService(BaseService): product_id = validated_data.get('product_id') product_data = Products.get_product_by_product_id(product_id) - + # logger.error(f"Product with ID {product_id} does not exist.") if not product_data: return { - "message": "Please provide product_id", + "message": "Please provide valid product_id", + "error_message": "Error - Please select a valid product to view", "data": None, - "error": "Bad request" + "error": f"Product with ID {product_id} does not exist." }, 400 logger.info(f"GET HERE ******************************** : {data}", exc_info=True) @@ -197,11 +197,13 @@ class MyProductsService(BaseService): product_data = Products.get_product_by_product_id(product_id) if not product_data: - return { - "message": "Please provide product_id", - "data": None, - "error": "Bad request" - }, 400 + if not product_data: + return { + "message": "Please provide valid product_id", + "error_message": "Error - Please select a valid product to view", + "data": None, + "error": f"Product with ID {product_id} does not exist." + }, 4000 logger.info(f"GET HERE ******************************** : {data}", exc_info=True) mumberSub = MembersProducts.get_member_product_by_product_member_id(member_id, product_id) @@ -330,6 +332,14 @@ class MyProductsService(BaseService): product_subscription_external_url = '' product_subscription_internal_url = '' product_data = Products.get_product_by_product_id(product_id) + if not product_data: + return { + "message": "Please provide valid product_id", + "error_message": "Error - Please select a valid product to view", + "data": None, + "error": f"Product with ID {product_id} does not exist." + }, 400 + product_description = ProductsDetails.get_product_details_with_product_id(product_id) productDataStatus = product_data.status @@ -401,6 +411,14 @@ class MyProductsService(BaseService): product_subscription_uid = '' product_data = Products.get_product_by_product_id(product_id) + if not product_data: + return { + "message": "Please provide valid product_id", + "error_message": "Error - Please select a valid product to view", + "data": None, + "error": f"Product with ID {product_id} does not exist." + }, 400 + product_description = ProductsDetails.get_product_details_with_product_id(product_id) productDataStatus = product_data.status @@ -456,6 +474,14 @@ class MyProductsService(BaseService): product_subscription_uid = '' product_data = Products.get_product_by_product_id(product_id) + if not product_data: + return { + "message": "Please provide valid product_id", + "error_message": "Error - Please select a valid product to view", + "data": None, + "error": f"Product with ID {product_id} does not exist." + }, 400 + product_description = ProductsDetails.get_product_details_with_product_id(product_id) productDataStatus = product_data.status @@ -473,18 +499,19 @@ class MyProductsService(BaseService): aboutFields = SettingsItemsData.get_site_about_items() testimonialFields = SettingsItemsData.get_site_testimonial_settings() - settings_items ={} + settings_items = {} if product_id == "A000001": settings_items = { "settings": {"title": 'Settings', "controls": 'settings', "active": 'active show', - "custom": False, "data": settingsFields, "list_order": 0 }, + "custom": False, "data": settingsFields, "list_order": 0}, "home_tab": {"title": 'Home Page', "controls": 'home', "active": '', "custom": False, "data": homeFields, "list_order": 1}, "footer_tab": {"title": 'Footer', "controls": 'footer', "active": '', "custom": False, "data": footerFields, "list_order": 2}, "about_tab": {"title": 'About Page', "controls": 'about', "active": '', "custom": False, "data": aboutFields, "list_order": 3}, - "contact_tab": {"title": 'Contact Page', "controls": 'contact', "active": '', "custom": False, + "contact_tab": {"title": 'Contact Page', "controls": 'contact', "active": '', + "custom": False, "data": contactFields, "list_order": 4}, "social_tab": {"title": 'Socials', "controls": 'social', "active": '', "custom": False, "data": socialFields, "list_order": 5}, @@ -495,27 +522,28 @@ class MyProductsService(BaseService): } if product_id == "A000002": - settings_items = { - "settings": {"title": 'Settings', "controls": 'settings', "active": 'active show', - "custom": False, "data": settingsFields, "list_order": 0}, - "home_tab": {"title": 'Home Page', "controls": 'home', "active": '', "custom": False, - "data": homeFields, "list_order": 1}, - "footer_tab": {"title": 'Footer', "controls": 'footer', "active": '', "custom": False, - "data": footerFields, "list_order": 2}, - "about_tab": {"title": 'About Page', "controls": 'about', "active": '', "custom": False, - "data": aboutFields, "list_order": 3}, - "contact_tab": {"title": 'Contact Page', "controls": 'contact', "active": '', - "custom": False, - "data": contactFields, "list_order": 4}, - "testimonial_tab": {"title": 'Testimonials', "controls": 'testimonial', "active": '', "custom": False, - "data": testimonialFields, "list_order": 5}, - "social_tab": {"title": 'Socials', "controls": 'social', "active": '', "custom": False, - "data": socialFields, "list_order": 6}, - "template_tab": {"title": 'Template', "controls": 'template', "active": '', "custom": True, - "data": templateData, "list_order": 7}, - "color_scheme_tab": {"title": 'Color Scheme', "controls": 'color-scheme', "active": '', - "custom": True, "data": {}, "list_order": 8} - } + settings_items = { + "settings": {"title": 'Settings', "controls": 'settings', "active": 'active show', + "custom": False, "data": settingsFields, "list_order": 0}, + "home_tab": {"title": 'Home Page', "controls": 'home', "active": '', "custom": False, + "data": homeFields, "list_order": 1}, + "footer_tab": {"title": 'Footer', "controls": 'footer', "active": '', "custom": False, + "data": footerFields, "list_order": 2}, + "about_tab": {"title": 'About Page', "controls": 'about', "active": '', "custom": False, + "data": aboutFields, "list_order": 3}, + "contact_tab": {"title": 'Contact Page', "controls": 'contact', "active": '', + "custom": False, + "data": contactFields, "list_order": 4}, + "testimonial_tab": {"title": 'Testimonials', "controls": 'testimonial', "active": '', + "custom": False, + "data": testimonialFields, "list_order": 5}, + "social_tab": {"title": 'Socials', "controls": 'social', "active": '', "custom": False, + "data": socialFields, "list_order": 6}, + "template_tab": {"title": 'Template', "controls": 'template', "active": '', "custom": True, + "data": templateData, "list_order": 7}, + "color_scheme_tab": {"title": 'Color Scheme', "controls": 'color-scheme', "active": '', + "custom": True, "data": {}, "list_order": 8} + } # # Simulate processing diff --git a/app/models/products.py b/app/models/products.py index a3f1956..d1d9528 100644 --- a/app/models/products.py +++ b/app/models/products.py @@ -98,7 +98,9 @@ class Products(db.Model): """ productItem = cls.query.filter_by(product_id = product_id).first() if not productItem: - raise ValueError(f"pProduct with ID {product_id} does not exist.") + # raise ValueError(f"pProduct with ID {product_id} does not exist.") + logger.error(f"Product with ID {product_id} does not exist.") + return None return productItem def to_dict(self): diff --git a/app/models/products_details.py b/app/models/products_details.py index 77da039..33651fa 100644 --- a/app/models/products_details.py +++ b/app/models/products_details.py @@ -37,7 +37,7 @@ class ProductsDetails(db.Model): """ productItem = cls.query.filter_by(product_id = product_id).first() if not productItem: - raise ValueError(f"pProduct with ID {product_id} does not exist.") + raise ValueError(f"Product with ID {product_id} does not exist.") return productItem