From 314138a1113cbf22c2ace25eec2fa5803bd5eb3d Mon Sep 17 00:00:00 2001 From: Sebastian Pravda Date: Sun, 27 Nov 2022 11:25:36 +0100 Subject: [PATCH] feat: new create candidate response --- api/src/routes/admin.rs | 16 ++++++++++++---- core/src/responses.rs | 7 +++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/api/src/routes/admin.rs b/api/src/routes/admin.rs index d7bfc0d..c71e383 100644 --- a/api/src/routes/admin.rs +++ b/api/src/routes/admin.rs @@ -2,7 +2,7 @@ use std::net::{SocketAddr, IpAddr, Ipv4Addr}; use portfolio_core::{ crypto::random_8_char_string, - services::{admin_service::AdminService, candidate_service::CandidateService, application_service::ApplicationService, portfolio_service::PortfolioService}, responses::BaseCandidateResponse, candidate_details::ApplicationDetails, sea_orm::prelude::Uuid, + services::{admin_service::AdminService, candidate_service::CandidateService, application_service::ApplicationService, portfolio_service::PortfolioService}, responses::{BaseCandidateResponse, CreateCandidateResponse}, candidate_details::ApplicationDetails, sea_orm::prelude::Uuid, }; use requests::{AdminLoginRequest, RegisterRequest}; use rocket::http::{Cookie, Status, CookieJar}; @@ -87,7 +87,7 @@ pub async fn create_candidate( conn: Connection<'_, Db>, _session: AdminAuth, request: Json, -) -> Result> { +) -> Result, Custom> { let db = conn.into_inner(); let form = request.into_inner(); @@ -97,12 +97,20 @@ pub async fn create_candidate( db, form.application_id, &plain_text_password, - form.personal_id_number, + form.personal_id_number.clone(), ) .await .map_err(|e| Custom(Status::InternalServerError, e.to_string()))?; - Ok(plain_text_password) + Ok( + Json( + CreateCandidateResponse { + application_id: form.application_id, + personal_id_number: form.personal_id_number, + password: plain_text_password, + } + ) + ) } #[get("/candidates?&")] diff --git a/core/src/responses.rs b/core/src/responses.rs index 970c7ba..967ee0b 100644 --- a/core/src/responses.rs +++ b/core/src/responses.rs @@ -2,6 +2,13 @@ use serde::Serialize; use crate::{candidate_details::EncryptedString, error::ServiceError}; +#[derive(Debug, Serialize)] +pub struct CreateCandidateResponse { + pub application_id: i32, + pub personal_id_number: String, + pub password: String, +} + #[derive(Debug, Serialize)] pub struct BaseCandidateResponse { pub application_id: i32,