Refactor and enhance SurrealDB integration and resource management

- Updated `lib.rs` to selectively expose specific entities and services for better clarity.
- Improved SurrealDB client initialization with detailed logging in `surrealdb/mod.rs`.
- Enhanced resource definitions in `resource.rs` with additional utility methods for better resource management.
- Refactored user data retrieval logic in `auth_middleware/mod.rs` for improved readability and efficiency.
- Cleaned up middleware exports in `lib.rs` for clearer API surface.
- Added detailed comments and documentation throughout the SurrealDB module for better maintainability.
- Updated tests to ensure compatibility with new changes and improved structure.
- Introduced new permissions module structure in `imphnen-utils` for future enhancements.
This commit is contained in:
MythEclipse
2025-09-26 17:35:30 +07:00
parent 96debc210a
commit 14b22328de
71 changed files with 1566 additions and 632 deletions
+91 -4
View File
@@ -1,6 +1,93 @@
pub mod v1;
pub use imphnen_entities::*;
pub use imphnen_libs::*;
pub use imphnen_utils::*;
pub use v1::*;
// Re-export core entity types used throughout the IAM module
pub use imphnen_entities::{
MessageResponseDto,
MetaRequestDto,
MetaResponseDto,
ResponseSuccessDto,
ResponseListSuccessDto,
CountResult,
Error,
ExperienceDto,
EducationDto,
UsersDetailQueryDto,
PermissionsEnum,
PermissionsItemDto,
PermissionsQueryDto,
};
// Explicitly export only the imphnen_libs types actually used in IAM
pub use imphnen_libs::{
AppState,
ResourceEnum,
decode_access_token,
decode_refresh_token,
encode_access_token,
encode_refresh_token,
encode_reset_password_token,
hash_password,
send_email,
verify_password,
Env,
SurrealWsClient,
SurrealMemClient,
UserLookupService,
AuthRepositoryTrait,
jsonwebtoken::Claims,
};
// Explicitly export only the imphnen_utils types actually used in IAM
pub use imphnen_utils::{
make_thing,
make_thing_from_enum,
get_id,
get_iso_date,
extract_id,
build_multi_thing_condition,
execute_safe_update_query,
DetailQueryBuilder,
QueryListBuilder,
success_response,
success_list_response,
common_response,
validate_request,
generate_oauth_csrf_token,
validate_oauth_csrf_token,
validate_csrf_token,
extract_email_token_async,
OtpManager,
};
// Export the main router functions and types from v1 module
pub use v1::{
iam_public_routes,
iam_protected_routes,
auth_router,
users_router,
roles_router,
permissions_router,
teams_router,
permissions_guard,
};
// Export IAM-specific types
pub use v1::auth::{
AuthRepository, AuthOtpSchema,
AuthLoginRequestDto, AuthLoginResponsetDto, AuthRegisterRequestDto,
AuthResendOtpRequestDto, AuthVerifyEmailRequestDto,
AuthNewPasswordRequestDto, AuthRefreshTokenRequestDto,
TokenDto, UserCacheSchema,
};
pub use v1::permissions::{PermissionsRepository, PermissionsSchema};
pub use v1::roles::{RolesRepository, RolesSchema, RolesEnum, RolesDetailQueryDto, RolesRequestCreateDto, RolesRequestUpdateDto, RolesDetailItemDto};
pub use v1::teams::{
TeamsRepository, TeamsSchema, TeamsCreateRequestDto, TeamsUpdateRequestDto,
TeamInviteRequestDto, TeamMemberDto, AdminTeamsListItemDto,
AdminTeamsDetailItemDto, TeamsDetailItemDto, TeamsListItemDto,
TeamAcceptInvitationRequestDto, TeamsSearchQueryDto, PublicTeamsListItemDto,
PublicTeamsDetailItemDto, TeamsDetailQueryDto, TeamsListQueryDto,
TeamMembersSchema, TeamInvitationsSchema, TeamMembersQueryDto,
TeamInvitationsQueryDto, MemberTeamsDetailItemDto,
};
pub use v1::users::{UsersRepository, UsersSchema, UsersDetailItemDto, UsersCreateRequestDto};