2025-09-26 17:35:30 +07:00
|
|
|
use imphnen_cms::v1::landing::events::events_controller;
|
|
|
|
|
use imphnen_cms::v1::landing::events::events_dto::{EventsDetailItemDto, EventsListItemDto};
|
|
|
|
|
use imphnen_cms::v1::landing::testimonials::testimonials_controller;
|
|
|
|
|
use imphnen_cms::v1::landing::testimonials::testimonials_dto::{
|
|
|
|
|
TestimonialsCreateRequestDto, TestimonialsDetailItemDto,
|
|
|
|
|
TestimonialsListItemDto, TestimonialsUpdateRequestDto,
|
2025-07-21 21:29:04 +07:00
|
|
|
};
|
|
|
|
|
use imphnen_dimentorin::v1::mentors::{
|
|
|
|
|
mentors_controller,
|
|
|
|
|
mentors_dto::{
|
|
|
|
|
IdentityAndVerification, MentorDetailResponseDto, MentorListResponseDto,
|
|
|
|
|
MentorRegisterFromTokenRequestDto, MentorRegisterResponseDto,
|
|
|
|
|
MentorUpdateRequestDto, MentorUserRegisterRequestDto, MentorVerifyRequestDto,
|
|
|
|
|
MentoringLogistics, MentoringRate, ProfessionalProfile,
|
|
|
|
|
},
|
|
|
|
|
};
|
2025-09-26 17:35:30 +07:00
|
|
|
use imphnen_gacha::v1::gacha_claims::{gacha_claims_controller, GachaClaimItemDto, GachaClaimRequestDto};
|
|
|
|
|
use imphnen_gacha::v1::gacha_items::{gacha_items_controller, GachaItemDto};
|
|
|
|
|
use imphnen_gacha::v1::gacha_items::gacha_items_dto::GachaItemRequestDto;
|
|
|
|
|
use imphnen_gacha::v1::gacha_rolls::{gacha_rolls_controller, GachaRollItemDto};
|
|
|
|
|
use imphnen_gacha::v1::gacha_rolls::gacha_rolls_dto::GachaRollRequestDto;
|
2025-09-26 15:05:45 +07:00
|
|
|
use imphnen_entities::{PermissionsItemDto, RolesDetailItemDto};
|
2025-09-26 17:35:30 +07:00
|
|
|
use imphnen_entities::{MessageResponseDto, MetaRequestDto, MetaResponseDto, ResponseListSuccessDto, ResponseSuccessDto};
|
|
|
|
|
use imphnen_iam::v1::auth::auth_dto::{AuthLoginRequestDto, AuthLoginResponsetDto, AuthNewPasswordRequestDto, AuthRefreshTokenRequestDto, AuthResendOtpRequestDto, AuthVerifyEmailRequestDto, TokenDto};
|
|
|
|
|
use imphnen_iam::v1::permissions::permissions_dto::PermissionsRequestDto;
|
|
|
|
|
use imphnen_iam::v1::roles::RolesListItemDto;
|
|
|
|
|
use imphnen_iam::v1::roles::roles_dto::{RolesRequestCreateDto, RolesRequestUpdateDto};
|
|
|
|
|
use imphnen_iam::v1::users::UsersDetailItemDto;
|
|
|
|
|
use imphnen_iam::v1::users::users_dto::{UsersCreateRequestDto, UsersListItemDto, UsersUpdateRequestDto};
|
|
|
|
|
use imphnen_iam::v1::teams::teams_dto::{TeamsCreateRequestDto, TeamsUpdateRequestDto, TeamInviteRequestDto, TeamAcceptInvitationRequestDto, TeamsDetailItemDto, TeamsListItemDto, TeamMemberDto, TeamInvitationDto, TeamsSearchQueryDto};
|
2025-09-26 15:05:45 +07:00
|
|
|
use imphnen_iam::v1::{auth, permissions, roles, users, teams};
|
|
|
|
|
use imphnen_iam::v1::users::users_controller::FileUploadSchema;
|
2025-03-14 17:50:37 +07:00
|
|
|
use utoipa::{
|
|
|
|
|
Modify, OpenApi,
|
2025-07-21 21:29:04 +07:00
|
|
|
openapi::security::{Http, HttpAuthScheme, SecurityScheme},
|
2025-03-14 17:50:37 +07:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#[derive(OpenApi)]
|
|
|
|
|
#[openapi(
|
|
|
|
|
paths(
|
|
|
|
|
auth::auth_controller::post_login,
|
2025-07-21 21:29:04 +07:00
|
|
|
auth::auth_controller::post_login_mentor,
|
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,
|
2025-03-30 02:46:16 +07:00
|
|
|
users::users_controller::put_update_user_me,
|
2025-03-23 12:32:00 +07:00
|
|
|
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,
|
2025-08-14 14:16:07 +07:00
|
|
|
users::users_controller::upload_file,
|
2025-03-25 10:48:34 +07:00
|
|
|
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,
|
2025-05-20 10:45:01 +07:00
|
|
|
permissions::permissions_controller::delete_permission,
|
2025-09-22 16:55:03 +07:00
|
|
|
teams::teams_controller::get_team_list,
|
|
|
|
|
teams::teams_controller::get_team_by_id,
|
|
|
|
|
teams::teams_controller::post_create_team,
|
|
|
|
|
teams::teams_controller::put_update_team,
|
|
|
|
|
teams::teams_controller::delete_team,
|
|
|
|
|
teams::teams_controller::post_invite_team_members,
|
|
|
|
|
teams::teams_controller::post_accept_invitation,
|
|
|
|
|
teams::teams_controller::get_public_team_search,
|
|
|
|
|
teams::teams_controller::get_team_members,
|
|
|
|
|
teams::teams_controller::post_leave_team,
|
2025-09-26 17:35:30 +07:00
|
|
|
gacha_claims_controller::get_detail_gacha_claim,
|
|
|
|
|
gacha_claims_controller::post_create_gacha_claim,
|
|
|
|
|
gacha_items_controller::get_gacha_item_list,
|
|
|
|
|
gacha_items_controller::get_gacha_item_by_id,
|
|
|
|
|
gacha_items_controller::post_create_gacha_item,
|
|
|
|
|
gacha_items_controller::put_update_gacha_item,
|
|
|
|
|
gacha_items_controller::delete_gacha_item,
|
|
|
|
|
gacha_rolls_controller::get_detail_gacha_roll,
|
|
|
|
|
gacha_rolls_controller::post_create_gacha_roll,
|
|
|
|
|
gacha_rolls_controller::post_execute_gacha_roll,
|
2025-07-21 21:29:04 +07:00
|
|
|
events_controller::get_event_list,
|
|
|
|
|
events_controller::get_event_by_id,
|
|
|
|
|
events_controller::post_create_event,
|
|
|
|
|
events_controller::patch_update_event,
|
|
|
|
|
events_controller::delete_event,
|
|
|
|
|
testimonials_controller::get_testimonial_list,
|
|
|
|
|
testimonials_controller::get_testimonial_by_id,
|
|
|
|
|
testimonials_controller::post_create_testimonial,
|
|
|
|
|
testimonials_controller::patch_update_testimonial,
|
|
|
|
|
testimonials_controller::delete_testimonial,
|
|
|
|
|
mentors_controller::get_mentor_list,
|
|
|
|
|
mentors_controller::get_mentor_by_id,
|
|
|
|
|
mentors_controller::post_register_mentor,
|
|
|
|
|
mentors_controller::get_mentor_me,
|
|
|
|
|
mentors_controller::put_update_mentor_me,
|
|
|
|
|
mentors_controller::get_mentor_status,
|
|
|
|
|
mentors_controller::put_update_mentor,
|
|
|
|
|
mentors_controller::put_verify_mentor,
|
|
|
|
|
mentors_controller::delete_mentor,
|
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-05-20 00:26:24 +07:00
|
|
|
RolesListItemDto,
|
2025-07-21 21:29:04 +07:00
|
|
|
RolesRequestCreateDto,
|
2025-03-25 10:48:34 +07:00
|
|
|
RolesRequestUpdateDto,
|
2025-03-25 20:50:42 +07:00
|
|
|
PermissionsRequestDto,
|
|
|
|
|
PermissionsItemDto,
|
2025-05-20 00:26:24 +07:00
|
|
|
UsersDetailItemDto,
|
2025-03-30 02:46:16 +07:00
|
|
|
UsersListItemDto,
|
|
|
|
|
UsersUpdateRequestDto,
|
|
|
|
|
UsersCreateRequestDto,
|
2025-08-14 16:53:14 +07:00
|
|
|
FileUploadSchema,
|
2025-05-20 10:45:01 +07:00
|
|
|
GachaClaimItemDto,
|
|
|
|
|
GachaClaimRequestDto,
|
|
|
|
|
GachaItemDto,
|
|
|
|
|
GachaItemRequestDto,
|
|
|
|
|
GachaRollItemDto,
|
|
|
|
|
GachaRollRequestDto,
|
|
|
|
|
ResponseListSuccessDto<Vec<GachaItemDto>>,
|
|
|
|
|
ResponseSuccessDto<GachaRollItemDto>,
|
|
|
|
|
ResponseSuccessDto<GachaItemDto>,
|
|
|
|
|
ResponseSuccessDto<GachaClaimItemDto>,
|
2025-03-14 17:50:37 +07:00
|
|
|
ResponseSuccessDto<AuthLoginResponsetDto>,
|
2025-05-20 00:26:24 +07:00
|
|
|
ResponseListSuccessDto<Vec<RolesListItemDto>>,
|
|
|
|
|
ResponseSuccessDto<RolesDetailItemDto>,
|
2025-03-30 02:46:16 +07:00
|
|
|
ResponseListSuccessDto<Vec<UsersListItemDto>>,
|
|
|
|
|
ResponseSuccessDto<UsersDetailItemDto>,
|
2025-03-25 20:50:42 +07:00
|
|
|
ResponseListSuccessDto<Vec<PermissionsItemDto>>,
|
2025-05-26 14:11:17 +07:00
|
|
|
ResponseSuccessDto<PermissionsItemDto>,
|
2025-07-21 21:29:04 +07:00
|
|
|
ResponseListSuccessDto<Vec<EventsListItemDto>>,
|
|
|
|
|
ResponseSuccessDto<EventsDetailItemDto>,
|
|
|
|
|
ResponseListSuccessDto<Vec<TestimonialsListItemDto>>,
|
|
|
|
|
ResponseSuccessDto<TestimonialsDetailItemDto>,
|
|
|
|
|
TestimonialsCreateRequestDto,
|
|
|
|
|
TestimonialsUpdateRequestDto,
|
|
|
|
|
MentorUserRegisterRequestDto,
|
|
|
|
|
MentorRegisterFromTokenRequestDto,
|
|
|
|
|
MentorRegisterResponseDto,
|
|
|
|
|
MentorListResponseDto,
|
|
|
|
|
MentorDetailResponseDto,
|
|
|
|
|
MentorUpdateRequestDto,
|
|
|
|
|
MentorVerifyRequestDto,
|
|
|
|
|
IdentityAndVerification,
|
|
|
|
|
ProfessionalProfile,
|
|
|
|
|
MentoringLogistics,
|
|
|
|
|
MentoringRate,
|
|
|
|
|
ResponseListSuccessDto<Vec<MentorListResponseDto>>,
|
|
|
|
|
ResponseSuccessDto<MentorDetailResponseDto>,
|
|
|
|
|
ResponseSuccessDto<MentorRegisterResponseDto>,
|
2025-09-22 16:55:03 +07:00
|
|
|
TeamsCreateRequestDto,
|
|
|
|
|
TeamsUpdateRequestDto,
|
|
|
|
|
TeamInviteRequestDto,
|
|
|
|
|
TeamAcceptInvitationRequestDto,
|
|
|
|
|
TeamsDetailItemDto,
|
|
|
|
|
TeamsListItemDto,
|
|
|
|
|
TeamMemberDto,
|
|
|
|
|
TeamInvitationDto,
|
|
|
|
|
TeamsSearchQueryDto,
|
|
|
|
|
ResponseListSuccessDto<Vec<TeamsListItemDto>>,
|
|
|
|
|
ResponseSuccessDto<TeamsDetailItemDto>,
|
2025-03-14 17:50:37 +07:00
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
info(
|
2025-03-30 16:08:58 +07:00
|
|
|
title = "IMPHNEN Backend Service",
|
|
|
|
|
description = "IMPHNEN Backend Service for Provide Gacha, Dimentorin and Backoffice Web App",
|
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"),
|
2025-07-21 21:29:04 +07:00
|
|
|
(name = "Users", description = "User Management Endpoints"),
|
|
|
|
|
(name = "Roles", description = "Role Management Endpoints"),
|
|
|
|
|
(name = "Permissions", description = "Permission Management Endpoints"),
|
|
|
|
|
(name = "Events", description = "Event Management Endpoints"),
|
|
|
|
|
(name = "Testimonials", description = "Testimonial Management Endpoints"),
|
|
|
|
|
(name = "Mentors", description = "Mentor Management Endpoints"),
|
|
|
|
|
(name = "Mentors - Admin", description = "Mentor Admin Management Endpoints (Admin Access Required)"),
|
|
|
|
|
(name = "Gacha", description = "Gacha System Endpoints"),
|
2025-03-14 17:50:37 +07:00
|
|
|
)
|
|
|
|
|
)]
|
|
|
|
|
|
|
|
|
|
pub struct ApiDoc;
|
|
|
|
|
|
2025-09-26 17:35:30 +07:00
|
|
|
pub struct SecurityAddon;
|
2025-03-14 17:50:37 +07:00
|
|
|
|
|
|
|
|
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)),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-04-06 22:13:46 +07:00
|
|
|
|
|
|
|
|
pub fn docs_router() -> utoipa::openapi::OpenApi {
|
|
|
|
|
ApiDoc::openapi()
|
2025-05-17 02:08:59 +07:00
|
|
|
}
|