2025-03-14 17:50:37 +07:00
|
|
|
use crate::{
|
2025-03-18 14:13:53 +07:00
|
|
|
v1::{
|
2025-03-23 12:32:00 +07:00
|
|
|
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,
|
2025-03-23 12:32:00 +07:00
|
|
|
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,
|
2025-03-23 12:32:00 +07:00
|
|
|
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>,
|
2025-03-23 12:32:00 +07:00
|
|
|
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)),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|