members update

This commit is contained in:
2026-04-30 21:35:23 -04:00
parent 5b21696067
commit 0461bad40f
4 changed files with 89 additions and 13 deletions
+7
View File
@@ -795,6 +795,13 @@ def product_rebuild_office():
result = OfficeTemplatesService.office_template_rebuild(data)
return jsonify(result)
@api.route('/office/update-profile', methods=['POST'])
def member_office_update():
# Call the dashboard service
data = request.get_json()
result = OfficeCustomerService.update_customer_data(data)
return jsonify(result)
@api.route('/office/products-templates', methods=['GET'])
def get_product_templates():
-12
View File
@@ -1,25 +1,13 @@
from flask import session, jsonify
# from app.models.loan import Loan
from app.utils.logger import logger
from app.api.services.base_service import BaseService
# from app.api.schemas.eligibility_check import EligibilityCheckSchema
from marshmallow import ValidationError
# from app.api.enums import TransactionType
# from app.api.integrations import SimbrellaIntegration
from app.extensions import db
from app.models import MembersProducts, Products, Members
# from app.api.services.offer_analysis import OfferAnalysis
from app.api.helpers.response_helper import ResponseHelper
from werkzeug.security import generate_password_hash, check_password_hash
# from app.api.schemas.register import RegisterSchema
from app.api.schemas.products import ProductsSchema
from app.api.schemas.user import UserSchema
import datetime
import jwt
import random
from app.config import Config
class ContactService(BaseService):
+64 -1
View File
@@ -4,11 +4,74 @@ from app.api.services.base_service import BaseService
from sqlalchemy import func, desc
from datetime import datetime, timedelta, timezone
from app.extensions import db
from app.models import MembersProducts, Products, Members, ProductsDetails, ProductsDetails, ProvisionActions
from app.models import (MembersProducts, Products, Members)
from app.api.schemas.office_member_data import OfficeMemberDataSchema
from app.api.helpers.response_helper import ResponseHelper
from marshmallow import ValidationError
class OfficeCustomerService(BaseService):
@staticmethod
def update_customer_data(data):
try:
with db.session.begin():
logger.info(f"Incoming BackOffice Member data ==>>>> {data}")
validated_data = OfficeCustomerService.validate_data(data, OfficeMemberDataSchema())
member_uid = validated_data.get('member_uid')
member_account_name = validated_data.get('member_account_name')
member_firstname = validated_data.get('member_account_name')
member_lastname = validated_data.get('member_account_name')
member_full_address = validated_data.get('member_account_name')
member_email = validated_data.get('member_account_name')
member_phone = validated_data.get('member_account_name')
member_data = Members.get_member_by_uid(member_uid)
member_id = member_data.id
if member_data and member_id:
member_account_name = validated_data.get('member_account_name')
member_firstname = validated_data.get('member_account_name')
member_lastname = validated_data.get('member_account_name')
member_full_address = validated_data.get('member_account_name')
member_email = validated_data.get('member_account_name')
member_phone = validated_data.get('member_account_name')
profile_data = {
"member_account_name": member_account_name,
"member_firstname": member_firstname,
"member_lastname": member_lastname,
"member_full_address": member_full_address,
"member_email": member_email,
"member_phone": member_phone,
}
Members.set_office_update_profile(member_uid, profile_data)
response_data = {
"last_update": datetime.datetime.utcnow(),
"member_id": member_id
}
return ResponseHelper.success(data=response_data)
except ValidationError as err:
logger.error(f"Validation Error: {getattr(err, 'messages', str(err))}")
db.session.rollback()
return ResponseHelper.unprocessable_entity(result_description="Validation exception")
except ValueError as err:
logger.error(f"{getattr(err, 'messages', str(err))}")
db.session.rollback()
return ResponseHelper.error(result_description=str(err))
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
db.session.rollback()
return ResponseHelper.internal_server_error()
@staticmethod
def get_customer_data(filters=None):
try:
+18
View File
@@ -125,6 +125,24 @@ class Members(db.Model):
member.updated = datetime.now(timezone.utc)
return member
@classmethod
def set_office_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.full_address = profile_data["member_full_address"]
member.account_name = profile_data["member_account_name"]
member.firstname = profile_data["member_firstname"]
member.lastname = profile_data["member_lastname"]
member.phone = profile_data["member_phone"]
member.email = profile_data["member_email"]
member.updated = datetime.now(timezone.utc)
return member
@classmethod
def set_member_last_login(cls, uid):
member = cls.query.filter_by(uid=str(uid)).first()