aboutsummaryrefslogtreecommitdiff
path: root/src/response/success.rs
diff options
context:
space:
mode:
authorTolmachev Igor <me@igorek.dev>2025-09-14 23:27:25 +0300
committerTolmachev Igor <me@igorek.dev>2025-09-14 23:27:25 +0300
commit955598dce9aeb5626654c72b0ef94850123fa8ac (patch)
tree4fb161c2e67fdc161ebbca5ced271b6e7724dc30 /src/response/success.rs
parent39bf8397949ea2738ac3dfc934fcc3f07a6b0b66 (diff)
downloadqueue_server-955598dce9aeb5626654c72b0ef94850123fa8ac.tar.gz
queue_server-955598dce9aeb5626654c72b0ef94850123fa8ac.zip
Add openapi specs and docs
Diffstat (limited to 'src/response/success.rs')
-rw-r--r--src/response/success.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/response/success.rs b/src/response/success.rs
new file mode 100644
index 0000000..c2ec4e5
--- /dev/null
+++ b/src/response/success.rs
@@ -0,0 +1,33 @@
1use axum::{
2 http::StatusCode,
3 response::{IntoResponse, Response},
4};
5use serde::Serialize;
6use utoipa::ToSchema;
7
8#[derive(Serialize, ToSchema)]
9enum SuccessStatus {
10 #[serde(rename = "success")]
11 Success,
12}
13
14#[derive(Serialize, ToSchema)]
15pub struct SuccessResponse<T> {
16 status: SuccessStatus,
17 data: T,
18}
19
20impl<T> SuccessResponse<T> {
21 pub fn ok(data: T) -> Self {
22 Self {
23 status: SuccessStatus::Success,
24 data,
25 }
26 }
27}
28
29impl<T: Serialize> IntoResponse for SuccessResponse<T> {
30 fn into_response(self) -> Response {
31 (StatusCode::OK, axum::Json(self)).into_response()
32 }
33}