members update
This commit is contained in:
@@ -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():
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user