From 56d155ac2de9261575d7fd4671a08b95cd16e6bb Mon Sep 17 00:00:00 2001 From: Tolmachev Igor Date: Wed, 27 Aug 2025 01:36:21 +0900 Subject: Add response --- src/response.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/response.rs (limited to 'src/response.rs') diff --git a/src/response.rs b/src/response.rs new file mode 100644 index 0000000..8d505a5 --- /dev/null +++ b/src/response.rs @@ -0,0 +1,32 @@ +use axum::response::{IntoResponse, Response}; +use serde::Serialize; +use serde_json::json; + +pub enum ApiResponse { + Success(T), + Fail(T), + Error(String), +} + +impl IntoResponse for ApiResponse +where + T: Serialize, +{ + fn into_response(self) -> Response { + axum::Json(match self { + ApiResponse::Success(data) => json!({ + "status": "success", + "data": data + }), + ApiResponse::Fail(data) => json!({ + "status": "fail", + "data": data + }), + ApiResponse::Error(message) => json!({ + "status": "error", + "message": message + }), + }) + .into_response() + } +} -- cgit v1.2.3