diff --git a/app/api/routes/routes.py b/app/api/routes/routes.py index e0d38e0..9bc1820 100644 --- a/app/api/routes/routes.py +++ b/app/api/routes/routes.py @@ -227,6 +227,14 @@ def mycalendar_dash(): response = AccountService.process_calendar(data) return response +# /panel/account/calendar +@api.route("/panel/account/startprofile", methods=["POST"]) +def account_startprofile(): + data = request.get_json() + logger.info(f"Route StartProfile Data ==>>>> {data}") + response = AccountService.process_startprofile(data) + return response + # Health Check Endpoint @api.route("/test", methods=["GET"]) def test_check(): diff --git a/app/api/schemas/start_profile.py b/app/api/schemas/start_profile.py new file mode 100644 index 0000000..b7dd2dc --- /dev/null +++ b/app/api/schemas/start_profile.py @@ -0,0 +1,8 @@ +from marshmallow import Schema, fields + +class StartProfileSchema(Schema): + token = fields.Str(required=True) + uid = fields.Str(required=True) + practice =fields.Str(required=True) + specilaization =fields.Str(required=True) + introduction = fields.Str(required=True) \ No newline at end of file diff --git a/app/api/services/account.py b/app/api/services/account.py index f21565c..ad4afe3 100644 --- a/app/api/services/account.py +++ b/app/api/services/account.py @@ -12,6 +12,7 @@ from app.models import Members, MembersActions from app.api.helpers.response_helper import ResponseHelper from werkzeug.security import generate_password_hash, check_password_hash from app.api.schemas.user import UserSchema +from app.api.schemas.start_profile import StartProfileSchema import datetime import jwt @@ -141,6 +142,39 @@ class AccountService(BaseService): return ResponseHelper.internal_server_error() + @staticmethod + def process_startprofile(data): + try: + with db.session.begin(): + + validated_data = AccountService.validate_data(data, StartProfileSchema()) + user_token = validated_data.get('token') + uid = str(validated_data.get('uid')) + + + calendar_data = { + "last_update": datetime.datetime.utcnow(), + "start_profile_called": "Doing nothing yet" + } + + return ResponseHelper.success(data=calendar_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 process_calendar(data):