From f3c9fa0a311dc5413c4964d6183004bff6a5783a Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 28 May 2018 16:01:59 -0700 Subject: refactor editing handlers (fixes 400 errors) --- rust/src/api_server.rs | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) (limited to 'rust/src') diff --git a/rust/src/api_server.rs b/rust/src/api_server.rs index 33195c02..0706fc22 100644 --- a/rust/src/api_server.rs +++ b/rust/src/api_server.rs @@ -711,7 +711,7 @@ impl Server { edit.to_model() } - fn editgroup_handler(&self, id: i64) -> Result> { + fn get_editgroup_handler(&self, id: i64) -> Result { let conn = self.db_pool.get().expect("db_pool error"); let row: EditgroupRow = editgroup::table.find(id as i64).first(&conn)?; @@ -766,10 +766,10 @@ impl Server { edits: Some(edits), extra: row.extra_json, }; - Ok(Some(eg)) + Ok(eg) } - fn get_editor_handler(&self, username: String) -> Result> { + fn get_editor_handler(&self, username: String) -> Result { let conn = self.db_pool.get().expect("db_pool error"); let row: EditorRow = editor::table @@ -779,10 +779,10 @@ impl Server { let ed = Editor { username: row.username, }; - Ok(Some(ed)) + Ok(ed) } - fn editor_changelog_get_handler(&self, username: String) -> Result> { + fn editor_changelog_get_handler(&self, username: String) -> Result { let conn = self.db_pool.get().expect("db_pool error"); // TODO: single query @@ -802,7 +802,7 @@ impl Server { timestamp: chrono::DateTime::from_utc(row.timestamp, chrono::Utc), }) .collect(); - Ok(Some(entries)) + Ok(entries) } } @@ -917,15 +917,15 @@ impl Api for Server { id: i64, _context: &Context, ) -> Box + Send> { - let ret = match self.editgroup_handler(id) { - Ok(Some(entity)) => + let ret = match self.get_editgroup_handler(id) { + Ok(entity) => GetEditgroupResponse::FoundEntity(entity), - Ok(None) => + Err(Error(ErrorKind::Diesel(::diesel::result::Error::NotFound), _)) => GetEditgroupResponse::NotFound( - ErrorResponse { message: "No such entity".to_string() }), + ErrorResponse { message: format!("No such editgroup: {}", id) }), Err(e) => // TODO: dig in to error type here - GetEditgroupResponse::BadRequest( + GetEditgroupResponse::GenericError( ErrorResponse { message: e.to_string() }), }; Box::new(futures::done(Ok(ret))) @@ -964,12 +964,12 @@ impl Api for Server { username: String, _context: &Context, ) -> Box + Send> { - let ret = match self.editor_changelog_get_handler(username) { - Ok(Some(entries)) => + let ret = match self.editor_changelog_get_handler(username.clone()) { + Ok(entries) => GetEditorChangelogResponse::FoundMergedChanges(entries), - Ok(None) => + Err(Error(ErrorKind::Diesel(::diesel::result::Error::NotFound), _)) => GetEditorChangelogResponse::NotFound( - ErrorResponse { message: "No such entity".to_string() }), + ErrorResponse { message: format!("No such editor: {}", username.clone()) }), Err(e) => // TODO: dig in to error type here GetEditorChangelogResponse::GenericError( @@ -983,11 +983,12 @@ impl Api for Server { username: String, _context: &Context, ) -> Box + Send> { - let ret = match self.get_editor_handler(username) { - Ok(Some(entity)) => + let ret = match self.get_editor_handler(username.clone()) { + Ok(entity) => GetEditorResponse::FoundEditor(entity), - Ok(None) => - GetEditorResponse::NotFound(ErrorResponse { message: "No such entity".to_string() }), + Err(Error(ErrorKind::Diesel(::diesel::result::Error::NotFound), _)) => + GetEditorResponse::NotFound( + ErrorResponse { message: format!("No such editor: {}", username.clone()) }), Err(e) => // TODO: dig in to error type here GetEditorResponse::GenericError(ErrorResponse { message: e.to_string() }), -- cgit v1.2.3