refactor: improve error mapping

This commit is contained in:
Matouš Volf 2024-08-18 22:04:23 +02:00
parent f052953246
commit 85bcbad41c

View File

@ -22,17 +22,18 @@ pub(crate) async fn create_project(
.validate() .validate()
.map_err::<ErrorVec<ProjectCreateError>, _>(|errors| errors.into())?; .map_err::<ErrorVec<ProjectCreateError>, _>(|errors| errors.into())?;
let mut connection = let mut connection = establish_database_connection()
establish_database_connection().or::<ErrorVec<ProjectCreateError>>(Err(vec![ .map_err::<ErrorVec<ProjectCreateError>, _>(
ProjectCreateError::Error(Error::ServerInternal), |_| vec![ProjectCreateError::Error(Error::ServerInternal), ].into()
] )?;
.into()))?;
let new_project = diesel::insert_into(projects::table) let new_project = diesel::insert_into(projects::table)
.values(&new_project) .values(&new_project)
.returning(Project::as_returning()) .returning(Project::as_returning())
.get_result(&mut connection) .get_result(&mut connection)
.expect("error saving a new project"); .map_err::<ErrorVec<ProjectCreateError>, _>(
|_| vec![ProjectCreateError::Error(Error::ServerInternal), ].into()
)?;
Ok(new_project) Ok(new_project)
} }