62 lines
1.7 KiB
Rust
62 lines
1.7 KiB
Rust
use axum::{
|
|
Router,
|
|
routing::{delete, get, post, put},
|
|
};
|
|
|
|
pub mod mentors_controller;
|
|
pub mod mentors_dto;
|
|
pub mod mentors_repository;
|
|
pub mod mentors_schema;
|
|
pub mod mentors_service;
|
|
|
|
// Explicitly export only public controller functions and key types
|
|
pub use mentors_controller::{
|
|
post_register_mentor,
|
|
get_mentor_list,
|
|
get_mentor_by_id,
|
|
put_update_mentor,
|
|
delete_mentor,
|
|
put_verify_mentor,
|
|
get_mentor_me,
|
|
put_update_mentor_me,
|
|
put_update_mentor_no_id,
|
|
get_mentor_status,
|
|
};
|
|
|
|
// Export key DTO types used across the API
|
|
pub use mentors_dto::{
|
|
MentorListResponseDto,
|
|
MentorDetailResponseDto,
|
|
MentorRegisterResponseDto,
|
|
MentorUpdateRequestDto,
|
|
MentorUserRegisterRequestDto,
|
|
MentorVerifyRequestDto,
|
|
MentorDetailQueryDto,
|
|
ProfessionalProfile,
|
|
MentoringLogistics,
|
|
MentoringRate,
|
|
IdentityAndVerification,
|
|
MentorInsertDto,
|
|
};
|
|
|
|
// Export service and repository for internal use
|
|
pub use mentors_service::MentorsService;
|
|
pub use mentors_repository::MentorsRepository;
|
|
|
|
// Export schema types for database interactions
|
|
pub use mentors_schema::MentorSchema;
|
|
|
|
pub fn mentors_router() -> Router {
|
|
Router::new()
|
|
.route("/", get(get_mentor_list))
|
|
.route("/create", post(post_register_mentor))
|
|
.route("/me", get(get_mentor_me))
|
|
.route("/me/update", put(put_update_mentor_me))
|
|
.route("/me/status", get(get_mentor_status))
|
|
.route("/detail/{id}", get(get_mentor_by_id))
|
|
.route("/update/{id}", put(put_update_mentor))
|
|
.route("/update", put(put_update_mentor_no_id))
|
|
.route("/delete/{id}", delete(delete_mentor))
|
|
.route("/verify/{id}", put(put_verify_mentor))
|
|
}
|