Files
imphnen-backend-service/src/apps/v1/docs/docs_controller.rs
T

82 lines
2.3 KiB
Rust
Raw Normal View History

2025-03-14 17:50:37 +07:00
use crate::{
2025-03-18 14:13:53 +07:00
v1::{
auth, users, AuthLoginRequestDto, AuthLoginResponsetDto,
AuthResendOtpRequestDto, AuthVerifyEmailRequestDto,
2025-03-18 14:13:53 +07:00
},
2025-03-23 01:19:17 +07:00
AuthNewPasswordRequestDto, AuthRefreshTokenRequestDto, MessageResponseDto,
MetaRequestDto, MetaResponseDto, ResponseListSuccessDto, ResponseSuccessDto,
TokenDto, UsersItemDto,
2025-03-14 17:50:37 +07:00
};
use utoipa::{
openapi::security::{Http, HttpAuthScheme, SecurityScheme},
Modify, OpenApi,
};
#[derive(OpenApi)]
#[openapi(
paths(
auth::auth_controller::post_login,
2025-03-18 14:13:53 +07:00
auth::auth_controller::post_register,
2025-03-19 23:17:50 +07:00
auth::auth_controller::post_verify_email,
2025-03-21 05:36:00 +07:00
auth::auth_controller::post_resend_otp,
2025-03-23 01:19:17 +07:00
auth::auth_controller::post_refresh_token,
auth::auth_controller::post_forgot_password,
auth::auth_controller::post_new_password,
users::users_controller::post_create_user,
users::users_controller::put_update_user,
users::users_controller::patch_user_active_status,
users::users_controller::delete_user,
users::users_controller::get_user_by_id,
users::users_controller::get_user_list
2025-03-14 17:50:37 +07:00
),
components(
schemas(
MetaRequestDto,
MetaResponseDto,
MessageResponseDto,
AuthLoginRequestDto,
AuthLoginResponsetDto,
2025-03-19 23:17:50 +07:00
AuthVerifyEmailRequestDto,
AuthResendOtpRequestDto,
2025-03-21 05:36:00 +07:00
AuthNewPasswordRequestDto,
2025-03-23 01:19:17 +07:00
AuthRefreshTokenRequestDto,
ResponseSuccessDto<TokenDto>,
2025-03-14 17:50:37 +07:00
ResponseSuccessDto<AuthLoginResponsetDto>,
ResponseListSuccessDto<Vec<UsersItemDto>>
2025-03-14 17:50:37 +07:00
)
),
info(
2025-03-21 05:36:00 +07:00
title = "NAJM Course API",
description = "NAJM Course API",
2025-03-14 17:50:37 +07:00
version = "0.1.0",
contact(
name = "Maulana Sodiqin",
url = ""
),
license(
name = "MIT",
url = "https://opensource.org/licenses/MIT"
)
),
modifiers(&SecurityAddon),
tags(
(name = "Authentication", description = "List of Authentication Endpoints"),
)
)]
pub struct ApiDoc;
struct SecurityAddon;
impl Modify for SecurityAddon {
fn modify(&self, openapi: &mut utoipa::openapi::OpenApi) {
if let Some(components) = openapi.components.as_mut() {
components.add_security_scheme(
"Bearer",
SecurityScheme::Http(Http::new(HttpAuthScheme::Bearer)),
);
}
}
}