From 9d7909fb4239b7049cbc6af91cd9e8d286cddfd8 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Sat, 18 Oct 2025 04:18:06 -0400 Subject: [PATCH] seb contents --- app/api/enums/kafka_messages.py | 1 + app/api/enums/settings_items_data.py | 8 +++++ app/api/routes/routes.py | 9 ++++++ app/api/services/myproduct.py | 3 +- app/api/services/web_contents.py | 44 ++++++++++++++++++++++++++-- 5 files changed, 62 insertions(+), 3 deletions(-) diff --git a/app/api/enums/kafka_messages.py b/app/api/enums/kafka_messages.py index 5ee3432..8d0f527 100644 --- a/app/api/enums/kafka_messages.py +++ b/app/api/enums/kafka_messages.py @@ -3,3 +3,4 @@ from enum import Enum class KafkaMessage(str, Enum): REFRESH_PRODUCT_SETTINGS = "REFRESH_PRODUCT_SETTINGS" FLUTTER_PAYMENT_RECEIVED = "FLUTTER_PAYMENT_RECEIVED" + SITE_TRAFFIC_DATA = "SITE_TRAFFIC_DATA" diff --git a/app/api/enums/settings_items_data.py b/app/api/enums/settings_items_data.py index 3fcbbd2..bf25a02 100644 --- a/app/api/enums/settings_items_data.py +++ b/app/api/enums/settings_items_data.py @@ -74,3 +74,11 @@ class SettingsItemsData: "list_order": 1}, } return data + + @staticmethod + def get_site_blog_connect_settings(): + data = { + "boolean_blog_connect_show": {"name": 'Show Blog Section', "controls": 'SELECT_NO_YES', + "active": True, "list_order": 0}, + } + return data \ No newline at end of file diff --git a/app/api/routes/routes.py b/app/api/routes/routes.py index a3c666c..9b7fec8 100644 --- a/app/api/routes/routes.py +++ b/app/api/routes/routes.py @@ -608,6 +608,15 @@ def get_refresh_generatives(): result = GenerativesService.process_generatives_list(data) return jsonify(result) +# ===================================================== +@api.route('/web/traffic', methods=['POST']) +# @token_required +def get_web_traffic(): + # Call the dashboard service + data = request.get_json() + result = WebContentsService.get_web_trafic_data(data) + return jsonify(data) + # =================================================== # Common Data diff --git a/app/api/services/myproduct.py b/app/api/services/myproduct.py index 0ba59df..a7d1597 100644 --- a/app/api/services/myproduct.py +++ b/app/api/services/myproduct.py @@ -529,6 +529,7 @@ class MyProductsService(BaseService): socialFields = SettingsItemsData.get_site_social_settings_data() aboutFields = SettingsItemsData.get_site_about_items() testimonialFields = SettingsItemsData.get_site_testimonial_settings() + blogConnectFields = SettingsItemsData.get_site_blog_connect_settings() blogConnect = False if product_data.blog_product_id != None and product_data.blog_product_id != '': @@ -596,7 +597,7 @@ class MyProductsService(BaseService): if blogConnect: settings_items["blog_connect_tab"] = {"title": 'Blog Connect', "controls": 'blog-connect-scheme', "active": '', - "custom": True, "data": {}, "list_order": 9} + "custom": False, "data": blogConnectFields, "list_order": 9} # Simulate processing response_data = { diff --git a/app/api/services/web_contents.py b/app/api/services/web_contents.py index 2b601a8..b5b3253 100644 --- a/app/api/services/web_contents.py +++ b/app/api/services/web_contents.py @@ -1,12 +1,13 @@ from flask import jsonify +from app.api.enums import KafkaMessage from app.api.services import MyProductsService from app.utils.logger import logger from app.api.services.base_service import BaseService from sqlalchemy import func, desc from app.extensions import db -from app.models import MembersProductsSettings - +from app.models import MembersProductsSettings, MembersProducts +from threading import Thread class WebContentsService(BaseService): @@ -52,3 +53,42 @@ class WebContentsService(BaseService): except Exception as e: logger.error(f"An error occurred while getting dashboard data: {str(e)}", exc_info=True) return jsonify({"message": "Internal Server Error"}), 500 + + + @staticmethod + def get_web_trafic_data(data): + provision_uid = data.get('provision_uid', '') + + membersSubResult = MembersProducts.get_member_product_by_subscription_uid(provision_uid) + if not membersSubResult: + return { + "message": "Invalid Subscription", + "error_message": "Error - Please select a valid product to view", + "data": None, + "error": f"Subscription with UID {provision_uid} does not exist." + }, 400 + + member_id = membersSubResult.member_id + product_id = membersSubResult.product_id + + try: + response_data = { + "provision_uid": provision_uid, + "member_id": member_id, + "product_id": product_id, + "site_logo_text": "MY-GOOD-LOGO", + "site_contact_email": "email@specialemail.com", + "site_contact_phone": "911 111 1111", + } + + logger.error(f"Going for Thread ******************** ") + thread = Thread(target=MyProductsService.async_send_settings_refresh_to_kafka, + args=(response_data, provision_uid, KafkaMessage.SITE_TRAFFIC_DATA)) + thread.start() + logger.error(f"After the Thread ******************** ") + + return response_data + + except Exception as e: + logger.error(f"An error occurred while getting dashboard data: {str(e)}", exc_info=True) + return jsonify({"message": "Internal Server Error"}), 500