summaryrefslogtreecommitdiffstats
path: root/rust
diff options
context:
space:
mode:
Diffstat (limited to 'rust')
-rw-r--r--rust/fatcat-api/README.md2
-rw-r--r--rust/fatcat-api/api.yaml3
-rw-r--r--rust/fatcat-api/api/swagger.yaml4
-rw-r--r--rust/fatcat-api/src/models.rs5
-rw-r--r--rust/fatcat-openapi2.yml3
-rw-r--r--rust/src/api_server.rs13
6 files changed, 20 insertions, 10 deletions
diff --git a/rust/fatcat-api/README.md b/rust/fatcat-api/README.md
index b67ad8f1..364f7271 100644
--- a/rust/fatcat-api/README.md
+++ b/rust/fatcat-api/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.1.0
-- Build date: 2018-05-26T00:48:55.047Z
+- Build date: 2018-05-26T01:47:28.955Z
This autogenerated project defines an API crate `fatcat` which contains:
* An `Api` trait defining the API in Rust.
diff --git a/rust/fatcat-api/api.yaml b/rust/fatcat-api/api.yaml
index 8dd4177f..cfce24d7 100644
--- a/rust/fatcat-api/api.yaml
+++ b/rust/fatcat-api/api.yaml
@@ -145,7 +145,8 @@ definitions:
type: string
example: "preprint"
date:
- type: date
+ type: string
+ format: date
doi:
type: string
#format: custom
diff --git a/rust/fatcat-api/api/swagger.yaml b/rust/fatcat-api/api/swagger.yaml
index ce85d813..506cb9db 100644
--- a/rust/fatcat-api/api/swagger.yaml
+++ b/rust/fatcat-api/api/swagger.yaml
@@ -1191,6 +1191,9 @@ definitions:
doi:
type: "string"
example: "10.1234/abcde.789"
+ date:
+ type: "string"
+ format: "date"
release_type:
type: "string"
example: "preprint"
@@ -1226,6 +1229,7 @@ definitions:
extra:
type: "object"
example:
+ date: "2000-01-23"
redirect: "f1f046a3-45c9-4b99-adce-000000000002"
work_id: "f1f046a3-45c9-4b99-adce-000000000001"
issue: "12"
diff --git a/rust/fatcat-api/src/models.rs b/rust/fatcat-api/src/models.rs
index 8d3abe7d..e3ce33c3 100644
--- a/rust/fatcat-api/src/models.rs
+++ b/rust/fatcat-api/src/models.rs
@@ -442,6 +442,10 @@ pub struct ReleaseEntity {
#[serde(skip_serializing_if = "Option::is_none")]
pub doi: Option<String>,
+ #[serde(rename = "date")]
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub date: Option<chrono::DateTime<chrono::Utc>>,
+
#[serde(rename = "release_type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub release_type: Option<String>,
@@ -491,6 +495,7 @@ impl ReleaseEntity {
pages: None,
volume: None,
doi: None,
+ date: None,
release_type: None,
container_id: None,
work_id: work_id,
diff --git a/rust/fatcat-openapi2.yml b/rust/fatcat-openapi2.yml
index 8dd4177f..cfce24d7 100644
--- a/rust/fatcat-openapi2.yml
+++ b/rust/fatcat-openapi2.yml
@@ -145,7 +145,8 @@ definitions:
type: string
example: "preprint"
date:
- type: date
+ type: string
+ format: date
doi:
type: string
#format: custom
diff --git a/rust/src/api_server.rs b/rust/src/api_server.rs
index 6fbce00b..b29dae69 100644
--- a/rust/src/api_server.rs
+++ b/rust/src/api_server.rs
@@ -342,7 +342,7 @@ impl Server {
let entity = ReleaseEntity {
title: rev.title,
release_type: rev.release_type,
- // XXX: date: rev.date,
+ date: rev.date.map(|v| chrono::DateTime::from_utc(v.and_hms(0, 0, 0), chrono::Utc)),
doi: rev.doi,
volume: rev.volume,
pages: rev.pages,
@@ -405,7 +405,7 @@ impl Server {
let entity = ReleaseEntity {
title: rev.title,
release_type: rev.release_type,
- // XXX: date: rev.date,
+ date: rev.date.map(|v| chrono::DateTime::from_utc(v.and_hms(0, 0, 0), chrono::Utc)),
doi: rev.doi,
volume: rev.volume,
pages: rev.pages,
@@ -740,20 +740,19 @@ impl Api for Server {
None => None,
};
- println!("{:?}", container_id);
let edit: ReleaseEditRow = diesel::sql_query(
- "WITH rev AS ( INSERT INTO release_rev (title, release_type, doi, volume, pages, issue, work_ident_id, container_ident_id)
- VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
+ "WITH rev AS ( INSERT INTO release_rev (title, release_type, date, doi, volume, pages, issue, work_ident_id, container_ident_id)
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
RETURNING id ),
ident AS ( INSERT INTO release_ident (rev_id)
VALUES ((SELECT rev.id FROM rev))
RETURNING id )
INSERT INTO release_edit (editgroup_id, ident_id, rev_id) VALUES
- ($9, (SELECT ident.id FROM ident), (SELECT rev.id FROM rev))
+ ($10, (SELECT ident.id FROM ident), (SELECT rev.id FROM rev))
RETURNING *",
).bind::<diesel::sql_types::Text, _>(body.title)
.bind::<diesel::sql_types::Nullable<diesel::sql_types::Text>, _>(body.release_type)
- //XXX .bind::<diesel::sql_types::Nullable<diesel::sql_types::Text>, _>(body.date)
+ .bind::<diesel::sql_types::Nullable<diesel::sql_types::Date>, _>(body.date.map(|v| v.naive_utc().date()))
.bind::<diesel::sql_types::Nullable<diesel::sql_types::Text>, _>(body.doi)
.bind::<diesel::sql_types::Nullable<diesel::sql_types::Text>, _>(body.volume)
.bind::<diesel::sql_types::Nullable<diesel::sql_types::Text>, _>(body.pages)