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()
.map_err::<ErrorVec<ProjectCreateError>, _>(|errors| errors.into())?;
let mut connection =
establish_database_connection().or::<ErrorVec<ProjectCreateError>>(Err(vec![
ProjectCreateError::Error(Error::ServerInternal),
]
.into()))?;
let mut connection = establish_database_connection()
.map_err::<ErrorVec<ProjectCreateError>, _>(
|_| vec![ProjectCreateError::Error(Error::ServerInternal), ].into()
)?;
let new_project = diesel::insert_into(projects::table)
.values(&new_project)
.returning(Project::as_returning())
.get_result(&mut connection)
.expect("error saving a new project");
.map_err::<ErrorVec<ProjectCreateError>, _>(
|_| vec![ProjectCreateError::Error(Error::ServerInternal), ].into()
)?;
Ok(new_project)
}