diff options
Diffstat (limited to 'rust/src')
-rw-r--r-- | rust/src/api_server.rs | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/rust/src/api_server.rs b/rust/src/api_server.rs index 52e9501f..2a744525 100644 --- a/rust/src/api_server.rs +++ b/rust/src/api_server.rs @@ -626,14 +626,27 @@ impl Api for Server { fn editgroup_post( &self, + body: models::Editgroup, context: &Context, ) -> Box<Future<Item = EditgroupPostResponse, Error = ApiError> + Send> { - let context = context.clone(); - println!( - "editgroup_post() - X-Span-ID: {:?}", - context.x_span_id.unwrap_or(String::from("<none>")).clone() - ); - Box::new(futures::failed("Generic failure".into())) + let conn = self.db_pool.get().expect("db_pool error"); + + let row: EditgroupRow = insert_into(editgroup::table) + .values(( + editgroup::editor_id.eq(body.editor_id as i64), + editgroup::description.eq(body.description) + )) + .get_result(&conn) + .expect("error creating edit group"); + + let new_eg = Editgroup { + id: Some(row.id as isize), + editor_id: row.editor_id as isize, + description: row.description, + }; + Box::new(futures::done(Ok(EditgroupPostResponse::SuccessfullyCreated( + new_eg, + )))) } fn editor_username_changelog_get( |