diff --git a/app/api/schemas/user_update.py b/app/api/schemas/user_update.py index 97c11f2..c437d10 100644 --- a/app/api/schemas/user_update.py +++ b/app/api/schemas/user_update.py @@ -6,5 +6,6 @@ class UserUpdateSchema(Schema): country = fields.Str(required=True) firstname = fields.Str(required=True) lastname = fields.Str(required=True) - full_address = fields.Str(required=True) - phone = fields.Str(required=True) + email =fields.Str(required=True) + full_address = fields.Str(required=False) + phone = fields.Str(required=False) diff --git a/app/api/services/account.py b/app/api/services/account.py index 7ec9375..ab4576c 100644 --- a/app/api/services/account.py +++ b/app/api/services/account.py @@ -441,8 +441,9 @@ class AccountService(BaseService): "firstname": member_data.firstname, "lastname": member_data.lastname, "account_name": member_data.account_name, - "phone": "911 111 1111", - "full_address": "100 White House, Washington, DC 00000", + "email": member_data.email, + "phone": member_data.phone, + "full_address": member_data.full_address, "country": member_data.country, } @@ -488,13 +489,34 @@ class AccountService(BaseService): user_token = validated_data.get('token') uid = str(validated_data.get('uid')) member_data = Members.get_member_by_uid(uid) + if member_data: + firstname = str(validated_data.get('firstname')) + lastname = str(validated_data.get('lastname')) + account_name = str(validated_data.get('account_name')) + phone = str(validated_data.get('phone')) + full_address = str(validated_data.get('full_address')) + email = str(validated_data.get('email')) + profile_data = { + "firstname": firstname, + "lastname": lastname, + "account_name": account_name, + "phone": phone, + "full_address": full_address, + "email": email, + } + Members.set_member_update_profile(uid,profile_data) + + + #Read the saved data + member_data = Members.get_member_by_uid(uid) personal_data = { "firstname": member_data.firstname, "lastname": member_data.lastname, "account_name": member_data.account_name, - "phone": "911 111 1111", - "full_address": "100 White House, Washington, DC 00000", + "email": member_data.email, + "phone": member_data.phone, + "full_address": member_data.full_address, "country": member_data.country, } diff --git a/app/models/members.py b/app/models/members.py index 78f01ee..f0b65c8 100644 --- a/app/models/members.py +++ b/app/models/members.py @@ -27,6 +27,8 @@ class Members(db.Model): next_billing= db.Column(db.DateTime(timezone=False)) trial_end = db.Column(db.DateTime(timezone=False)) last_login = db.Column(db.DateTime(timezone=False), server_default=func.now(), onupdate=func.now()) + phone = db.Column(db.String(25), nullable=True) + full_address = db.Column(db.String(150), nullable=True) # "account_id": self.account_id, def to_dict(self): @@ -38,6 +40,8 @@ class Members(db.Model): "username": self.username, "password": self.password, "country": self.country, + "phone": self.phone, + "full_address": self.full_address, "loc": self.loc, "status": self.status, "added": self.added.isoformat() if self.added else None, @@ -89,6 +93,17 @@ class Members(db.Model): member.profile_completed = datetime.now(timezone.utc) return member.profile_completed + @classmethod + def set_member_update_profile(cls, uid, profile_data): + member = cls.query.filter_by(uid=str(uid)).first() + + if not member: + logger.info(f"User UID = {uid} found") + raise ValueError(f"Member with UID {uid} does not exist.") + + member.updated = datetime.now(timezone.utc) + return member.profile_completed + @classmethod def set_member_last_login(cls, uid): member = cls.query.filter_by(uid=str(uid)).first()