Files
py-ailbl-user-address/apps/ailbl-user_address-insert-get.py
QuangMinh_123 5359f80e3c
Some checks failed
K8S Fission Deployment / Deployment fission functions (push) Failing after 20s
UserAddresDone
2025-12-11 13:29:03 +00:00

89 lines
2.7 KiB
Python

import crud
import logging
from flask import jsonify, request
from filters import AddressPage
def main():
"""
```fission
{
"name": "address-users-insert-get",
"http_triggers": {
"address-users-insert-get-http": {
"url": "/ailbl/users/addresses",
"methods": ["POST", "GET"]
}
}
}
```
"""
try:
if request.method == "POST":
return make_insert_request()
elif request.method == "GET":
return make_get_request()
else:
return {"error": "Method not allow"}, 405
except Exception as ex:
return jsonify({"error": str(ex)}), 500
def make_insert_request():
try:
user_id = request.headers.get("X-User") # Lấy user_id từ header X-User
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")
if not user_id:
return jsonify({"error": "user_id is required"}), 400
# 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