diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2019-01-11 14:52:44 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2019-01-11 14:52:44 -0800 |
commit | 54e34ddd56b705cba239f88a9239c603d3ecd20e (patch) | |
tree | 5007cbc2d315d04b5788eb6cec0b7537e8baa51b /rust/src/endpoint_handlers.rs | |
parent | cd5cf1b9f7a50cd3c2f2a42b4a0b3743a5c31d7e (diff) | |
download | fatcat-54e34ddd56b705cba239f88a9239c603d3ecd20e.tar.gz fatcat-54e34ddd56b705cba239f88a9239c603d3ecd20e.zip |
yet more edit lifecycle progress
Diffstat (limited to 'rust/src/endpoint_handlers.rs')
-rw-r--r-- | rust/src/endpoint_handlers.rs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/rust/src/endpoint_handlers.rs b/rust/src/endpoint_handlers.rs index 4b3108af..dcbb3d90 100644 --- a/rust/src/endpoint_handlers.rs +++ b/rust/src/endpoint_handlers.rs @@ -8,8 +8,8 @@ use crate::database_models::*; use crate::database_schema::*; use crate::editing::*; +use crate::editing_crud::{EditgroupCrud, EditorCrud}; use crate::entity_crud::{EntityCrud, ExpandFlags, HideFlags}; -use crate::editing_crud::{EditorCrud, EditgroupCrud}; use crate::errors::*; use crate::identifiers::*; use crate::server::*; @@ -472,7 +472,7 @@ impl Server { ) -> Result<Vec<ChangelogEntry>> { // XXX: delete me? // TODO: single query - let editor: EditorRow = editor::table.find(editor_id.to_uuid()).first(conn)?; + let editor: EditorRow = Editor::db_get(&conn, editor_id)?; let changes: Vec<(ChangelogRow, EditgroupRow)> = changelog::table .inner_join(editgroup::table) .filter(editgroup::editor_id.eq(editor.id)) @@ -545,17 +545,24 @@ impl Server { Some((editor, _)) => (editor.clone(), false), None => { let username = format!("{}-{}", params.preferred_username, params.provider); - let editor = create_editor(conn, username, false, false)?; + let editor = Editor { + editor_id: None, + username: username, + is_admin: Some(false), + is_bot: Some(false), + is_active: Some(true), + }; + let row = editor.db_create(conn)?; // create an auth login row so the user can log back in diesel::insert_into(auth_oidc::table) .values(( - auth_oidc::editor_id.eq(editor.id), + auth_oidc::editor_id.eq(row.id), auth_oidc::provider.eq(params.provider), auth_oidc::oidc_iss.eq(params.iss), auth_oidc::oidc_sub.eq(params.sub), )) .execute(conn)?; - (editor, true) + (row, true) } }; |