From 85bcbad41c4b98b53a5a6c2f6051ec810eac540f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matou=C5=A1=20Volf?= <66163112+matous-volf@users.noreply.github.com> Date: Sun, 18 Aug 2024 22:04:23 +0200 Subject: [PATCH] refactor: improve error mapping --- src/server/projects.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/server/projects.rs b/src/server/projects.rs index 4b2181e..cbfab09 100644 --- a/src/server/projects.rs +++ b/src/server/projects.rs @@ -22,17 +22,18 @@ pub(crate) async fn create_project( .validate() .map_err::, _>(|errors| errors.into())?; - let mut connection = - establish_database_connection().or::>(Err(vec![ - ProjectCreateError::Error(Error::ServerInternal), - ] - .into()))?; + let mut connection = establish_database_connection() + .map_err::, _>( + |_| 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::, _>( + |_| vec![ProjectCreateError::Error(Error::ServerInternal), ].into() + )?; Ok(new_project) }