From ff389fe18b3eb9eef54c69f201d96e940eb82a23 Mon Sep 17 00:00:00 2001 From: mrw1593 Date: Sun, 14 May 2023 10:28:20 -0400 Subject: Update documentation --- src/api/ops.rs | 6 ++++++ src/api/users.rs | 4 ++++ 2 files changed, 10 insertions(+) (limited to 'src/api') diff --git a/src/api/ops.rs b/src/api/ops.rs index 9bebc2d..018743c 100644 --- a/src/api/ops.rs +++ b/src/api/ops.rs @@ -6,12 +6,15 @@ use thiserror::Error; use crate::services::db; +/// A request to login #[derive(Debug, Clone, Deserialize)] struct LoginRequest { username: Box, password: Box, } +/// An error occurred when authenticating, because either the username or +/// password was invalid. #[derive(Debug, Clone, Error)] enum LoginFailure { #[error("No user found with the given username")] @@ -29,6 +32,9 @@ impl ResponseError for LoginFailure { } } +/// Returns `200` if login was successful. +/// Returns `404` if the username is invalid. +/// Returns `401` if the password was invalid. #[post("/login")] async fn login( body: web::Json, diff --git a/src/api/users.rs b/src/api/users.rs index d62cc27..863d99e 100644 --- a/src/api/users.rs +++ b/src/api/users.rs @@ -10,14 +10,17 @@ use crate::models::User; use crate::services::crypto::PasswordHash; use crate::services::{db, id}; +/// Just a username. No password hash, because that'd be tempting fate. #[derive(Debug, Clone, Serialize)] struct UserResponse { + id: Uuid, username: Box, } impl From for UserResponse { fn from(user: User) -> Self { Self { + id: user.id, username: user.username, } } @@ -107,6 +110,7 @@ async fn get_username( Ok(response) } +/// A request to create or update user information #[derive(Debug, Clone, Deserialize)] struct UserRequest { username: Box, -- cgit v1.2.3