From c77d8c04218ea0154055e32bd0676f5568f706ea Mon Sep 17 00:00:00 2001 From: QuangMinh_123 Date: Thu, 11 Dec 2025 13:47:00 +0000 Subject: [PATCH] AdminAddressDone --- apps/ailbl-admin_address-delete-update.py | 56 -------------------- apps/ailbl-admin_address-delete.py | 62 +++++++++++++++++++++++ apps/ailbl-admin_address-insert-get.py | 59 ++++++++++++++++----- 3 files changed, 108 insertions(+), 69 deletions(-) delete mode 100644 apps/ailbl-admin_address-delete-update.py create mode 100644 apps/ailbl-admin_address-delete.py diff --git a/apps/ailbl-admin_address-delete-update.py b/apps/ailbl-admin_address-delete-update.py deleted file mode 100644 index 9bf759d..0000000 --- a/apps/ailbl-admin_address-delete-update.py +++ /dev/null @@ -1,56 +0,0 @@ -import crud -from flask import jsonify, request - -ALLOWED_IMAGE_TYPES = {"image/jpeg", "image/png", "image/gif", "image/webp"} - - -def main(): - """ - ```fission - { - "name": "address-admin-delete", - "http_triggers": { - "address-admin-delete-http": { - "url": "/ailbl/admin/users/{UserId}/addresses/{UserAddrId}", - "methods": ["DELETE"] - } - } - } - ``` - """ - try: - if request.method == "DELETE": - return make_delete_request() - elif request.method == "PUT": - return make_update_request() - else: - return {"error": "Method not allow"}, 405 - except Exception as ex: - return jsonify({"error": str(ex)}), 500 - - -def make_delete_request(): - try: - user_id = request.headers.get("X-User") - file = request.files.get("avatar") - if not user_id or not file: - return jsonify({"error": "user_id or file is required"}), 400 - if file.mimetype not in ALLOWED_IMAGE_TYPES: - return jsonify( - {"error": "Invalid file type. Only JPG, PNG, GIF, WEBP are allowed."} - ), 400 - response, status = crud.update_or_create_avatar(user_id, file) - return jsonify(response), status - except Exception as e: - return jsonify({"error": str(e)}), 500 - - -def make_update_request(): - try: - user_id = request.headers.get("X-User") - if not user_id: - return jsonify({"error": "user_id is required"}), 400 - - return crud.get_avatar_url(user_id) - except Exception as e: - return jsonify({"error": str(e)}), 500 diff --git a/apps/ailbl-admin_address-delete.py b/apps/ailbl-admin_address-delete.py new file mode 100644 index 0000000..90df95d --- /dev/null +++ b/apps/ailbl-admin_address-delete.py @@ -0,0 +1,62 @@ +import crud +from flask import jsonify, request + +ALLOWED_IMAGE_TYPES = {"image/jpeg", "image/png", "image/gif", "image/webp"} + + +def main(): + """ + ```fission + { + "name": "address-admin-delete", + "http_triggers": { + "address-admin-delete-http": { + "url": "/ailbl/admin/users/{UserId}/addresses/{UserAddrId}", + "methods": ["DELETE"] + } + } + } + ``` + """ + try: + if request.method == "DELETE": + return make_delete_request() + # elif request.method == "PUT": + # return make_update_request() + else: + return {"error": "Method not allow"}, 405 + except Exception as ex: + return jsonify({"error": str(ex)}), 500 + + +def make_delete_request(): + try: + # Lấy user_id từ header X-User + user_id = request.headers.get("X-Fission-Params-UserId") + if not user_id: + return jsonify({"error": "user_id is required"}), 400 + + address_id = request.headers.get("X-Fission-Params-UserAddrId") + if not address_id: + return jsonify({"error": "address_id is required"}), 400 + + # Kiểm tra xem địa chỉ có tồn tại trong cơ sở dữ liệu không + if not crud.exists_address_for_delete(address_id, user_id): + return jsonify({"error": "Address not found"}), 404 + + # Xóa địa chỉ từ cơ sở dữ liệu + response, status = crud.delete_address(address_id, user_id) + return jsonify(response), status + except Exception as e: + return jsonify({"error": str(e)}), 500 + + +# def make_update_request(): +# try: +# user_id = request.headers.get("X-User") +# if not user_id: +# return jsonify({"error": "user_id is required"}), 400 + +# return crud.get_avatar_url(user_id) +# except Exception as e: +# return jsonify({"error": str(e)}), 500 diff --git a/apps/ailbl-admin_address-insert-get.py b/apps/ailbl-admin_address-insert-get.py index 04f93b1..88e4a79 100644 --- a/apps/ailbl-admin_address-insert-get.py +++ b/apps/ailbl-admin_address-insert-get.py @@ -1,7 +1,7 @@ import crud +import logging from flask import jsonify, request - -ALLOWED_IMAGE_TYPES = {"image/jpeg", "image/png", "image/gif", "image/webp"} +from filters import AddressPage def main(): @@ -31,26 +31,59 @@ def main(): def make_insert_request(): try: - user_id = request.headers.get("X-User") - file = request.files.get("avatar") - if not user_id or not file: - return jsonify({"error": "user_id or file is required"}), 400 - if file.mimetype not in ALLOWED_IMAGE_TYPES: - return jsonify( - {"error": "Invalid file type. Only JPG, PNG, GIF, WEBP are allowed."} - ), 400 - response, status = crud.update_or_create_avatar(user_id, file) + # Lấy user_id từ header X-User + user_id = request.headers.get("X-Fission-Params-UserId") + if not user_id: + return jsonify({"error": "user_id is required"}), 400 + + data = request.get_json() # Lấy dữ liệu từ body request + if not data: + return jsonify({"error": "Address data is required"}), 400 + + address = data.get("address") + if not address: + return jsonify({"error": "Address is required"}), 400 + + # Kiểm tra nếu địa chỉ đã tồn tại cho người dùng này + if crud.exists_address_for_post(user_id, address): + return jsonify({"error": "Address already exists for this user"}), 409 + + # Tạo mới địa chỉ người dùng + response, status = crud.create_address(user_id, data) + return jsonify(response), status + except Exception as e: return jsonify({"error": str(e)}), 500 def make_get_request(): try: - user_id = request.headers.get("X-User") + user_id = request.headers.get("X-Fission-Params-UserId") if not user_id: return jsonify({"error": "user_id is required"}), 400 - return crud.get_avatar_url(user_id) + # Lấy tham số filter và phân trang từ request + # Sử dụng AddressPage để lấy filter và phân trang + paging = AddressPage.from_request_queries() + print(paging) + + # Gọi hàm CRUD để lấy danh sách địa chỉ của user_id với phân trang và lọc + response = crud.filter_address(user_id, paging) + + return jsonify( + response, + ), 200 + + # Kiểm tra xem response có dữ liệu không + # if not response[0]: # Nếu không có dữ liệu + # return jsonify({"message": "No addresses found"}), 404 + + # return jsonify({ + # "data": response[0], # Dữ liệu (danh sách các địa chỉ) + # "status": response[1], # Mã trạng thái HTTP (200) + # "headers": response[2] # Headers CORS + # }), response[1], response[2] + except Exception as e: return jsonify({"error": str(e)}), 500