Skip to content

Commit 965b6b5

Browse files
committed
backend: add api documentation for new delete_user route.
1 parent 861d93d commit 965b6b5

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

backend/src/api_docs.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ async fn main() {
9797
routes::user::update_password::update_password,
9898
routes::user::update_user::update_user,
9999
routes::user::get_secret::get_secret,
100+
routes::user::delete::delete_user,
100101
routes::management::management,
101102
),
102103
components(schemas(
@@ -114,6 +115,7 @@ async fn main() {
114115
routes::charger::get_key::GetWgKeysResponseSchema,
115116
routes::user::update_password::PasswordUpdateSchema,
116117
routes::user::get_secret::GetSecretResponse,
118+
routes::user::delete::DeleteUserSchema,
117119
routes::management::ManagementSchema,
118120
routes::management::ManagementResponseSchema,
119121
routes::management::ManagementDataVersion,

backend/src/routes/user/delete.rs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use utoipa::ToSchema;
77
use crate::{error::Error, routes::{auth::login::{validate_password, FindBy}, charger::remove::{delete_all_allowed_users, delete_all_keys, delete_charger}, user::logout::delete_all_refresh_tokens}, utils::{get_connection, web_block_unpacked}, AppState};
88

99
#[derive(ToSchema, Serialize, Deserialize)]
10-
pub struct DeleteSchema {
10+
pub struct DeleteUserSchema {
1111
#[schema(value_type = Vec<u32>)]
1212
pub login_key: Vec<u8>
1313
}
@@ -37,8 +37,17 @@ async fn get_all_chargers_for_user(user_id: uuid::Uuid, state: &web::Data<AppSta
3737
}).await
3838
}
3939

40+
#[utoipa::path(
41+
context_path = "/user",
42+
request_body = DeleteUserSchema,
43+
responses(
44+
(status = 200),
45+
(status = 400, description = "Wrong password"),
46+
(status = 500)
47+
)
48+
)]
4049
#[delete("/delete")]
41-
pub async fn delete_user(state: web::Data<AppState>, user_id: crate::models::uuid::Uuid, payload: web::Json<DeleteSchema>) -> actix_web::Result<impl Responder> {
50+
pub async fn delete_user(state: web::Data<AppState>, user_id: crate::models::uuid::Uuid, payload: web::Json<DeleteUserSchema>) -> actix_web::Result<impl Responder> {
4251
let user_id = user_id.into();
4352

4453
let conn = get_connection(&state)?;
@@ -77,7 +86,7 @@ mod tests {
7786

7887
use crate::{middleware::jwt::JwtMiddleware, routes::{auth::get_login_salt::tests::get_test_login_salt, user::tests::{get_test_uuid, hash_test_key, TestUser}}, tests::configure, utils::generate_random_bytes};
7988

80-
use super::{delete_user, DeleteSchema};
89+
use super::{delete_user, DeleteUserSchema};
8190

8291

8392
//TODO: add test for shared charger once it is merged
@@ -100,7 +109,7 @@ mod tests {
100109

101110
let login_salt = get_test_login_salt(&user1_mail).await;
102111
let login_key = hash_test_key(&user1.password, &login_salt, None);
103-
let schema = DeleteSchema {
112+
let schema = DeleteUserSchema {
104113
login_key
105114
};
106115
let req = test::TestRequest::delete()
@@ -170,7 +179,7 @@ mod tests {
170179
.service(delete_user);
171180
let app = test::init_service(app).await;
172181

173-
let schema = DeleteSchema {
182+
let schema = DeleteUserSchema {
174183
login_key: generate_random_bytes()
175184
};
176185
let req = test::TestRequest::delete()

0 commit comments

Comments
 (0)