diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2019-05-14 18:43:07 -0700 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2019-05-14 18:43:07 -0700 |
commit | 8a130e1000a2b49cbfb571ae0b74f0ec8577e9fe (patch) | |
tree | 197618e5b1f03bb292d5b32321d52932f72306c4 /rust | |
parent | 534cd7b3fa0a4cb0c19da05f740942b93e8b3659 (diff) | |
download | fatcat-8a130e1000a2b49cbfb571ae0b74f0ec8577e9fe.tar.gz fatcat-8a130e1000a2b49cbfb571ae0b74f0ec8577e9fe.zip |
codegen and rust impl created timestamp
Diffstat (limited to 'rust')
-rw-r--r-- | rust/fatcat-api-spec/README.md | 2 | ||||
-rw-r--r-- | rust/fatcat-api-spec/api.yaml | 3 | ||||
-rw-r--r-- | rust/fatcat-api-spec/api/swagger.yaml | 7 | ||||
-rw-r--r-- | rust/fatcat-api-spec/src/models.rs | 5 | ||||
-rw-r--r-- | rust/src/database_models.rs | 7 | ||||
-rw-r--r-- | rust/src/endpoint_handlers.rs | 4 | ||||
-rw-r--r-- | rust/src/entity_crud.rs | 17 |
7 files changed, 34 insertions, 11 deletions
diff --git a/rust/fatcat-api-spec/README.md b/rust/fatcat-api-spec/README.md index 93ab4016..b34efc73 100644 --- a/rust/fatcat-api-spec/README.md +++ b/rust/fatcat-api-spec/README.md @@ -13,7 +13,7 @@ To see how to make this your own, look here: [README](https://github.com/swagger-api/swagger-codegen/blob/master/README.md) - API version: 0.2.0 -- Build date: 2019-05-14T22:45:05.973Z +- Build date: 2019-05-15T01:33:17.197Z This autogenerated project defines an API crate `fatcat` which contains: * An `Api` trait defining the API in Rust. diff --git a/rust/fatcat-api-spec/api.yaml b/rust/fatcat-api-spec/api.yaml index e739eae1..92253e9d 100644 --- a/rust/fatcat-api-spec/api.yaml +++ b/rust/fatcat-api-spec/api.yaml @@ -530,6 +530,9 @@ definitions: type: integer example: 1048576 format: int64 + created: + type: string + format: date-time submitted: type: string format: date-time diff --git a/rust/fatcat-api-spec/api/swagger.yaml b/rust/fatcat-api-spec/api/swagger.yaml index 0b3abddd..02cdcf36 100644 --- a/rust/fatcat-api-spec/api/swagger.yaml +++ b/rust/fatcat-api-spec/api/swagger.yaml @@ -8345,6 +8345,7 @@ definitions: username: "zerocool93" changelog_index: 1048576 submitted: "2000-01-23T04:56:07.000+00:00" + created: "2000-01-23T04:56:07.000+00:00" extra: "{}" edits: works: @@ -8498,6 +8499,7 @@ definitions: username: "zerocool93" changelog_index: 1048576 submitted: "2000-01-23T04:56:07.000+00:00" + created: "2000-01-23T04:56:07.000+00:00" extra: "{}" edits: works: @@ -8748,6 +8750,9 @@ definitions: type: "integer" format: "int64" example: 1048576 + created: + type: "string" + format: "date-time" submitted: type: "string" format: "date-time" @@ -8770,6 +8775,7 @@ definitions: username: "zerocool93" changelog_index: 1048576 submitted: "2000-01-23T04:56:07.000+00:00" + created: "2000-01-23T04:56:07.000+00:00" extra: "{}" edits: works: @@ -8981,6 +8987,7 @@ definitions: username: "zerocool93" changelog_index: 1048576 submitted: "2000-01-23T04:56:07.000+00:00" + created: "2000-01-23T04:56:07.000+00:00" extra: "{}" edits: works: diff --git a/rust/fatcat-api-spec/src/models.rs b/rust/fatcat-api-spec/src/models.rs index ce559ccc..0ceed261 100644 --- a/rust/fatcat-api-spec/src/models.rs +++ b/rust/fatcat-api-spec/src/models.rs @@ -274,6 +274,10 @@ pub struct Editgroup { #[serde(skip_serializing_if = "Option::is_none")] pub changelog_index: Option<i64>, + #[serde(rename = "created")] + #[serde(skip_serializing_if = "Option::is_none")] + pub created: Option<chrono::DateTime<chrono::Utc>>, + #[serde(rename = "submitted")] #[serde(skip_serializing_if = "Option::is_none")] pub submitted: Option<chrono::DateTime<chrono::Utc>>, @@ -302,6 +306,7 @@ impl Editgroup { editor_id: None, editor: None, changelog_index: None, + created: None, submitted: None, description: None, extra: None, diff --git a/rust/src/database_models.rs b/rust/src/database_models.rs index 34ce1de6..79b0137b 100644 --- a/rust/src/database_models.rs +++ b/rust/src/database_models.rs @@ -662,12 +662,17 @@ pub struct EditgroupRow { impl EditgroupRow { /// Returns an Editgroup API model *without* the entity edits actually populated. Useful for, /// eg, entity history queries (where we already have the entity edit we want) - pub fn into_model_partial(self, changelog_index: Option<i64>, editor: Option<Editor>) -> Editgroup { + pub fn into_model_partial( + self, + changelog_index: Option<i64>, + editor: Option<Editor>, + ) -> Editgroup { Editgroup { editgroup_id: Some(uuid2fcid(&self.id)), editor_id: Some(uuid2fcid(&self.editor_id)), editor: editor, changelog_index: changelog_index, + created: Some(chrono::DateTime::from_utc(self.created, chrono::Utc)), submitted: self .submitted .map(|v| chrono::DateTime::from_utc(v, chrono::Utc)), diff --git a/rust/src/endpoint_handlers.rs b/rust/src/endpoint_handlers.rs index ba8505e1..5c22e21d 100644 --- a/rust/src/endpoint_handlers.rs +++ b/rust/src/endpoint_handlers.rs @@ -558,7 +558,9 @@ impl Server { .into_iter() .map(|(eg_row, cl_row, editor_row)| ChangelogEntry { index: cl_row.id, - editgroup: Some(eg_row.into_model_partial(Some(cl_row.id), Some(editor_row.into_model()))), + editgroup: Some( + eg_row.into_model_partial(Some(cl_row.id), Some(editor_row.into_model())), + ), editgroup_id: uuid2fcid(&cl_row.editgroup_id), timestamp: chrono::DateTime::from_utc(cl_row.timestamp, chrono::Utc), }) diff --git a/rust/src/entity_crud.rs b/rust/src/entity_crud.rs index 269bfdf6..b72ccd37 100644 --- a/rust/src/entity_crud.rs +++ b/rust/src/entity_crud.rs @@ -538,14 +538,15 @@ macro_rules! generic_db_get_history { ) -> Result<Vec<EntityHistoryEntry>> { let limit = limit.unwrap_or(50); // TODO: make a static - let rows: Vec<(EditgroupRow, ChangelogRow, Self::EditRow, EditorRow)> = editgroup::table - .inner_join(changelog::table) - .inner_join($edit_table::table) - .inner_join(editor::table) - .filter($edit_table::ident_id.eq(ident.to_uuid())) - .order(changelog::id.desc()) - .limit(limit) - .get_results(conn)?; + let rows: Vec<(EditgroupRow, ChangelogRow, Self::EditRow, EditorRow)> = + editgroup::table + .inner_join(changelog::table) + .inner_join($edit_table::table) + .inner_join(editor::table) + .filter($edit_table::ident_id.eq(ident.to_uuid())) + .order(changelog::id.desc()) + .limit(limit) + .get_results(conn)?; let history: Result<Vec<EntityHistoryEntry>> = rows .into_iter() |