validation: catch final error
This commit is contained in:
parent
56681f8862
commit
ca1676db00
validation/src
@ -4,8 +4,8 @@ use crate::create::CreateRequest;
|
|||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum Error{
|
pub enum Error{
|
||||||
|
Create(crate::create::Error),
|
||||||
ApiActionMapfixCreate(submissions_api::Error),
|
ApiActionMapfixCreate(submissions_api::Error),
|
||||||
ApiActionOperationFailed(submissions_api::Error),
|
|
||||||
}
|
}
|
||||||
impl std::fmt::Display for Error{
|
impl std::fmt::Display for Error{
|
||||||
fn fmt(&self,f:&mut std::fmt::Formatter<'_>)->std::fmt::Result{
|
fn fmt(&self,f:&mut std::fmt::Formatter<'_>)->std::fmt::Result{
|
||||||
@ -15,31 +15,36 @@ impl std::fmt::Display for Error{
|
|||||||
impl std::error::Error for Error{}
|
impl std::error::Error for Error{}
|
||||||
|
|
||||||
impl crate::message_handler::MessageHandler{
|
impl crate::message_handler::MessageHandler{
|
||||||
pub async fn create_mapfix(&self,create_info:CreateMapfixRequest)->Result<(),Error>{
|
async fn create_mapfix_inner(&self,create_info:CreateMapfixRequest)->Result<(),Error>{
|
||||||
let create_result=self.create_inner(CreateRequest{
|
// call deduplicated inner code
|
||||||
|
let create_request=self.create_inner(CreateRequest{
|
||||||
ModelID:create_info.ModelID,
|
ModelID:create_info.ModelID,
|
||||||
}).await;
|
}).await.map_err(Error::Create)?;
|
||||||
|
|
||||||
match create_result{
|
// call create on api
|
||||||
Ok(create_request)=>{
|
self.api.create_mapfix(submissions_api::types::CreateMapfixRequest{
|
||||||
// call create on api
|
OperationID:create_info.OperationID,
|
||||||
self.api.create_mapfix(submissions_api::types::CreateMapfixRequest{
|
AssetOwner:create_request.AssetOwner,
|
||||||
OperationID:create_info.OperationID,
|
DisplayName:create_request.DisplayName.as_str(),
|
||||||
AssetOwner:create_request.AssetOwner,
|
Creator:create_request.Creator.as_str(),
|
||||||
DisplayName:create_request.DisplayName.as_str(),
|
GameID:create_request.GameID,
|
||||||
Creator:create_request.Creator.as_str(),
|
AssetID:create_info.ModelID,
|
||||||
GameID:create_request.GameID,
|
AssetVersion:create_request.AssetVersion,
|
||||||
AssetID:create_info.ModelID,
|
TargetAssetID:create_info.TargetAssetID,
|
||||||
AssetVersion:create_request.AssetVersion,
|
}).await.map_err(Error::ApiActionMapfixCreate)?;
|
||||||
TargetAssetID:create_info.TargetAssetID,
|
|
||||||
}).await.map_err(Error::ApiActionMapfixCreate)?;
|
Ok(())
|
||||||
},
|
}
|
||||||
Err(e)=>{
|
pub async fn create_mapfix(&self,create_info:CreateMapfixRequest)->Result<(),submissions_api::Error>{
|
||||||
self.api.action_operation_failed(submissions_api::types::ActionOperationFailedRequest{
|
let operation_id=create_info.OperationID;
|
||||||
OperationID:create_info.OperationID,
|
|
||||||
StatusMessage:format!("{e}"),
|
let create_result=self.create_mapfix_inner(create_info).await;
|
||||||
}).await.map_err(Error::ApiActionOperationFailed)?;
|
|
||||||
},
|
if let Err(e)=create_result{
|
||||||
|
self.api.action_operation_failed(submissions_api::types::ActionOperationFailedRequest{
|
||||||
|
OperationID:operation_id,
|
||||||
|
StatusMessage:format!("{e}"),
|
||||||
|
}).await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -4,8 +4,8 @@ use crate::create::CreateRequest;
|
|||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum Error{
|
pub enum Error{
|
||||||
|
Create(crate::create::Error),
|
||||||
ApiActionSubmissionCreate(submissions_api::Error),
|
ApiActionSubmissionCreate(submissions_api::Error),
|
||||||
ApiActionOperationFailed(submissions_api::Error),
|
|
||||||
}
|
}
|
||||||
impl std::fmt::Display for Error{
|
impl std::fmt::Display for Error{
|
||||||
fn fmt(&self,f:&mut std::fmt::Formatter<'_>)->std::fmt::Result{
|
fn fmt(&self,f:&mut std::fmt::Formatter<'_>)->std::fmt::Result{
|
||||||
@ -15,30 +15,33 @@ impl std::fmt::Display for Error{
|
|||||||
impl std::error::Error for Error{}
|
impl std::error::Error for Error{}
|
||||||
|
|
||||||
impl crate::message_handler::MessageHandler{
|
impl crate::message_handler::MessageHandler{
|
||||||
pub async fn create_submission(&self,create_info:CreateSubmissionRequest)->Result<(),Error>{
|
async fn create_submission_inner(&self,create_info:CreateSubmissionRequest)->Result<(),Error>{
|
||||||
let create_result=self.create_inner(CreateRequest{
|
let create_request=self.create_inner(CreateRequest{
|
||||||
ModelID:create_info.ModelID,
|
ModelID:create_info.ModelID,
|
||||||
}).await;
|
}).await.map_err(Error::Create)?;
|
||||||
|
// call create on api
|
||||||
|
self.api.create_submission(submissions_api::types::CreateSubmissionRequest{
|
||||||
|
OperationID:create_info.OperationID,
|
||||||
|
AssetOwner:create_request.AssetOwner,
|
||||||
|
DisplayName:create_request.DisplayName.as_str(),
|
||||||
|
Creator:create_request.Creator.as_str(),
|
||||||
|
GameID:create_request.GameID,
|
||||||
|
AssetID:create_info.ModelID,
|
||||||
|
AssetVersion:create_request.AssetVersion,
|
||||||
|
}).await.map_err(Error::ApiActionSubmissionCreate)?;
|
||||||
|
|
||||||
match create_result{
|
Ok(())
|
||||||
Ok(create_request)=>{
|
}
|
||||||
// call create on api
|
pub async fn create_submission(&self,create_info:CreateSubmissionRequest)->Result<(),submissions_api::Error>{
|
||||||
self.api.create_submission(submissions_api::types::CreateSubmissionRequest{
|
let operation_id=create_info.OperationID;
|
||||||
OperationID:create_info.OperationID,
|
|
||||||
AssetOwner:create_request.AssetOwner,
|
let create_result=self.create_submission_inner(create_info).await;
|
||||||
DisplayName:create_request.DisplayName.as_str(),
|
|
||||||
Creator:create_request.Creator.as_str(),
|
if let Err(e)=create_result{
|
||||||
GameID:create_request.GameID,
|
self.api.action_operation_failed(submissions_api::types::ActionOperationFailedRequest{
|
||||||
AssetID:create_info.ModelID,
|
OperationID:operation_id,
|
||||||
AssetVersion:create_request.AssetVersion,
|
StatusMessage:format!("{e}"),
|
||||||
}).await.map_err(Error::ApiActionSubmissionCreate)?;
|
}).await?;
|
||||||
},
|
|
||||||
Err(e)=>{
|
|
||||||
self.api.action_operation_failed(submissions_api::types::ActionOperationFailedRequest{
|
|
||||||
OperationID:create_info.OperationID,
|
|
||||||
StatusMessage:format!("{e}"),
|
|
||||||
}).await.map_err(Error::ApiActionOperationFailed)?;
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -5,8 +5,8 @@ pub enum HandleMessageError{
|
|||||||
DoubleAck(async_nats::Error),
|
DoubleAck(async_nats::Error),
|
||||||
Json(serde_json::Error),
|
Json(serde_json::Error),
|
||||||
UnknownSubject(String),
|
UnknownSubject(String),
|
||||||
CreateMapfix(crate::create_mapfix::Error),
|
CreateMapfix(submissions_api::Error),
|
||||||
CreateSubmission(crate::create_submission::Error),
|
CreateSubmission(submissions_api::Error),
|
||||||
UploadMapfix(crate::upload_mapfix::Error),
|
UploadMapfix(crate::upload_mapfix::Error),
|
||||||
UploadSubmission(crate::upload_submission::Error),
|
UploadSubmission(crate::upload_submission::Error),
|
||||||
ValidateMapfix(crate::validate_mapfix::Error),
|
ValidateMapfix(crate::validate_mapfix::Error),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user