From 2dea59562675af0586a8373287e7b026d50376c4 Mon Sep 17 00:00:00 2001 From: Sebastian Pravda Date: Fri, 18 Nov 2022 15:28:14 +0100 Subject: [PATCH] feat: portfolio download endpoint for admin --- api/src/lib.rs | 1 + api/src/routes/admin.rs | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/api/src/lib.rs b/api/src/lib.rs index c8385b7..1a793c7 100644 --- a/api/src/lib.rs +++ b/api/src/lib.rs @@ -71,6 +71,7 @@ async fn start() -> Result<(), rocket::Error> { routes::admin::create_candidate, routes::admin::get_candidate, routes::admin::reset_candidate_password, + routes::admin::get_candidate_portfolio, ], ) .mount( diff --git a/api/src/routes/admin.rs b/api/src/routes/admin.rs index 7ae1a96..e4eb796 100644 --- a/api/src/routes/admin.rs +++ b/api/src/routes/admin.rs @@ -2,7 +2,7 @@ use std::net::SocketAddr; use portfolio_core::{ crypto::random_8_char_string, - services::{admin_service::AdminService, candidate_service::CandidateService, application_service::ApplicationService}, responses::CandidateResponse, candidate_details::ApplicationDetails, + services::{admin_service::AdminService, candidate_service::CandidateService, application_service::ApplicationService, portfolio_service::PortfolioService}, responses::CandidateResponse, candidate_details::ApplicationDetails, }; use requests::{AdminLoginRequest, RegisterRequest}; use rocket::http::{Cookie, Status, CookieJar}; @@ -141,4 +141,18 @@ pub async fn reset_candidate_password( .map_err(|e| Custom(Status::from_code(e.code()).unwrap(), e.to_string()))?; Ok(new_password) +} + +#[get("/candidate//portfolio")] +pub async fn get_candidate_portfolio( + session: AdminAuth, + id: i32, +) -> Result, Custom> { + let private_key = session.get_private_key(); + + let portfolio = PortfolioService::get_portfolio(id, private_key) + .await + .map_err(|e| Custom(Status::from_code(e.code()).unwrap(), e.to_string()))?; + + Ok(portfolio) } \ No newline at end of file