use crate::nats_types::ValidateSubmissionRequest; #[allow(dead_code)] #[derive(Debug)] pub enum Error{ ApiActionSubmissionValidate(submissions_api::Error), } impl std::fmt::Display for Error{ fn fmt(&self,f:&mut std::fmt::Formatter<'_>)->std::fmt::Result{ write!(f,"{self:?}") } } impl std::error::Error for Error{} impl crate::message_handler::MessageHandler{ pub async fn validate_submission(&self,validate_info:ValidateSubmissionRequest)->Result<(),Error>{ let submission_id=validate_info.SubmissionID; let validate_result=self.validate_inner(validate_info.into()).await; // update the submission depending on the result match &validate_result{ Ok(())=>{ // update the submission model status to validated self.api.action_submission_validated( submissions_api::types::SubmissionID(submission_id) ).await.map_err(Error::ApiActionSubmissionValidate)?; }, Err(e)=>{ // update the submission model status to accepted self.api.action_submission_accepted(submissions_api::types::ActionSubmissionAcceptedRequest{ SubmissionID:submission_id, StatusMessage:format!("{e}"), }).await.map_err(Error::ApiActionSubmissionValidate)?; }, } Ok(()) } }