From c0740fee7d84b62b7c060c53ce46180c0b259d4d Mon Sep 17 00:00:00 2001 From: QuangMinh_123 Date: Mon, 8 Dec 2025 10:06:44 +0000 Subject: [PATCH] ProfileDone --- ...-admin_profile-insert-get-update-delete.py | 28 ++++++------ apps/ailbl-users_profile-insert-get-update.py | 34 +++++++------- apps/crud.py | 45 ++++++++----------- apps/helpers.py | 5 +-- apps/requirements.txt | 12 ++--- 5 files changed, 58 insertions(+), 66 deletions(-) diff --git a/apps/ailbl-admin_profile-insert-get-update-delete.py b/apps/ailbl-admin_profile-insert-get-update-delete.py index b7eb01b..6ed937c 100644 --- a/apps/ailbl-admin_profile-insert-get-update-delete.py +++ b/apps/ailbl-admin_profile-insert-get-update-delete.py @@ -1,6 +1,6 @@ import crud from flask import jsonify, request - +from helpers import CORS_HEADERS def main(): @@ -10,7 +10,7 @@ def main(): "name": "profile-admin-get-insert-delete-put", "http_triggers": { "profile-admin-get-insert-delete-put-http": { - "url": "/ailbl/admin/users/{user_id}/profiles", + "url": "/ailbl/admin/users/{User_Id}/profiles", "methods": ["POST", "PUT", "DELETE", "GET"] } } @@ -34,14 +34,15 @@ def main(): def make_insert_request(): try: - user_id = request.headers.get("X-Fission-Params-UserId") + user_id = request.headers.get( + "X-Fission-Params-UserId") # X-Fission lay tren path if not user_id: return jsonify({"error": "user_id is required"}), 400 # Lấy dữ liệu từ body của request (thông tin hồ sơ người dùng) data = request.get_json() - - response, status = crud.insert_profile(user_id, data) - return jsonify(response), status + + response, status, header = crud.insert_profile(user_id, data) + return jsonify(response), status, header except Exception as e: return jsonify({"error": str(e)}), 500 @@ -53,9 +54,9 @@ def make_update_request(): return jsonify({"error": "user_id is required"}), 400 # Lấy dữ liệu từ body của request (thông tin hồ sơ người dùng) data = request.get_json() - - response, status = crud.update_profile(user_id, data) - return jsonify(response), status + + response, status, header = crud.update_profile(user_id, data) + return jsonify(response), status, header except Exception as e: return jsonify({"error": str(e)}), 500 @@ -66,8 +67,8 @@ def make_delete_request(): if not user_id: return jsonify({"error": "user_id is required"}), 400 # Call CRUD function to delete profile - response, status = crud.delete_profile(user_id) - return jsonify(response), status + response, status, header = crud.delete_profile(user_id) + return jsonify(response), status, header except Exception as e: return jsonify({"error": str(e)}), 500 @@ -75,9 +76,10 @@ def make_delete_request(): def make_get_request(): try: user_id = request.headers.get("X-Fission-Params-UserId") + print(f"Received user_id: {user_id}") # Log user_id để kiểm tra if not user_id: return jsonify({"error": "user_id is required"}), 400 - response, status = crud.get_profile(user_id) - return jsonify(response), status + response, status, header = crud.get_profile(user_id) + return jsonify(response), status, header except Exception as e: return jsonify({"error": str(e)}), 500 diff --git a/apps/ailbl-users_profile-insert-get-update.py b/apps/ailbl-users_profile-insert-get-update.py index 9b8c221..ae61848 100644 --- a/apps/ailbl-users_profile-insert-get-update.py +++ b/apps/ailbl-users_profile-insert-get-update.py @@ -1,7 +1,6 @@ import crud from flask import jsonify, request -from helpers import init_db_connection, CORS_HEADERS - +from helpers import CORS_HEADERS def main(): @@ -33,15 +32,16 @@ def main(): def make_insert_request(): try: - user_id = request.headers.get("X-UserId") + user_id = request.headers.get("X-User") if not user_id: return jsonify({"errorCode": "USER_ID_REQUIRED"}), 400, CORS_HEADERS + # Lấy dữ liệu từ body của request (thông tin hồ sơ người dùng) data = request.get_json() - - response, status = crud.insert_profile(data) - - return jsonify(response), status + + response, status, header = crud.insert_profile(user_id, data) + + return jsonify(response), status, header except Exception as e: return jsonify({"error": str(e)}), 500 @@ -49,15 +49,15 @@ def make_insert_request(): def make_update_request(): try: data = request.get_json() # Lay du lieu json tu request body - - user_id = data.get("user_id") + + user_id = request.headers.get("X-User") if not user_id: return jsonify({"error": "user_id is required"}), 400 - + # Call CRUD function to update profile - response, status = crud.update_profile - return jsonify(response), status - + response, status, header = crud.update_profile(user_id, data) + return jsonify(response), status, header + except Exception as e: return jsonify({"error": str(e)}), 500 @@ -67,9 +67,9 @@ def make_get_request(): user_id = request.headers.get("X-User") if not user_id: return jsonify({"error": "user_id is required"}), 400 - - response, status = crud.get_profile(user_id) - return jsonify(response), status - + + response, status, header = crud.get_profile(user_id) + return jsonify(response), status, header + except Exception as e: return jsonify({"error": str(e)}), 500 diff --git a/apps/crud.py b/apps/crud.py index a33a3b8..a19f319 100644 --- a/apps/crud.py +++ b/apps/crud.py @@ -1,30 +1,27 @@ import io from flask import Response from helpers import init_db_connection, CORS_HEADERS -from PIL import Image -def get_profile(user_id): +def get_profile(id): try: conn = init_db_connection() cursor = conn.cursor() # Truy van thong tin nguoi dung tu bang ailbl_user_profiles - query = "SELECT * FROM ailbl_user_profiles WHERE user_id = %s" - cursor.execute(query, (user_id,)) + query = "SELECT * FROM ailbl_user_profile WHERE id = %s" + cursor.execute(query, (id,)) profile = cursor.fetchone() # fetchone la gi ? if profile: return { - "user_id": profile[0], + "id": profile[0], "first_name": profile[1], "last_name": profile[2], "dob": profile[3], "gender": profile[4], - "address": profile[5], - "phone": profile[6], - "created": profile[7], - "modified": profile[8] + "created": profile[5], + "modified": profile[6] }, 200, CORS_HEADERS else: return {"error": "Profile not found"}, 404, CORS_HEADERS @@ -35,24 +32,22 @@ def get_profile(user_id): conn.close() -def update_profile(user_id, data): +def update_profile(id, data): try: conn = init_db_connection() cursor = conn.cursor() # Cap nhat thong tin nguoi dung trong bang ailbl_user_profiles query = """ - UPDATE ailbl_user_profiles - SET first_name = %s, last_name = %s, dob = %s, gender = %s, address = %s, phone = %s, modified = NOW() - WHERE user_id = %s + UPDATE ailbl_user_profile + SET first_name = %s, last_name = %s, dob = %s, gender = %s, modified = NOW() + WHERE id = %s """ cursor.execute(query, ( data.get("first_name"), data.get("last_name"), data.get("dob"), data.get("gender"), - data.get("address"), - data.get("phone"), - user_id + id )) conn.commit() return {"message": "Profile updated successfully"}, 200, CORS_HEADERS @@ -64,23 +59,21 @@ def update_profile(user_id, data): conn.close() -def insert_profile(user_id, data): +def insert_profile(id, data): try: conn = init_db_connection() cursor = conn.cursor() - # Tao moi thong tin nguoi dung trong bang ailbl_user_profiles + # Tao moi thong tin nguoi dung trong bang ailbl_user_profile query = """ - INSERT INTO ailbl_user_profiles (user_id, first_name, last_name, dob, gender, address, phone, created, modified) - VALUES (%s, %s, %s, %s, %s, %s, %s, NOW(), NOW()) + INSERT INTO ailbl_user_profile (id, first_name, last_name, dob, gender, created, modified) + VALUES (%s, %s, %s, %s, %s, NOW(), NOW()) """ cursor.execute(query, ( - user_id, + id, data.get("first_name"), data.get("last_name"), data.get("dob"), data.get("gender"), - data.get("address"), - data.get("phone") )) conn.commit() return {"message": "Profile created successfully"}, 201, CORS_HEADERS @@ -91,14 +84,14 @@ def insert_profile(user_id, data): conn.close() -def delete_profile(user_id): +def delete_profile(id): try: conn = init_db_connection() cursor = conn.cursor() # Xoa thong tin nguoi dung trong bang ailbl_user_profiles - query = "DELETE FROM ailbl_user_profiles WHERE user_id = %s" - cursor.execute(query, (user_id,)) + query = "DELETE FROM ailbl_user_profile WHERE id = %s" + cursor.execute(query, (id,)) conn.commit() return {"message": "Profile deleted successfully"}, 200, CORS_HEADERS diff --git a/apps/helpers.py b/apps/helpers.py index 6b5c990..ea4755e 100644 --- a/apps/helpers.py +++ b/apps/helpers.py @@ -5,8 +5,7 @@ import typing import psycopg2 from flask import current_app from psycopg2.extras import LoggingConnection -from ory_kratos_client.api import identity_api -from ory_kratos_client.configuration import Configuration + CORS_HEADERS = { "Content-Type": "application/json", @@ -100,5 +99,3 @@ def check_port_open(ip: str, port: int, timeout: int = 30): except Exception as err: current_app.logger.err(f"Check port open error: {err}") return False - - diff --git a/apps/requirements.txt b/apps/requirements.txt index f922a61..1402bf5 100644 --- a/apps/requirements.txt +++ b/apps/requirements.txt @@ -1,6 +1,6 @@ -# Flask==3.1.0 -# psycopg2-binary==2.9.10 -# pydantic==2.11.3 -# minio==7.2.5 -# Pillow==10.4.0 -# boto3==1.35.70 \ No newline at end of file +Flask==3.1.0 +psycopg2-binary==2.9.10 +pydantic==2.11.3 +minio==7.2.5 +Pillow==10.4.0 +boto3==1.35.70 \ No newline at end of file