import crud from flask import jsonify, request def main(): """ ```fission { "name": "profile-admin-get-insert-delete-put", "http_triggers": { "profile-admin-get-insert-delete-put-http": { "url": "/ailbl/admin/users/{user_id}/profiles", "methods": ["POST", "PUT", "DELETE", "GET"] } } } ``` """ try: if request.method == "PUT": return make_update_request() elif request.method == "DELETE": return make_delete_request() elif 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-Fission-Params-UserId") 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 except Exception as e: return jsonify({"error": str(e)}), 500 def make_update_request(): try: user_id = request.headers.get("X-Fission-Params-UserId") 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.update_profile(user_id, data) return jsonify(response), status except Exception as e: return jsonify({"error": str(e)}), 500 def make_delete_request(): try: user_id = request.headers.get("X-Fission-Params-UserId") 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 except Exception as e: return jsonify({"error": str(e)}), 500 def make_get_request(): try: user_id = request.headers.get("X-Fission-Params-UserId") if not user_id: return jsonify({"error": "user_id is required"}), 400 response, status = crud.get_profile(user_id) return jsonify(response), status except Exception as e: return jsonify({"error": str(e)}), 500