summaryrefslogtreecommitdiff
path: root/src/setup/routes.rs
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-10-16 20:14:33 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-10-16 20:14:33 -0400
commitea74daca4809e4008dd8d01039db9fff3be659d9 (patch)
tree5972cabf646e8d5e635e9e2a176bff56c178461a /src/setup/routes.rs
parent56e16e29db55dae84549229d24b971f8bcf7da21 (diff)
Organizational pass on endpoints and routes.
Diffstat (limited to 'src/setup/routes.rs')
-rw-r--r--src/setup/routes.rs50
1 files changed, 0 insertions, 50 deletions
diff --git a/src/setup/routes.rs b/src/setup/routes.rs
deleted file mode 100644
index ff41734..0000000
--- a/src/setup/routes.rs
+++ /dev/null
@@ -1,50 +0,0 @@
-use axum::{
- extract::{Json, State},
- http::StatusCode,
- response::{IntoResponse, Response},
- routing::post,
- Router,
-};
-
-use super::app;
-use crate::{
- app::App, clock::RequestedAt, error::Internal, login::Password, token::extract::IdentityToken,
-};
-
-pub fn router() -> Router<App> {
- Router::new().route("/api/setup", post(on_setup))
-}
-
-#[derive(serde::Deserialize)]
-struct SetupRequest {
- name: String,
- password: Password,
-}
-
-async fn on_setup(
- State(app): State<App>,
- RequestedAt(setup_at): RequestedAt,
- identity: IdentityToken,
- Json(request): Json<SetupRequest>,
-) -> Result<(IdentityToken, StatusCode), SetupError> {
- let secret = app
- .setup()
- .initial(&request.name, &request.password, &setup_at)
- .await
- .map_err(SetupError)?;
- let identity = identity.set(secret);
- Ok((identity, StatusCode::NO_CONTENT))
-}
-
-#[derive(Debug)]
-struct SetupError(app::Error);
-
-impl IntoResponse for SetupError {
- fn into_response(self) -> Response {
- let Self(error) = self;
- match error {
- app::Error::SetupCompleted => (StatusCode::CONFLICT, error.to_string()).into_response(),
- other => Internal::from(other).into_response(),
- }
- }
-}