diff --git a/app/api/services/myproduct.py b/app/api/services/myproduct.py index 0c06207..fe781e1 100644 --- a/app/api/services/myproduct.py +++ b/app/api/services/myproduct.py @@ -12,7 +12,8 @@ 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, \ - MembersProductsSettings, ProductsTemplates, MembersProfile, SubscriptionGenerative, ProductsColorStyle + MembersProductsSettings, ProductsTemplates, MembersProfile, SubscriptionGenerative, ProductsColorStyle, \ + MembersWebfiles from app.api.helpers.response_helper import ResponseHelper from app.api.schemas.myproduct import MyProductSchema from app.api.schemas.provision import ProvisionSchema @@ -915,15 +916,33 @@ class MyProductsService(BaseService): file_uid = validated_data.get('file_uid') image_id = validated_data.get('image_id') - - - member_data = Members.get_member_by_uid(uid) member_id = member_data.id product_id = validated_data.get('product_id') - product_subscription_uid = '' product_data = Products.get_product_by_product_id(product_id) + + # Check if this media belong + selectedFile = MembersWebfiles.get_member_webfiles_by_member_file_uid(member_id, file_uid) + if not selectedFile: + return { + "message": "Please provide valid file_uid", + "error_message": "Error - Please select a valid file UID", + "data": None, + "error": f"File with ID {file_uid} does not exist." + }, 400 + + # Check if image key + if image_id is None or image_id == '': + return { + "message": "Please provide valid image_id", + "error_message": "Error - Please select a valid image_id", + "data": None, + "error": f"File with ID {image_id} does not exist." + }, 400 + + + if not product_data: return { "message": "Please provide valid product_id", diff --git a/app/models/members_webfiles.py b/app/models/members_webfiles.py index b984bf7..5f2ee62 100644 --- a/app/models/members_webfiles.py +++ b/app/models/members_webfiles.py @@ -76,6 +76,14 @@ class MembersWebfiles(db.Model): return None return member_webfile + @classmethod + def get_member_webfiles_by_member_file_uid(cls, member_id , file_uid): + member_webfile = cls.query.filter_by(member_id=str(member_id), uid=str(file_uid)).first() + + if not member_webfile: + return None + return member_webfile + @classmethod def get_all_webfiles(cls, file_group=None, member_id=None, page=1, limit=20):