2025-12-04 16:24:54 +07:00
|
|
|
import io
|
|
|
|
|
from flask import Response
|
2025-12-08 07:50:09 +00:00
|
|
|
from helpers import init_db_connection, CORS_HEADERS
|
2025-12-04 16:24:54 +07:00
|
|
|
from PIL import Image
|
|
|
|
|
|
|
|
|
|
|
2025-12-08 07:50:09 +00:00
|
|
|
def get_profile(user_id):
|
2025-12-04 16:24:54 +07:00
|
|
|
try:
|
2025-12-08 07:50:09 +00:00
|
|
|
conn = init_db_connection()
|
|
|
|
|
cursor = conn.cursor()
|
2025-12-04 16:24:54 +07:00
|
|
|
|
2025-12-08 07:50:09 +00:00
|
|
|
# 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,))
|
|
|
|
|
profile = cursor.fetchone() # fetchone la gi ?
|
2025-12-04 16:24:54 +07:00
|
|
|
|
2025-12-08 07:50:09 +00:00
|
|
|
if profile:
|
|
|
|
|
return {
|
|
|
|
|
"user_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]
|
|
|
|
|
}, 200, CORS_HEADERS
|
|
|
|
|
else:
|
|
|
|
|
return {"error": "Profile not found"}, 404, CORS_HEADERS
|
2025-12-04 16:24:54 +07:00
|
|
|
except Exception as e:
|
2025-12-08 07:50:09 +00:00
|
|
|
return {"error": str(e)}, 500, CORS_HEADERS
|
|
|
|
|
finally:
|
|
|
|
|
if conn:
|
|
|
|
|
conn.close()
|
2025-12-04 16:24:54 +07:00
|
|
|
|
|
|
|
|
|
2025-12-08 07:50:09 +00:00
|
|
|
def update_profile(user_id, data):
|
2025-12-04 16:24:54 +07:00
|
|
|
try:
|
2025-12-08 07:50:09 +00:00
|
|
|
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
|
|
|
|
|
"""
|
|
|
|
|
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
|
|
|
|
|
))
|
|
|
|
|
conn.commit()
|
|
|
|
|
return {"message": "Profile updated successfully"}, 200, CORS_HEADERS
|
2025-12-04 16:24:54 +07:00
|
|
|
|
2025-12-08 07:50:09 +00:00
|
|
|
except Exception as e:
|
|
|
|
|
return {"error": str(e)}, 500, CORS_HEADERS
|
|
|
|
|
finally:
|
|
|
|
|
if conn:
|
|
|
|
|
conn.close()
|
2025-12-04 16:24:54 +07:00
|
|
|
|
|
|
|
|
|
2025-12-08 07:50:09 +00:00
|
|
|
def insert_profile(user_id, data):
|
|
|
|
|
try:
|
|
|
|
|
conn = init_db_connection()
|
|
|
|
|
cursor = conn.cursor()
|
|
|
|
|
# Tao moi thong tin nguoi dung trong bang ailbl_user_profiles
|
|
|
|
|
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())
|
|
|
|
|
"""
|
|
|
|
|
cursor.execute(query, (
|
|
|
|
|
user_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
|
2025-12-04 16:24:54 +07:00
|
|
|
except Exception as e:
|
2025-12-08 07:50:09 +00:00
|
|
|
return {"error": str(e)}, 500, CORS_HEADERS
|
|
|
|
|
finally:
|
|
|
|
|
if conn:
|
|
|
|
|
conn.close()
|
2025-12-04 16:24:54 +07:00
|
|
|
|
|
|
|
|
|
2025-12-08 07:50:09 +00:00
|
|
|
def delete_profile(user_id):
|
2025-12-04 16:24:54 +07:00
|
|
|
try:
|
2025-12-08 07:50:09 +00:00
|
|
|
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,))
|
|
|
|
|
|
|
|
|
|
conn.commit()
|
|
|
|
|
return {"message": "Profile deleted successfully"}, 200, CORS_HEADERS
|
2025-12-04 16:24:54 +07:00
|
|
|
except Exception as e:
|
2025-12-08 07:50:09 +00:00
|
|
|
return {"error": str(e)}, 500, CORS_HEADERS
|
|
|
|
|
finally:
|
|
|
|
|
if conn:
|
|
|
|
|
conn.close()
|