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) }