aboutsummaryrefslogtreecommitdiff
path: root/src/response.rs
diff options
context:
space:
mode:
authorTolmachev Igor <me@igorek.dev>2025-08-27 01:36:21 +0900
committerTolmachev Igor <me@igorek.dev>2025-08-27 01:36:21 +0900
commit56d155ac2de9261575d7fd4671a08b95cd16e6bb (patch)
tree7dd286dc5ae2be38c44a5225ade14f8ef6442bab /src/response.rs
parentdc33fa8416ce6b447494c6efdf46518da37ac1cc (diff)
downloadqueue_server-56d155ac2de9261575d7fd4671a08b95cd16e6bb.tar.gz
queue_server-56d155ac2de9261575d7fd4671a08b95cd16e6bb.zip
Add response
Diffstat (limited to 'src/response.rs')
-rw-r--r--src/response.rs32
1 files changed, 32 insertions, 0 deletions
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 @@
1use axum::response::{IntoResponse, Response};
2use serde::Serialize;
3use serde_json::json;
4
5pub enum ApiResponse<T> {
6 Success(T),
7 Fail(T),
8 Error(String),
9}
10
11impl<T> IntoResponse for ApiResponse<T>
12where
13 T: Serialize,
14{
15 fn into_response(self) -> Response {
16 axum::Json(match self {
17 ApiResponse::Success(data) => json!({
18 "status": "success",
19 "data": data
20 }),
21 ApiResponse::Fail(data) => json!({
22 "status": "fail",
23 "data": data
24 }),
25 ApiResponse::Error(message) => json!({
26 "status": "error",
27 "message": message
28 }),
29 })
30 .into_response()
31 }
32}