PhoneDone
Some checks failed
K8S Fission Deployment / Deployment fission functions (push) Failing after 20s

This commit is contained in:
QuangMinh_123
2025-12-11 06:51:48 +00:00
parent ec3b3303f6
commit 69057654d5
5 changed files with 145 additions and 26 deletions

View File

@@ -1,5 +1,17 @@
import crud import crud
from flask import jsonify, request from flask import jsonify, request
from filters import PhonePage
from helpers import CORS_HEADERS
import logging
# Cấu hình logging ở đây
logging.basicConfig(
level=logging.INFO, # Mức độ log
# Định dạng log
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
)
log = logging.getLogger(__name__)
def main(): def main():
@@ -27,11 +39,20 @@ def main():
def make_delete_request(): def make_delete_request():
try: try:
user_id = request.headers.get("X-User") # Lay user_id tu header X-User
user_id = request.headers.get("X-Fission-Params-UserId")
if not user_id: if not user_id:
return jsonify({"error": "user_id is required"}), 400 return jsonify({"error": "user_id is required"}), 400, CORS_HEADERS
response, status = crud phone_id = request.headers.get("X-Fission-Params-UserPhoneId")
return jsonify(response), status if not phone_id:
return jsonify({"error": "phone_id is required"}), 400, CORS_HEADERS
# Kiem tra so dien thoai co ton tai trong db khong ?
if not crud.exists_phone_for_delete(phone_id, user_id):
return jsonify({"error": "Phone not found"}), 404
response, status, headers = crud.delete_phone(phone_id, user_id)
return jsonify(response), status, CORS_HEADERS
except Exception as e: except Exception as e:
return jsonify({"error": str(e)}), 500 return jsonify({"error": str(e)}), 500

View File

@@ -1,5 +1,18 @@
import crud import crud
from flask import jsonify, request from flask import jsonify, request
from filters import PhonePage
from helpers import CORS_HEADERS
from validators import validate_phone_number
import logging
# # Cấu hình logging ở đây
# logging.basicConfig(
# level=logging.INFO, # Mức độ log
# # Định dạng log
# format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
# )
# log = logging.getLogger(__name__)
def main(): def main():
@@ -29,20 +42,54 @@ def main():
def make_insert_request(): def make_insert_request():
try: try:
user_id = request.headers.get("X-User") # Lay user_id tu header X-User
user_id = request.headers.get("X-Fission-Params-UserId")
response, status = crud if not user_id:
return jsonify(response), status return jsonify({"error": "user_id or file is required"}), 400, CORS_HEADERS
data = request.get_json() # data = chua gia tri body gui len
if not data:
return jsonify({"error": "phone_number is required"}), 400, CORS_HEADERS
# Lay rieng field phone_number o trong body
phone_number = data.get("phone_number")
if not validate_phone_number(phone_number):
return jsonify({"error": "Invalid phone number"}), 400, CORS_HEADERS
if crud.exists_phone_for_post(phone_number):
return jsonify({"error": "Phone is exists"}), 404
response, status, headers = crud.create_phone(user_id, data)
return jsonify(response)
except Exception as e: except Exception as e:
return jsonify({"error": str(e)}), 500 return jsonify({"error": str(e)}), 500
def make_get_request(): def make_get_request():
try: try:
user_id = request.headers.get("X-User") user_id = request.headers.get("X-Fission-Params-UserId")
if not user_id: if not user_id:
return jsonify({"error": "user_id is required"}), 400 return jsonify({"error": "user_id is required"}), 400, CORS_HEADERS
return crud # Lấy tham số filter và phân trang từ request
# Sử dụng default_factory để lấy filter và paging
paging = PhonePage.from_request_queries()
print(paging)
response = crud.filter_phone(user_id, paging)
# Kiểm tra xem response có dữ liệu hay không
if not response[0]: # Nếu không có dữ liệu
return jsonify({"message": "No phone numbers found"}), 404, CORS_HEADERS
return jsonify({
"data": response[0], # Dữ liệu (danh sách các số điện thoại)
"status": response[1], # Mã trạng thái HTTP (200)
"headers": response[2] # Headers CORS
}), response[1], response[2]
# return jsonify(response), 200, CORS_HEADERS
except Exception as e: except Exception as e:
return jsonify({"error": str(e)}), 500 return jsonify({"error": str(e)}), 500

View File

@@ -3,6 +3,16 @@ from flask import jsonify, request
from filters import PhonePage from filters import PhonePage
from helpers import CORS_HEADERS from helpers import CORS_HEADERS
from validators import validate_phone_number from validators import validate_phone_number
import logging
# Cấu hình logging ở đây
logging.basicConfig(
level=logging.INFO, # Mức độ log
# Định dạng log
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
)
log = logging.getLogger(__name__)
def main(): def main():
@@ -37,15 +47,20 @@ def make_insert_request():
if not user_id: if not user_id:
return jsonify({"error": "user_id or file is required"}), 400, CORS_HEADERS return jsonify({"error": "user_id or file is required"}), 400, CORS_HEADERS
data = request.get_json() data = request.get_json() # data = chua gia tri body gui len
if not data: if not data:
return jsonify({"error": "phone_number is required"}), 400, CORS_HEADERS return jsonify({"error": "phone_number is required"}), 400, CORS_HEADERS
# Lay rieng field phone_number o trong body
phone_number = data.get("phone_number") phone_number = data.get("phone_number")
if not validate_phone_number(phone_number): if not validate_phone_number(phone_number):
# Ghi log khi số điện thoại không hợp lệ
log.info(f"Invalid phone number: {phone_number}")
return jsonify({"error": "Invalid phone number"}), 400, CORS_HEADERS return jsonify({"error": "Invalid phone number"}), 400, CORS_HEADERS
if crud.exists_phone(phone_number, user_id): if crud.exists_phone_for_post(phone_number):
# Ghi log khi số điện thoại đã tồn tại
log.info(f"Phone number already exists: {phone_number}")
return jsonify({"error": "Phone is exists"}), 404 return jsonify({"error": "Phone is exists"}), 404
response, status, headers = crud.create_phone(user_id, data) response, status, headers = crud.create_phone(user_id, data)
@@ -78,6 +93,6 @@ def make_get_request():
"headers": response[2] # Headers CORS "headers": response[2] # Headers CORS
}), response[1], response[2] }), response[1], response[2]
return jsonify(response), 200, CORS_HEADERS # return jsonify(response), 200, CORS_HEADERS
except Exception as e: except Exception as e:
return jsonify({"error": str(e)}), 500 return jsonify({"error": str(e)}), 500

View File

@@ -2,6 +2,16 @@ import crud
from flask import jsonify, request from flask import jsonify, request
from filters import PhonePage from filters import PhonePage
from helpers import CORS_HEADERS from helpers import CORS_HEADERS
import logging
# Cấu hình logging ở đây
logging.basicConfig(
level=logging.INFO, # Mức độ log
# Định dạng log
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
)
log = logging.getLogger(__name__)
def main(): def main():
@@ -31,17 +41,21 @@ def make_delete_request():
try: try:
user_id = request.headers.get("X-User") # Lay user_id tu header X-User user_id = request.headers.get("X-User") # Lay user_id tu header X-User
if not user_id: if not user_id:
return jsonify({"error": "user_id is required"}), 400 return jsonify({"error": "user_id is required"}), 400, CORS_HEADERS
phone_id = request.headers.get("X-Fission-Params-UserPhoneId") phone_id = request.headers.get("X-Fission-Params-UserPhoneId")
if not phone_id: if not phone_id:
return jsonify({"error": "phone_id is required"}), 400 return jsonify({"error": "phone_id is required"}), 400, CORS_HEADERS
log.info(f"DELETE request: user_id={user_id}, phone_id={phone_id}")
# Kiem tra so dien thoai co ton tai trong db khong ? # Kiem tra so dien thoai co ton tai trong db khong ?
if not crud.exists_phone(phone_id, user_id): if not crud.exists_phone_for_delete(phone_id, user_id):
log.info(
f"Phone not found: phone_id={phone_id}, user_id={user_id}")
return jsonify({"error": "Phone not found"}), 404 return jsonify({"error": "Phone not found"}), 404
response, status = crud.delete_phone(phone_id, user_id) response, status, headers = crud.delete_phone(phone_id, user_id)
return jsonify(response), status return jsonify(response), status, CORS_HEADERS
except Exception as e: except Exception as e:
return jsonify({"error": str(e)}), 500 return jsonify({"error": str(e)}), 500

View File

@@ -3,6 +3,7 @@ from filters import PhonePage
from flask import jsonify, request from flask import jsonify, request
from helpers import init_db_connection, CORS_HEADERS from helpers import init_db_connection, CORS_HEADERS
from PIL import Image from PIL import Image
import logging
def create_phone(user_id: str, data): def create_phone(user_id: str, data):
@@ -146,20 +147,39 @@ def delete_phone(phone_id: str, user_id: str) -> dict:
conn.close() # Đảm bảo đóng kết nối sau khi xong conn.close() # Đảm bảo đóng kết nối sau khi xong
def exists_phone(user_id: str, phone_number: str = None, phone_id: str = None): # Nếu là `POST`, kiểm tra sự tồn tại của phone_number => Nghia la kiem tra so
def exists_phone_for_post(phone_number: str):
try: try:
conn = init_db_connection() conn = init_db_connection()
cursor = conn.cursor() cursor = conn.cursor()
if phone_number: # Nếu là `POST`, kiểm tra sự tồn tại của phone_number => Nghia la kiem tra so cursor.execute("""
cursor.execute("""
SELECT 1 SELECT 1
FROM ailbl_user_phone FROM ailbl_user_phone
WHERE user_id = %s AND phone_number = %s WHERE phone_number = %s
""", (user_id, phone_number)) """, (phone_number,))
elif phone_id: # Nếu là `DELETE`, kiểm tra sự tồn tại của phone_id => Nghia la kiem tra id cua so phone do row = cursor.fetchone() # Co ket qua thi tra ve du lieu 1 dong
cursor.execute(""" # Nếu có dòng dữ liệu, trả về True (tồn tại số điện thoại), nếu không, trả về False
return row is not None
except Exception as e:
# return True
logging.error(f"Database error checking phone existence: {e}")
raise
finally:
if cursor:
cursor.close()
if conn:
conn.close() # Đảm bảo đóng kết nối sau khi xong
# Nếu là `DELETE`, kiểm tra sự tồn tại của phone_id => Nghia la kiem tra id cua so phone do
def exists_phone_for_delete(phone_id: str, user_id: str):
try:
conn = init_db_connection()
cursor = conn.cursor()
cursor.execute("""
SELECT 1 SELECT 1
FROM ailbl_user_phone FROM ailbl_user_phone
WHERE id = %s AND user_id = %s WHERE id = %s AND user_id = %s
@@ -169,7 +189,9 @@ def exists_phone(user_id: str, phone_number: str = None, phone_id: str = None):
# Nếu có dòng dữ liệu, trả về True (tồn tại số điện thoại), nếu không, trả về False # Nếu có dòng dữ liệu, trả về True (tồn tại số điện thoại), nếu không, trả về False
return row is not None return row is not None
except Exception as e: except Exception as e:
return False # return False
logging.log.error(f"Database error in exists_phone_for_delete: {e}")
raise
finally: finally:
if cursor: if cursor:
cursor.close() cursor.close()