diff --git a/apps/users/src/handlers/auth.rs b/apps/users/src/handlers/auth.rs index 377aad7..b0cd0ae 100644 --- a/apps/users/src/handlers/auth.rs +++ b/apps/users/src/handlers/auth.rs @@ -35,8 +35,12 @@ pub fn router() -> Router { #[derive(Deserialize)] pub struct RegisterPayload { - pub first_name: String, - pub last_name: String, + #[serde(default)] + pub first_name: Option, + #[serde(default)] + pub last_name: Option, + #[serde(default)] + pub full_name: Option, pub email: String, pub phone: Option, pub password: String, @@ -198,7 +202,11 @@ async fn register( let password_hash = hash_password(&payload.password) .map_err(|e| err(StatusCode::INTERNAL_SERVER_ERROR, &e.to_string(), "INTERNAL_ERROR"))?; - let full_name = format!("{} {}", payload.first_name.trim(), payload.last_name.trim()).trim().to_string(); + let full_name = match (&payload.first_name, &payload.last_name, &payload.full_name) { + (Some(fn_), Some(ln_), _) => format!("{} {}", fn_.trim(), ln_.trim()).trim().to_string(), + (_, _, Some(fn_)) => fn_.trim().to_string(), + _ => return Err(err(StatusCode::UNPROCESSABLE_ENTITY, "first_name and last_name are required", "VALIDATION_ERROR")), + }; let user = UserRepository::create(&state.pool, CreateUserPayload { name: full_name, diff --git a/k8s-migration-job.yaml b/k8s-migration-job.yaml new file mode 100644 index 0000000..1be5bba --- /dev/null +++ b/k8s-migration-job.yaml @@ -0,0 +1,33 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: nxtgauge-db-migrate + namespace: default + labels: + app: nxtgauge-db-migrate +spec: + ttlSecondsAfterFinished: 300 + backoffLimit: 3 + template: + metadata: + labels: + app: nxtgauge-db-migrate + spec: + restartPolicy: OnFailure + containers: + - name: migrate + image: ghcr.io/traceworks2023/nxtgauge-db-migrate:high-performance-latest + imagePullPolicy: Always + envFrom: + - secretRef: + name: nxtgauge-backend-rust-secrets + env: + - name: MIGRATIONS_DIR + value: "/migrations" + resources: + requests: + memory: "64Mi" + cpu: "50m" + limits: + memory: "256Mi" + cpu: "500m"