diff --git a/2 b/2 new file mode 100644 index 0000000..f1f0426 --- /dev/null +++ b/2 @@ -0,0 +1,20 @@ +use utoipa::IntoResponses; + +struct OkResponse { + name: String, + enabled: bool, + time: DateTime +} + +#[derive(IntoResponses)] +enum Responses { + #[response(status = 200)] + Ok(#[to_schema] Vec) + +} + + +pub fn get_handler() -> Responses { + + +} diff --git a/src/resources/alarm/get.rs b/src/resources/alarm/get.rs new file mode 100644 index 0000000..bd13357 --- /dev/null +++ b/src/resources/alarm/get.rs @@ -0,0 +1,32 @@ +use axum::{Json, http::StatusCode, response::IntoResponse}; +use chrono::{DateTime, Local}; +use utoipa::{IntoResponses, ToSchema}; + +#[derive(ToSchema)] +struct OkResponse { + name: String, + enabled: bool, + time: DateTime +} + +#[derive(IntoResponses)] +enum Responses { + #[response(status = 200)] + Ok(#[to_schema] Vec), + #[response(status = 500)] + DBError(String) +} + +impl IntoResponse for Responses { + fn into_response(self) -> axum::response::Response { + match self { + Responses::Ok(body) => (StatusCode::OK, Json(body)).into_response(), + Responses::DBError(message) => (StatusCode::INTERNAL_SERVER_ERROR, Json(message)).into_response(), + } + } + +} + +pub fn get_handler() -> Responses { + todo!() +} diff --git a/src/resources/alarm/mod.rs b/src/resources/alarm/mod.rs index 1c2ae13..b89a363 100644 --- a/src/resources/alarm/mod.rs +++ b/src/resources/alarm/mod.rs @@ -1,8 +1,10 @@ +mod get; mod post; + use utoipa_axum::{router::OpenApiRouter, routes}; use crate::AppState; pub fn router() -> OpenApiRouter { - OpenApiRouter::new().routes(routes!(post::post_handler)) + OpenApiRouter::new().routes(routes!(post::post_handler, get::get_handler)) }