From a8f94b9017fa83e5ad927665a0b9d47ccc832f29 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Sat, 14 Feb 2026 14:19:51 -0500 Subject: [PATCH] file_url --- app/api/services/account.py | 4 +++- app/api/services/base_service.py | 19 +++++++++++++++++-- app/api/services/file_upload.py | 4 ++++ app/models/members_webfiles.py | 8 ++++++++ 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/app/api/services/account.py b/app/api/services/account.py index 6c2e07f..02cb9a7 100644 --- a/app/api/services/account.py +++ b/app/api/services/account.py @@ -438,6 +438,8 @@ class AccountService(BaseService): uid = str(validated_data.get('uid')) member_data = Members.get_member_by_uid(uid) + file_url = BaseService.get_profile_picture_url(member_data.profile_picture) + personal_data = { "firstname": member_data.firstname, "lastname": member_data.lastname, @@ -445,7 +447,7 @@ class AccountService(BaseService): "email": member_data.email, "phone": member_data.phone, "full_address": member_data.full_address, - "picture": 'https://media.mermsemr.com/media/show/merms-profile', + "picture": 'https://media.mermsemr.com/media/show/merms-profile' if file_url == '' else file_url, "country": member_data.country, } diff --git a/app/api/services/base_service.py b/app/api/services/base_service.py index aee3773..fc0bce7 100644 --- a/app/api/services/base_service.py +++ b/app/api/services/base_service.py @@ -5,6 +5,7 @@ from marshmallow import ValidationError import logging from app.api.integrations import KafkaIntegration from app.config import Config +from app.models import MembersWebfiles logger = logging.getLogger(__name__) from app.api.integrations import StripeIntegration @@ -30,7 +31,21 @@ class BaseService: CACHE_SERVER = Config.CACHE_SERVER CACHE_PORT = Config.CACHE_PORT CACHE_PASSWORD = Config.CACHE_PASSWORD - CACHE_DEFAULT_EXPIRE = Config.CACHE_DEFAULT_EXPIRE + CACHE_DEFAULT_EXPIRE = Config.CACHE_DEFAULT_EXPIRE + MEDIA_SERVER = Config.MEDIA_SERVER + + @staticmethod + def get_profile_picture_url(profile_uid): + file_url = '' + if profile_uid is None or profile_uid == '': + return file_url + + selectedFile = MembersWebfiles.get_member_webfiles_by_file_uid(profile_uid) + if selectedFile: + file_url = ( + BaseService.MEDIA_SERVER + "/" + selectedFile.file_group + "/" + str( + selectedFile.uid) + "/" + selectedFile.filename).lower() + return file_url @staticmethod def addStripeCustomer(customerData): @@ -396,7 +411,7 @@ class BaseService: def write_cache_data(cacheSection, cacheId, cacheData): try: - cacheKey = "MERMS-"+ cacheSection + '-' + cacheId # note theh use of - + cacheKey = "MERMS-" + cacheSection + '-' + cacheId # note theh use of - logger.info(f"write_cache_data () key {cacheKey}", exc_info=True) # Define connection parameters and connect r = redis.Redis(host=BaseService.CACHE_SERVER, port=BaseService.CACHE_PORT, diff --git a/app/api/services/file_upload.py b/app/api/services/file_upload.py index 13d8348..ac81e0b 100644 --- a/app/api/services/file_upload.py +++ b/app/api/services/file_upload.py @@ -127,7 +127,11 @@ class FileUploadService(BaseService): else: logger.info(f"'{final_save_path}' was not found as a file in '{final_save_path}'") + file_url = BaseService.get_profile_picture_url(file_uid) + + response_data = { + "picture": file_url, "save_result": save_result, "file_uid": file_uid, } diff --git a/app/models/members_webfiles.py b/app/models/members_webfiles.py index 84d786d..97fb726 100644 --- a/app/models/members_webfiles.py +++ b/app/models/members_webfiles.py @@ -84,6 +84,14 @@ class MembersWebfiles(db.Model): return None return member_webfile + @classmethod + def get_member_webfiles_by_file_uid(cls, file_uid): + member_webfile = cls.query.filter_by(uid=str(file_uid)).first() + + if not member_webfile: + return None + return member_webfile + # @classmethod # def get_member_webfiles_by_member_file_group(cls, member_id , file_group): # member_webfile = cls.query.filter_by(member_id=str(member_id), web_files_list=str(file_group)).all()