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

104 lines
3.6 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::{
2025-03-25 20:50:42 +07:00
auth, permissions, roles, users, AuthLoginRequestDto, AuthLoginResponsetDto, AuthResendOtpRequestDto, AuthVerifyEmailRequestDto
2025-03-30 02:46:16 +07:00
}, AuthNewPasswordRequestDto, AuthRefreshTokenRequestDto, MessageResponseDto, MetaRequestDto, MetaResponseDto, PermissionsItemDto, PermissionsRequestDto, ResponseListSuccessDto, ResponseSuccessDto, RolesItemDto, RolesRequestCreateDto, RolesRequestUpdateDto, TokenDto, UsersCreateRequestDto, UsersDetailItemDto, UsersItemDto, UsersListItemDto, UsersUpdateRequestDto
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,
2025-03-30 02:46:16 +07:00
users::users_controller::put_update_user_me,
users::users_controller::patch_user_active_status,
users::users_controller::delete_user,
users::users_controller::get_user_by_id,
2025-03-30 02:46:16 +07:00
users::users_controller::get_user_me,
2025-03-25 10:48:34 +07:00
users::users_controller::get_user_list,
roles::roles_controller::get_role_list,
roles::roles_controller::get_role_by_id,
roles::roles_controller::post_create_role,
roles::roles_controller::put_update_role,
2025-03-25 20:50:42 +07:00
roles::roles_controller::delete_role,
permissions::permissions_controller::get_permission_list,
permissions::permissions_controller::get_permission_by_id,
permissions::permissions_controller::post_create_permission,
permissions::permissions_controller::put_update_permission,
permissions::permissions_controller::delete_permission
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-25 10:48:34 +07:00
RolesItemDto,
RolesRequestCreateDto,
RolesRequestUpdateDto,
2025-03-25 20:50:42 +07:00
PermissionsRequestDto,
PermissionsItemDto,
2025-03-30 02:46:16 +07:00
UsersItemDto,
UsersListItemDto,
UsersUpdateRequestDto,
UsersCreateRequestDto,
2025-03-14 17:50:37 +07:00
ResponseSuccessDto<AuthLoginResponsetDto>,
2025-03-25 10:48:34 +07:00
ResponseListSuccessDto<Vec<RolesItemDto>>,
2025-03-25 20:50:42 +07:00
ResponseSuccessDto<RolesItemDto>,
2025-03-30 02:46:16 +07:00
ResponseListSuccessDto<Vec<UsersListItemDto>>,
ResponseSuccessDto<UsersDetailItemDto>,
2025-03-25 20:50:42 +07:00
ResponseListSuccessDto<Vec<PermissionsItemDto>>,
ResponseSuccessDto<PermissionsItemDto>
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)),
);
}
}
}