From 6460979bab05d48f00b4bdf69ca7f946287647b7 Mon Sep 17 00:00:00 2001 From: Maulana Sodiqin Date: Sun, 30 Mar 2025 16:08:58 +0700 Subject: [PATCH] feat: complete backend service --- .env.example | 1 - .github/workflows/deploy.yml | 4 +- Cargo.lock | 54 +++++++++++----------- Cargo.toml | 2 +- Dockerfile | 6 +-- flake.nix | 2 +- src/apps/v1/auth/auth_dto.rs | 6 --- src/apps/v1/auth/auth_repository_test.rs | 12 ----- src/apps/v1/auth/auth_service.rs | 9 ---- src/apps/v1/docs/docs_controller.rs | 4 +- src/apps/v1/users/users_controller_test.rs | 50 -------------------- src/apps/v1/users/users_dto.rs | 48 ++----------------- src/apps/v1/users/users_repository.rs | 39 ++-------------- src/apps/v1/users/users_schema.rs | 35 ++++---------- src/apps/v1/users/users_service.rs | 31 ++----------- src/bin/api.rs | 2 +- src/bin/seed_permissions.rs | 2 +- src/bin/seed_roles.rs | 2 +- src/bin/seed_roles_permissions.rs | 2 +- src/bin/seed_users.rs | 2 +- src/main.rs | 2 +- src/utils/mock_test.rs | 6 --- 22 files changed, 64 insertions(+), 257 deletions(-) diff --git a/.env.example b/.env.example index b90ccc5..f5c2b84 100644 --- a/.env.example +++ b/.env.example @@ -4,6 +4,5 @@ SURREALDB_USERNAME= SURREALDB_PASSWORD= SURREALDB_NAMESPACE= SURREALDB_DBNAME= -REDISDB_URL= ACCESS_TOKEN_SECRET= REFRESH_TOKEN_SECRET= diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 3056840..2fb6565 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -41,8 +41,8 @@ jobs: username: ${{ secrets.VPS_USER }} key: ${{ secrets.VPS_SSH_KEY }} port: ${{ secrets.VPS_PORT }} - source: ./target/release/najm-course-api - target: /opt/najm-course-api/najm-course-api + source: ./target/release/imphnen-backend-service + target: /opt/imphnen-backend-service/imphnen-backend-service rm: true overwrite: true diff --git a/Cargo.lock b/Cargo.lock index 8acc40b..d023e35 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1870,6 +1870,33 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" +[[package]] +name = "imphnen-backend-service" +version = "0.1.0" +dependencies = [ + "anyhow", + "argon2", + "axum", + "axum-test", + "chrono", + "fancy-regex", + "jsonwebtoken", + "lazy_static", + "lettre", + "log", + "rand 0.9.0", + "regex", + "serde", + "serde_json", + "surrealdb", + "thiserror 2.0.12", + "tokio", + "tower-http", + "utoipa", + "utoipa-swagger-ui", + "validator", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -2256,33 +2283,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "najm-course-api" -version = "0.1.0" -dependencies = [ - "anyhow", - "argon2", - "axum", - "axum-test", - "chrono", - "fancy-regex", - "jsonwebtoken", - "lazy_static", - "lettre", - "log", - "rand 0.9.0", - "regex", - "serde", - "serde_json", - "surrealdb", - "thiserror 2.0.12", - "tokio", - "tower-http", - "utoipa", - "utoipa-swagger-ui", - "validator", -] - [[package]] name = "nanoid" version = "0.4.0" diff --git a/Cargo.toml b/Cargo.toml index 36929cf..68705a4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "najm-course-api" +name = "imphnen-backend-service" version = "0.1.0" edition = "2021" diff --git a/Dockerfile b/Dockerfile index 9c3cae1..f3540e3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,12 +11,12 @@ WORKDIR /app COPY Cargo.toml Cargo.lock ./ COPY ./src ./src -RUN cargo build --release && strip /app/target/release/axum-surrealdb-boilerplate +RUN cargo build --release && strip /app/target/release/imphnen-backend-service FROM gcr.io/distroless/cc AS runner WORKDIR /app -COPY --from=builder /app/target/release/axum-surrealdb-boilerplate . +COPY --from=builder /app/target/release/imphnen-backend-service . -CMD ["/app/axum-boilerplate-surrealdb"] +CMD ["/app/imphnen-backend-service"] diff --git a/flake.nix b/flake.nix index e880846..0cbb5b1 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "IMPHNEN CMS API Nix Flake"; + description = "IMPHNEN Backend Service Nix Flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; diff --git a/src/apps/v1/auth/auth_dto.rs b/src/apps/v1/auth/auth_dto.rs index 14e6124..6fb20bf 100644 --- a/src/apps/v1/auth/auth_dto.rs +++ b/src/apps/v1/auth/auth_dto.rs @@ -28,13 +28,7 @@ pub struct AuthUserItemDto { pub email: String, pub avatar: Option, pub phone_number: String, - pub referred_by: Option, - pub referral_code: Option, - pub student_type: String, pub is_active: bool, - pub is_profile_completed: bool, - pub identity_number: Option, - pub religion: Option, pub gender: Option, pub birthdate: Option, } diff --git a/src/apps/v1/auth/auth_repository_test.rs b/src/apps/v1/auth/auth_repository_test.rs index 7b1ebc5..c16026d 100644 --- a/src/apps/v1/auth/auth_repository_test.rs +++ b/src/apps/v1/auth/auth_repository_test.rs @@ -16,15 +16,9 @@ mod auth_repository_test { is_deleted: false, avatar: None, phone_number: "081234567890".to_string(), - referral_code: None, - referred_by: None, - identity_number: None, is_active: true, - student_type: "general".to_string(), - religion: None, gender: None, birthdate: None, - is_profile_completed: false, role: make_thing("roles", "user"), created_at: get_iso_date(), updated_at: get_iso_date(), @@ -59,13 +53,7 @@ mod auth_repository_test { email: email.clone(), avatar: None, phone_number: "08123456789".into(), - referred_by: None, - referral_code: None, - student_type: "TNI".into(), is_active: true, - is_profile_completed: false, - identity_number: None, - religion: None, gender: None, birthdate: None, role: RolesItemDtoRaw { diff --git a/src/apps/v1/auth/auth_service.rs b/src/apps/v1/auth/auth_service.rs index e8cef81..2a722e5 100644 --- a/src/apps/v1/auth/auth_service.rs +++ b/src/apps/v1/auth/auth_service.rs @@ -82,14 +82,8 @@ impl AuthService { is_active: user.is_active.clone(), avatar: user.avatar.clone(), phone_number: user.phone_number.clone(), - referral_code: user.referral_code.clone(), - referred_by: user.referred_by.clone(), - identity_number: user.identity_number.clone(), - student_type: user.student_type.clone(), - religion: user.religion.clone(), gender: user.gender.clone(), birthdate: user.birthdate.clone(), - is_profile_completed: user.is_profile_completed.clone(), role: RolesItemDto { id: role_response.id, name: role_response.name, @@ -187,9 +181,6 @@ impl AuthService { fullname: new_user.fullname.clone(), password: new_user.password.clone(), phone_number: new_user.phone_number.clone(), - referral_code: new_user.referral_code.clone(), - referred_by: new_user.referred_by.clone(), - student_type: new_user.student_type.clone(), created_at: get_iso_date(), updated_at: get_iso_date(), role: role_thing, diff --git a/src/apps/v1/docs/docs_controller.rs b/src/apps/v1/docs/docs_controller.rs index 5e5fd72..a023109 100644 --- a/src/apps/v1/docs/docs_controller.rs +++ b/src/apps/v1/docs/docs_controller.rs @@ -69,8 +69,8 @@ use utoipa::{ ) ), info( - title = "NAJM Course API", - description = "NAJM Course API", + title = "IMPHNEN Backend Service", + description = "IMPHNEN Backend Service for Provide Gacha, Dimentorin and Backoffice Web App", version = "0.1.0", contact( name = "Maulana Sodiqin", diff --git a/src/apps/v1/users/users_controller_test.rs b/src/apps/v1/users/users_controller_test.rs index a3f60fd..4d96238 100644 --- a/src/apps/v1/users/users_controller_test.rs +++ b/src/apps/v1/users/users_controller_test.rs @@ -119,11 +119,8 @@ async fn test_create_user_should_return_201() { email: format!("test-{}@create.com", Uuid::new_v4()).into(), role_id, password: "Password1!".into(), - student_type: "general".into(), phone_number: "081234567890".into(), is_active: true, - referral_code: None, - referred_by: None, }; let res = server.post("/v1/users/create").json(&payload).await; assert_eq!(res.status_code(), StatusCode::CREATED); @@ -148,11 +145,8 @@ async fn test_get_user_detail_should_return_200() { email: "detail@test.com".into(), role_id, password: "Password1!".into(), - student_type: "general".into(), phone_number: "081234567890".into(), is_active: true, - referral_code: None, - referred_by: None, }; server.post("/v1/users/create").json(&payload).await; let user = repo.query_user_by_email(payload.email).await.unwrap(); @@ -178,12 +172,9 @@ async fn test_delete_user_should_return_200() { fullname: "Test Delete Me".into(), email: "test@delete-me.com".into(), password: "Password1!".into(), - student_type: "general".into(), role_id: role.id.clone(), phone_number: "081234567890".into(), is_active: true, - referral_code: None, - referred_by: None, }; let create_res = server.post("/v1/users/create").json(&payload).await; assert_eq!(create_res.status_code(), StatusCode::CREATED); @@ -216,11 +207,8 @@ async fn test_activate_user_should_return_200() { email: format!("inactive-{}@test.com", Uuid::new_v4()).into(), password: "Password1!".into(), role_id, - student_type: "general".into(), phone_number: "081234567890".into(), is_active: false, - referral_code: None, - referred_by: None, }; let res_create = server.post("/v1/users/create").json(&payload).await; dbg!(res_create.text()); @@ -255,11 +243,8 @@ async fn test_update_user_should_return_200() { email: unique_email.clone(), password: "Password1!".into(), role_id: role_id.clone(), - student_type: "general".into(), phone_number: "081234567890".into(), is_active: true, - referral_code: None, - referred_by: None, }; let create_res = server.post("/v1/users/create").json(&payload).await; assert_eq!(create_res.status_code(), StatusCode::CREATED); @@ -268,14 +253,9 @@ async fn test_update_user_should_return_200() { let update_payload = UsersUpdateRequestDto { fullname: "Updated Name".into(), email: payload.email.clone(), - student_type: "general".into(), phone_number: "081234567890".into(), role_id: user.role.id.id.to_raw(), is_active: true, - referral_code: None, - referred_by: None, - identity_number: Some("1234567890123456".into()), - religion: Some("Islam".into()), gender: Some("Laki-laki".into()), birthdate: Some("2000-01-01".into()), avatar: None, @@ -307,12 +287,9 @@ async fn test_create_user_should_fail_if_email_taken() { fullname: "User Satu".into(), email: email.clone(), password: "Password1!".into(), - student_type: "general".into(), role_id, phone_number: "081234567890".into(), is_active: true, - referral_code: None, - referred_by: None, }; let res1 = server.post("/v1/users/create").json(&payload).await; assert_eq!(res1.status_code(), StatusCode::CREATED); @@ -354,11 +331,8 @@ async fn test_delete_user_should_fail_if_already_deleted() { email: "delete-me@example.com".into(), role_id, password: "Password1!".into(), - student_type: "general".into(), phone_number: "081234567890".into(), is_active: true, - referral_code: None, - referred_by: None, }; server.post("/v1/users/create").json(&payload).await; let user = repo.query_user_by_email(payload.email).await.unwrap(); @@ -387,14 +361,9 @@ async fn test_update_user_should_fail_if_user_not_found() { let update_payload = UsersUpdateRequestDto { fullname: "Does Not Exist".into(), email: "nonexistent@test.com".into(), - student_type: "general".into(), phone_number: "081234567890".into(), role_id, is_active: true, - referral_code: None, - referred_by: None, - identity_number: Some("1234567890123456".into()), - religion: Some("Islam".into()), gender: Some("Laki-laki".into()), birthdate: Some("2000-01-01".into()), avatar: None, @@ -526,11 +495,8 @@ async fn test_user_detail_should_fail_if_user_is_soft_deleted() { fullname: "Soft Deleted".into(), email: "softdeleted@test.com".into(), password: "Password1!".into(), - student_type: "general".into(), phone_number: "081234567890".into(), is_active: true, - referral_code: None, - referred_by: None, }; server.post("/v1/users/create").json(&payload).await; let user = repo.query_user_by_email(payload.email).await.unwrap(); @@ -562,11 +528,8 @@ async fn test_update_user_should_fail_if_user_is_deleted() { fullname: "To Be Deleted".into(), email: "deleteduser@test.com".into(), password: "Password1!".into(), - student_type: "general".into(), phone_number: "081234567890".into(), is_active: true, - referral_code: None, - referred_by: None, }; server.post("/v1/users/create").json(&payload).await; let user = repo.query_user_by_email(payload.email).await.unwrap(); @@ -576,13 +539,8 @@ async fn test_update_user_should_fail_if_user_is_deleted() { role_id: role_id.clone(), fullname: "Should Fail".into(), email: "deleteduser@test.com".into(), - student_type: "general".into(), phone_number: "081234567890".into(), is_active: true, - referral_code: None, - referred_by: None, - identity_number: Some("1234567890123456".into()), - religion: Some("Islam".into()), gender: Some("Laki-laki".into()), birthdate: Some("2000-01-01".into()), avatar: None, @@ -615,11 +573,8 @@ async fn test_update_user_should_fail_if_payload_invalid() { email: "invalid@test.com".into(), role_id: role_id.clone(), password: "Password1!".into(), - student_type: "general".into(), phone_number: "081234567890".into(), is_active: true, - referral_code: None, - referred_by: None, }; server.post("/v1/users/create").json(&payload).await; let user = repo.query_user_by_email(payload.email).await.unwrap(); @@ -627,14 +582,9 @@ async fn test_update_user_should_fail_if_payload_invalid() { let update_payload = UsersUpdateRequestDto { fullname: "".into(), email: "invalid@test.com".into(), - student_type: "general".into(), phone_number: "081234567890".into(), is_active: true, - referral_code: None, role_id: role_id.clone(), - referred_by: None, - identity_number: Some("1234567890123456".into()), - religion: Some("Islam".into()), gender: Some("Laki-laki".into()), birthdate: Some("2000-01-01".into()), avatar: None, diff --git a/src/apps/v1/users/users_dto.rs b/src/apps/v1/users/users_dto.rs index 1e4338a..e752f26 100644 --- a/src/apps/v1/users/users_dto.rs +++ b/src/apps/v1/users/users_dto.rs @@ -34,19 +34,11 @@ pub struct UsersCreateRequestDto { pub password: String, #[validate(length(min = 2, message = "Fullname at least have 2 character"))] pub fullname: String, - #[validate(length(min = 1, message = "Student type is required"))] - pub student_type: String, #[validate(length( min = 10, message = "Phone number at least have 10 character" ))] pub phone_number: String, - #[validate(length( - max = 4, - message = "Referal code cannot be more than 4 character" - ))] - pub referral_code: Option, - pub referred_by: Option, pub is_active: bool, pub role_id: String, } @@ -64,24 +56,12 @@ pub struct UsersUpdateRequestDto { ))] #[validate(length(min = 2, message = "Fullname at least have 2 character"))] pub fullname: String, - #[validate(length(min = 1, message = "Student type is required"))] - pub student_type: String, #[validate(length( min = 10, message = "Phone number at least have 10 character" ))] pub phone_number: String, - #[validate(length( - max = 4, - message = "Referal code cannot be more than 4 character" - ))] - pub referral_code: Option, - pub referred_by: Option, pub is_active: bool, - #[validate(length(min = 16, message = "NIK at least have 16 character"))] - pub identity_number: Option, - #[validate(length(min = 1, message = "Religion is required"))] - pub religion: Option, #[validate(length(min = 1, message = "Gender is required"))] pub gender: Option, #[validate(length(min = 1, message = "Birthdate is required"))] @@ -99,14 +79,8 @@ pub struct UsersItemDto { pub email: String, pub avatar: Option, pub phone_number: String, - pub referred_by: Option, - pub referral_code: Option, - pub student_type: String, pub is_active: bool, - pub is_profile_completed: bool, pub is_deleted: bool, - pub identity_number: Option, - pub religion: Option, pub gender: Option, pub birthdate: Option, pub password: String, @@ -122,13 +96,7 @@ pub struct UsersDetailItemDto { pub email: String, pub avatar: Option, pub phone_number: String, - pub referred_by: Option, - pub referral_code: Option, - pub student_type: String, pub is_active: bool, - pub is_profile_completed: bool, - pub identity_number: Option, - pub religion: Option, pub gender: Option, pub birthdate: Option, } @@ -141,10 +109,9 @@ pub struct UsersListItemDto { pub email: String, pub avatar: Option, pub phone_number: String, - pub referred_by: Option, - pub referral_code: Option, - pub student_type: String, pub is_active: bool, + pub created_at: String, + pub updated_at: String, } #[derive(Clone, Debug, Serialize, Deserialize)] @@ -155,10 +122,9 @@ pub struct UsersListItemDtoRaw { pub email: String, pub avatar: Option, pub phone_number: String, - pub referred_by: Option, - pub referral_code: Option, - pub student_type: String, pub is_active: bool, + pub created_at: String, + pub updated_at: String, } #[derive(Clone, Debug, Serialize, Deserialize)] @@ -168,14 +134,8 @@ pub struct UsersItemDtoRaw { pub email: String, pub avatar: Option, pub phone_number: String, - pub referred_by: Option, - pub referral_code: Option, - pub student_type: String, pub is_active: bool, - pub is_profile_completed: bool, pub is_deleted: bool, - pub identity_number: Option, - pub religion: Option, pub gender: Option, pub birthdate: Option, pub role: RolesItemDtoRaw, diff --git a/src/apps/v1/users/users_repository.rs b/src/apps/v1/users/users_repository.rs index 5abea16..18d6705 100644 --- a/src/apps/v1/users/users_repository.rs +++ b/src/apps/v1/users/users_repository.rs @@ -23,37 +23,28 @@ impl<'a> UsersRepository<'a> { meta: MetaRequestDto, ) -> Result>> { let db = &self.state.surrealdb_ws; - let mut conditions = vec!["is_deleted = false".to_string()]; - if let Some(search) = meta.search.as_deref() { if !search.is_empty() { conditions.push("string::contains(fullname ?? '', $search)".to_string()); } } - if let (Some(filter_by), Some(_filter)) = (meta.filter_by.as_ref(), meta.filter.as_ref()) { conditions.push(format!("{} = $filter", filter_by)); } - let where_clause = if !conditions.is_empty() { format!("WHERE {}", conditions.join(" AND ")) } else { String::new() }; - let limit = meta.per_page.unwrap_or(10); let page = meta.page.unwrap_or(1); - - // Validate pagination parameters explicitly if page < 1 || limit < 1 { return Err(anyhow!("Invalid pagination parameters")); } - let start = (page - 1) * limit; - let select_query = format!( " SELECT @@ -63,15 +54,11 @@ impl<'a> UsersRepository<'a> { email, avatar, phone_number, - referred_by, - referral_code, - student_type, is_active, - is_profile_completed, - identity_number, - religion, gender, - birthdate + birthdate, + created_at, + updated_at FROM {} {} LIMIT {} START {} @@ -82,7 +69,6 @@ impl<'a> UsersRepository<'a> { limit, start ); - let raw_result = query_list_with_meta::( db, &ResourceEnum::Users.to_string(), @@ -91,7 +77,6 @@ impl<'a> UsersRepository<'a> { Some(select_query), ) .await?; - let transformed_data = raw_result .data .into_iter() @@ -101,14 +86,12 @@ impl<'a> UsersRepository<'a> { email: user.email, avatar: user.avatar, phone_number: user.phone_number, - referred_by: user.referred_by, - referral_code: user.referral_code, - student_type: user.student_type, is_active: user.is_active, role: user.role.unwrap_or_else(|| "-".into()), + created_at: user.created_at, + updated_at: user.updated_at, }) .collect::>(); - Ok(ResponseListSuccessDto { data: transformed_data, meta: raw_result.meta, @@ -147,14 +130,8 @@ impl<'a> UsersRepository<'a> { email: user.email, avatar: user.avatar, phone_number: user.phone_number, - referred_by: user.referred_by, - referral_code: user.referral_code, - student_type: user.student_type, is_active: user.is_active, is_deleted: user.is_deleted, - is_profile_completed: user.is_profile_completed, - identity_number: user.identity_number, - religion: user.religion, gender: user.gender, birthdate: user.birthdate, password: user.password, @@ -206,14 +183,8 @@ impl<'a> UsersRepository<'a> { email: user.email, avatar: user.avatar, phone_number: user.phone_number, - referred_by: user.referred_by, - referral_code: user.referral_code, - student_type: user.student_type, is_active: user.is_active, is_deleted: user.is_deleted, - is_profile_completed: user.is_profile_completed, - identity_number: user.identity_number, - religion: user.religion, gender: user.gender, birthdate: user.birthdate, password: user.password, diff --git a/src/apps/v1/users/users_schema.rs b/src/apps/v1/users/users_schema.rs index c005675..bca7755 100644 --- a/src/apps/v1/users/users_schema.rs +++ b/src/apps/v1/users/users_schema.rs @@ -1,9 +1,6 @@ -use crate::{get_iso_date, ResourceEnum}; +use crate::{get_iso_date, make_thing, ResourceEnum}; use serde::{Deserialize, Serialize}; -use surrealdb::{ - sql::{Id, Thing}, - Uuid, -}; +use surrealdb::{sql::Thing, Uuid}; #[derive(Clone, Debug, Serialize, Deserialize)] pub struct UsersSchema { @@ -13,16 +10,10 @@ pub struct UsersSchema { pub password: String, pub avatar: Option, pub phone_number: String, - pub referral_code: Option, - pub referred_by: Option, - pub identity_number: Option, pub is_active: bool, pub is_deleted: bool, - pub student_type: String, - pub religion: Option, pub gender: Option, pub birthdate: Option, - pub is_profile_completed: bool, pub role: Thing, pub created_at: String, pub updated_at: String, @@ -31,29 +22,23 @@ pub struct UsersSchema { impl Default for UsersSchema { fn default() -> Self { UsersSchema { - id: Thing::from(( - ResourceEnum::Users.to_string(), - Id::String(Uuid::new_v4().to_string()), - )), + id: make_thing( + &ResourceEnum::Users.to_string(), + &Uuid::new_v4().to_string(), + ), fullname: String::new(), email: String::new(), password: String::new(), avatar: None, phone_number: String::new(), - referral_code: None, - referred_by: None, - identity_number: None, is_active: false, is_deleted: false, - student_type: String::new(), - religion: None, gender: None, birthdate: None, - is_profile_completed: false, - role: Thing::from(( - ResourceEnum::Roles.to_string(), - Id::String(Uuid::new_v4().to_string()), - )), + role: make_thing( + &ResourceEnum::Roles.to_string(), + &Uuid::new_v4().to_string(), + ), created_at: get_iso_date(), updated_at: get_iso_date(), } diff --git a/src/apps/v1/users/users_service.rs b/src/apps/v1/users/users_service.rs index 3be4ba6..1009a96 100644 --- a/src/apps/v1/users/users_service.rs +++ b/src/apps/v1/users/users_service.rs @@ -43,13 +43,7 @@ impl UsersService { email: user.email, avatar: user.avatar, phone_number: user.phone_number, - referred_by: user.referred_by, - referral_code: user.referral_code, - student_type: user.student_type, is_active: user.is_active, - is_profile_completed: user.is_profile_completed, - identity_number: user.identity_number, - religion: user.religion, gender: user.gender, birthdate: user.birthdate, }, @@ -72,13 +66,7 @@ impl UsersService { email: user.email, avatar: user.avatar, phone_number: user.phone_number, - referred_by: user.referred_by, - referral_code: user.referral_code, - student_type: user.student_type, is_active: user.is_active, - is_profile_completed: user.is_profile_completed, - identity_number: user.identity_number, - religion: user.religion, gender: user.gender, birthdate: user.birthdate, }, @@ -109,12 +97,8 @@ impl UsersService { fullname: new_user.fullname.clone(), password: hash_password(&new_user.password).unwrap(), phone_number: new_user.phone_number.clone(), - referral_code: new_user.referral_code.clone(), - referred_by: new_user.referred_by.clone(), - student_type: new_user.student_type.clone(), is_active: new_user.is_active.clone(), role: role_thing, - is_profile_completed: false, ..Default::default() }) .await @@ -145,16 +129,10 @@ impl UsersService { fullname: user.fullname, email: user.email, phone_number: user.phone_number, - referral_code: user.referral_code, - referred_by: user.referred_by, - identity_number: user.identity_number, is_active: user.is_active, - student_type: user.student_type, - religion: user.religion, gender: user.gender, birthdate: user.birthdate, avatar: user.avatar, - is_profile_completed: false, role: role_id, updated_at: get_iso_date(), ..Default::default() @@ -185,16 +163,13 @@ impl UsersService { fullname: user.fullname, email: user.email, phone_number: user.phone_number, - referral_code: user.referral_code, - referred_by: user.referred_by, - identity_number: user.identity_number, + is_active: user.is_active, - student_type: user.student_type, - religion: user.religion, + gender: user.gender, birthdate: user.birthdate, avatar: user.avatar, - is_profile_completed: true, + role: role_id, updated_at: get_iso_date(), ..Default::default() diff --git a/src/bin/api.rs b/src/bin/api.rs index facdbb8..f5c0055 100644 --- a/src/bin/api.rs +++ b/src/bin/api.rs @@ -1,4 +1,4 @@ -use najm_course_api::{apps, axum_init}; +use imphnen_backend_service::{apps, axum_init}; #[tokio::main] async fn main() { diff --git a/src/bin/seed_permissions.rs b/src/bin/seed_permissions.rs index 3a373b2..a94dae1 100644 --- a/src/bin/seed_permissions.rs +++ b/src/bin/seed_permissions.rs @@ -1,4 +1,4 @@ -use najm_course_api::{get_iso_date, Env}; +use imphnen_backend_service::{get_iso_date, Env}; use serde_json::json; use std::error::Error; use surrealdb::{engine::remote::ws::Ws, opt::auth::Root, Surreal}; diff --git a/src/bin/seed_roles.rs b/src/bin/seed_roles.rs index 4425895..598ca4c 100644 --- a/src/bin/seed_roles.rs +++ b/src/bin/seed_roles.rs @@ -1,4 +1,4 @@ -use najm_course_api::{get_iso_date, Env}; +use imphnen_backend_service::{get_iso_date, Env}; use serde_json::json; use std::error::Error; use surrealdb::{engine::remote::ws::Ws, opt::auth::Root, Surreal}; diff --git a/src/bin/seed_roles_permissions.rs b/src/bin/seed_roles_permissions.rs index 833bdd3..1f2db5a 100644 --- a/src/bin/seed_roles_permissions.rs +++ b/src/bin/seed_roles_permissions.rs @@ -1,4 +1,4 @@ -use najm_course_api::{get_iso_date, make_thing, Env}; +use imphnen_backend_service::{get_iso_date, make_thing, Env}; use std::error::Error; use surrealdb::{engine::remote::ws::Ws, opt::auth::Root, Surreal}; diff --git a/src/bin/seed_users.rs b/src/bin/seed_users.rs index 71ecfbd..f0783ee 100644 --- a/src/bin/seed_users.rs +++ b/src/bin/seed_users.rs @@ -1,4 +1,4 @@ -use najm_course_api::{get_iso_date, hash_password, Env}; +use imphnen_backend_service::{get_iso_date, hash_password, Env}; use serde::{Deserialize, Serialize}; use std::error::Error; use surrealdb::{engine::remote::ws::Ws, opt::auth::Root, sql::Thing, Surreal}; diff --git a/src/main.rs b/src/main.rs index facdbb8..f5c0055 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -use najm_course_api::{apps, axum_init}; +use imphnen_backend_service::{apps, axum_init}; #[tokio::main] async fn main() { diff --git a/src/utils/mock_test.rs b/src/utils/mock_test.rs index 678faa8..3a0743f 100644 --- a/src/utils/mock_test.rs +++ b/src/utils/mock_test.rs @@ -66,15 +66,9 @@ pub fn create_test_user( is_deleted: false, avatar: None, phone_number: "081234567890".to_string(), - referral_code: None, - referred_by: None, - identity_number: None, is_active, - student_type: "TNI".to_string(), - religion: None, gender: None, birthdate: None, - is_profile_completed: false, role: make_thing("app_roles", role_id), ..Default::default() }