aboutsummaryrefslogtreecommitdiffstats
path: root/rust
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2018-05-16 22:15:14 -0700
committerBryan Newbold <bnewbold@robocracy.org>2018-05-16 22:15:14 -0700
commitf3b2432664b28bd979d1600c2200e3fe41c8e380 (patch)
treeab7912f972deddfb35a1686b8a1dbddd03d78d7e /rust
parent2c9edb5c394d9fc75cf3be49a157763506e1265c (diff)
downloadfatcat-f3b2432664b28bd979d1600c2200e3fe41c8e380.tar.gz
fatcat-f3b2432664b28bd979d1600c2200e3fe41c8e380.zip
api tweaks
Diffstat (limited to 'rust')
-rw-r--r--rust/fatcat-api/README.md2
-rw-r--r--rust/fatcat-api/api.yaml38
-rw-r--r--rust/fatcat-api/api/swagger.yaml48
-rw-r--r--rust/fatcat-api/src/client.rs11
-rw-r--r--rust/fatcat-api/src/lib.rs8
-rw-r--r--rust/fatcat-api/src/mimetypes.rs6
-rw-r--r--rust/fatcat-api/src/models.rs89
-rw-r--r--rust/fatcat-api/src/server.rs14
-rw-r--r--rust/fatcat-openapi2.yml38
9 files changed, 189 insertions, 65 deletions
diff --git a/rust/fatcat-api/README.md b/rust/fatcat-api/README.md
index 2d14b35f..f363f381 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-17T03:54:00.627Z
+- Build date: 2018-05-17T05:00:05.471Z
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 b5993244..9ec1f1fb 100644
--- a/rust/fatcat-api/api.yaml
+++ b/rust/fatcat-api/api.yaml
@@ -143,19 +143,25 @@ definitions:
type: integer
editor_id:
type: integer
- # TODO: work_edits array, etc. ["edits"]["work"] or ["work_edits"]?
- changelogentry:
- type: object
- required:
- - index
- properties:
- index:
- type: integer
- editgroup_id:
- type: integer
- timestamp:
+ description:
type: string
- format: date-time
+ # TODO: work_edits array, etc. ["edits"]["work"] or ["work_edits"]?
+ changelogentries:
+ type: array
+ items:
+ type: object
+ required:
+ - index
+ - editgroup_id
+ - timestamp
+ properties:
+ index:
+ type: integer
+ editgroup_id:
+ type: integer
+ timestamp:
+ type: string
+ format: date-time
x-entity-responses: &ENTITYRESPONSES
400:
@@ -390,7 +396,7 @@ paths:
200:
description: Found Merged Changes
schema:
- $ref: "#/definitions/changelogentry"
+ $ref: "#/definitions/changelogentries"
404:
description: Not Found
schema:
@@ -423,9 +429,13 @@ paths:
get:
responses:
200:
- description: Found Editgroup
+ description: Found Entity
schema:
$ref: "#/definitions/editgroup"
+ 400:
+ description: Bad Request
+ schema:
+ $ref: "#/definitions/error_response"
404:
description: Not Found
schema:
diff --git a/rust/fatcat-api/api/swagger.yaml b/rust/fatcat-api/api/swagger.yaml
index 8dddf317..009d0e08 100644
--- a/rust/fatcat-api/api/swagger.yaml
+++ b/rust/fatcat-api/api/swagger.yaml
@@ -26,7 +26,7 @@ paths:
refName: "creator_entity"
formatString: "{:?}"
example: "???"
- model_key: "changelogentry"
+ model_key: "changelogentries_inner"
uppercase_operation_id: "CREATOR_POST"
consumesJson: true
responses:
@@ -186,7 +186,7 @@ paths:
refName: "container_entity"
formatString: "{:?}"
example: "???"
- model_key: "changelogentry"
+ model_key: "changelogentries_inner"
uppercase_operation_id: "CONTAINER_POST"
consumesJson: true
responses:
@@ -346,7 +346,7 @@ paths:
refName: "file_entity"
formatString: "{:?}"
example: "???"
- model_key: "changelogentry"
+ model_key: "changelogentries_inner"
uppercase_operation_id: "FILE_POST"
consumesJson: true
responses:
@@ -506,7 +506,7 @@ paths:
refName: "release_entity"
formatString: "{:?}"
example: "???"
- model_key: "changelogentry"
+ model_key: "changelogentries_inner"
uppercase_operation_id: "RELEASE_POST"
consumesJson: true
responses:
@@ -666,7 +666,7 @@ paths:
refName: "work_entity"
formatString: "{:?}"
example: "???"
- model_key: "changelogentry"
+ model_key: "changelogentries_inner"
uppercase_operation_id: "WORK_POST"
consumesJson: true
responses:
@@ -818,11 +818,11 @@ paths:
200:
description: "Found Merged Changes"
schema:
- $ref: "#/definitions/changelogentry"
+ $ref: "#/definitions/changelogentries"
x-responseId: "FoundMergedChanges"
x-uppercaseResponseId: "FOUND_MERGED_CHANGES"
uppercase_operation_id: "EDITOR_USERNAME_CHANGELOG_GET"
- uppercase_data_type: "CHANGELOGENTRY"
+ uppercase_data_type: "CHANGELOGENTRIES"
producesJson: true
404:
description: "Not Found"
@@ -894,14 +894,23 @@ paths:
example: "56"
responses:
200:
- description: "Found Editgroup"
+ description: "Found Entity"
schema:
$ref: "#/definitions/editgroup"
- x-responseId: "FoundEditgroup"
- x-uppercaseResponseId: "FOUND_EDITGROUP"
+ x-responseId: "FoundEntity"
+ x-uppercaseResponseId: "FOUND_ENTITY"
uppercase_operation_id: "EDITGROUP_ID_GET"
uppercase_data_type: "EDITGROUP"
producesJson: true
+ 400:
+ description: "Bad Request"
+ schema:
+ $ref: "#/definitions/error_response"
+ x-responseId: "BadRequest"
+ x-uppercaseResponseId: "BAD_REQUEST"
+ uppercase_operation_id: "EDITGROUP_ID_GET"
+ uppercase_data_type: "ERRORRESPONSE"
+ producesJson: true
404:
description: "Not Found"
schema:
@@ -1214,14 +1223,23 @@ definitions:
type: "integer"
editor_id:
type: "integer"
+ description:
+ type: "string"
example:
+ description: "description"
editor_id: 6
id: 0
upperCaseName: "EDITGROUP"
- changelogentry:
- type: "object"
+ changelogentries:
+ type: "array"
+ items:
+ $ref: "#/definitions/changelogentries_inner"
+ upperCaseName: "CHANGELOGENTRIES"
+ changelogentries_inner:
required:
+ - "editgroup_id"
- "index"
+ - "timestamp"
properties:
index:
type: "integer"
@@ -1230,11 +1248,7 @@ definitions:
timestamp:
type: "string"
format: "date-time"
- example:
- index: 0
- editgroup_id: 6
- timestamp: "2000-01-23T04:56:07.000+00:00"
- upperCaseName: "CHANGELOGENTRY"
+ upperCaseName: "CHANGELOGENTRIES_INNER"
x-entity-props:
state:
type: "string"
diff --git a/rust/fatcat-api/src/client.rs b/rust/fatcat-api/src/client.rs
index 09b43e4b..0c1345de 100644
--- a/rust/fatcat-api/src/client.rs
+++ b/rust/fatcat-api/src/client.rs
@@ -616,7 +616,14 @@ impl Api for Client {
response.read_to_string(&mut buf).map_err(|e| ApiError(format!("Response was not valid UTF8: {}", e)))?;
let body = serde_json::from_str::<models::Editgroup>(&buf)?;
- Ok(EditgroupIdGetResponse::FoundEditgroup(body))
+ Ok(EditgroupIdGetResponse::FoundEntity(body))
+ }
+ 400 => {
+ let mut buf = String::new();
+ response.read_to_string(&mut buf).map_err(|e| ApiError(format!("Response was not valid UTF8: {}", e)))?;
+ let body = serde_json::from_str::<models::ErrorResponse>(&buf)?;
+
+ Ok(EditgroupIdGetResponse::BadRequest(body))
}
404 => {
let mut buf = String::new();
@@ -724,7 +731,7 @@ impl Api for Client {
200 => {
let mut buf = String::new();
response.read_to_string(&mut buf).map_err(|e| ApiError(format!("Response was not valid UTF8: {}", e)))?;
- let body = serde_json::from_str::<models::Changelogentry>(&buf)?;
+ let body = serde_json::from_str::<models::Changelogentries>(&buf)?;
Ok(EditorUsernameChangelogGetResponse::FoundMergedChanges(body))
}
diff --git a/rust/fatcat-api/src/lib.rs b/rust/fatcat-api/src/lib.rs
index 3696a1e2..716781cb 100644
--- a/rust/fatcat-api/src/lib.rs
+++ b/rust/fatcat-api/src/lib.rs
@@ -118,8 +118,10 @@ pub enum EditgroupIdAcceptPostResponse {
#[derive(Debug, PartialEq)]
pub enum EditgroupIdGetResponse {
- /// Found Editgroup
- FoundEditgroup(models::Editgroup),
+ /// Found Entity
+ FoundEntity(models::Editgroup),
+ /// Bad Request
+ BadRequest(models::ErrorResponse),
/// Not Found
NotFound(models::ErrorResponse),
/// Generic Error
@@ -139,7 +141,7 @@ pub enum EditgroupPostResponse {
#[derive(Debug, PartialEq)]
pub enum EditorUsernameChangelogGetResponse {
/// Found Merged Changes
- FoundMergedChanges(models::Changelogentry),
+ FoundMergedChanges(models::Changelogentries),
/// Not Found
NotFound(models::ErrorResponse),
/// Generic Error
diff --git a/rust/fatcat-api/src/mimetypes.rs b/rust/fatcat-api/src/mimetypes.rs
index 9d3d91a8..6b89f7bb 100644
--- a/rust/fatcat-api/src/mimetypes.rs
+++ b/rust/fatcat-api/src/mimetypes.rs
@@ -118,7 +118,11 @@ pub mod responses {
}
/// Create Mime objects for the response content types for EditgroupIdGet
lazy_static! {
- pub static ref EDITGROUP_ID_GET_FOUND_EDITGROUP: Mime = mime!(Application / Json);
+ pub static ref EDITGROUP_ID_GET_FOUND_ENTITY: Mime = mime!(Application / Json);
+ }
+ /// Create Mime objects for the response content types for EditgroupIdGet
+ lazy_static! {
+ pub static ref EDITGROUP_ID_GET_BAD_REQUEST: Mime = mime!(Application / Json);
}
/// Create Mime objects for the response content types for EditgroupIdGet
lazy_static! {
diff --git a/rust/fatcat-api/src/models.rs b/rust/fatcat-api/src/models.rs
index 82fe7bad..0186f0a0 100644
--- a/rust/fatcat-api/src/models.rs
+++ b/rust/fatcat-api/src/models.rs
@@ -9,25 +9,84 @@ use std::collections::HashMap;
use swagger;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
-pub struct Changelogentry {
+pub struct Changelogentries(Vec<ChangelogentriesInner>);
+
+impl ::std::convert::From<Vec<ChangelogentriesInner>> for Changelogentries {
+ fn from(x: Vec<ChangelogentriesInner>) -> Self {
+ Changelogentries(x)
+ }
+}
+
+impl ::std::convert::From<Changelogentries> for Vec<ChangelogentriesInner> {
+ fn from(x: Changelogentries) -> Self {
+ x.0
+ }
+}
+
+impl ::std::iter::FromIterator<ChangelogentriesInner> for Changelogentries {
+ fn from_iter<U: IntoIterator<Item = ChangelogentriesInner>>(u: U) -> Self {
+ Changelogentries(Vec::<ChangelogentriesInner>::from_iter(u))
+ }
+}
+
+impl ::std::iter::IntoIterator for Changelogentries {
+ type Item = ChangelogentriesInner;
+ type IntoIter = ::std::vec::IntoIter<ChangelogentriesInner>;
+
+ fn into_iter(self) -> Self::IntoIter {
+ self.0.into_iter()
+ }
+}
+
+impl<'a> ::std::iter::IntoIterator for &'a Changelogentries {
+ type Item = &'a ChangelogentriesInner;
+ type IntoIter = ::std::slice::Iter<'a, ChangelogentriesInner>;
+
+ fn into_iter(self) -> Self::IntoIter {
+ (&self.0).into_iter()
+ }
+}
+
+impl<'a> ::std::iter::IntoIterator for &'a mut Changelogentries {
+ type Item = &'a mut ChangelogentriesInner;
+ type IntoIter = ::std::slice::IterMut<'a, ChangelogentriesInner>;
+
+ fn into_iter(self) -> Self::IntoIter {
+ (&mut self.0).into_iter()
+ }
+}
+
+impl ::std::ops::Deref for Changelogentries {
+ type Target = Vec<ChangelogentriesInner>;
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+
+impl ::std::ops::DerefMut for Changelogentries {
+ fn deref_mut(&mut self) -> &mut Self::Target {
+ &mut self.0
+ }
+}
+
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
+pub struct ChangelogentriesInner {
#[serde(rename = "index")]
pub index: isize,
#[serde(rename = "editgroup_id")]
- #[serde(skip_serializing_if = "Option::is_none")]
- pub editgroup_id: Option<isize>,
+ pub editgroup_id: isize,
#[serde(rename = "timestamp")]
- #[serde(skip_serializing_if = "Option::is_none")]
- pub timestamp: Option<chrono::DateTime<chrono::Utc>>,
+ pub timestamp: chrono::DateTime<chrono::Utc>,
}
-impl Changelogentry {
- pub fn new(index: isize) -> Changelogentry {
- Changelogentry {
+impl ChangelogentriesInner {
+ pub fn new(index: isize, editgroup_id: isize, timestamp: chrono::DateTime<chrono::Utc>) -> ChangelogentriesInner {
+ ChangelogentriesInner {
index: index,
- editgroup_id: None,
- timestamp: None,
+ editgroup_id: editgroup_id,
+ timestamp: timestamp,
}
}
}
@@ -135,11 +194,19 @@ pub struct Editgroup {
#[serde(rename = "editor_id")]
pub editor_id: isize,
+
+ #[serde(rename = "description")]
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub description: Option<String>,
}
impl Editgroup {
pub fn new(editor_id: isize) -> Editgroup {
- Editgroup { id: None, editor_id: editor_id }
+ Editgroup {
+ id: None,
+ editor_id: editor_id,
+ description: None,
+ }
}
}
diff --git a/rust/fatcat-api/src/server.rs b/rust/fatcat-api/src/server.rs
index 090c45e3..902ebd6d 100644
--- a/rust/fatcat-api/src/server.rs
+++ b/rust/fatcat-api/src/server.rs
@@ -759,11 +759,21 @@ where
match api.editgroup_id_get(param_id, context).wait() {
Ok(rsp) => match rsp {
- EditgroupIdGetResponse::FoundEditgroup(body) => {
+ EditgroupIdGetResponse::FoundEntity(body) => {
let body_string = serde_json::to_string(&body).expect("impossible to fail to serialize");
let mut response = Response::with((status::Status::from_u16(200), body_string));
- response.headers.set(ContentType(mimetypes::responses::EDITGROUP_ID_GET_FOUND_EDITGROUP.clone()));
+ response.headers.set(ContentType(mimetypes::responses::EDITGROUP_ID_GET_FOUND_ENTITY.clone()));
+
+ context.x_span_id.as_ref().map(|header| response.headers.set(XSpanId(header.clone())));
+
+ Ok(response)
+ }
+ EditgroupIdGetResponse::BadRequest(body) => {
+ let body_string = serde_json::to_string(&body).expect("impossible to fail to serialize");
+
+ let mut response = Response::with((status::Status::from_u16(400), body_string));
+ response.headers.set(ContentType(mimetypes::responses::EDITGROUP_ID_GET_BAD_REQUEST.clone()));
context.x_span_id.as_ref().map(|header| response.headers.set(XSpanId(header.clone())));
diff --git a/rust/fatcat-openapi2.yml b/rust/fatcat-openapi2.yml
index b5993244..9ec1f1fb 100644
--- a/rust/fatcat-openapi2.yml
+++ b/rust/fatcat-openapi2.yml
@@ -143,19 +143,25 @@ definitions:
type: integer
editor_id:
type: integer
- # TODO: work_edits array, etc. ["edits"]["work"] or ["work_edits"]?
- changelogentry:
- type: object
- required:
- - index
- properties:
- index:
- type: integer
- editgroup_id:
- type: integer
- timestamp:
+ description:
type: string
- format: date-time
+ # TODO: work_edits array, etc. ["edits"]["work"] or ["work_edits"]?
+ changelogentries:
+ type: array
+ items:
+ type: object
+ required:
+ - index
+ - editgroup_id
+ - timestamp
+ properties:
+ index:
+ type: integer
+ editgroup_id:
+ type: integer
+ timestamp:
+ type: string
+ format: date-time
x-entity-responses: &ENTITYRESPONSES
400:
@@ -390,7 +396,7 @@ paths:
200:
description: Found Merged Changes
schema:
- $ref: "#/definitions/changelogentry"
+ $ref: "#/definitions/changelogentries"
404:
description: Not Found
schema:
@@ -423,9 +429,13 @@ paths:
get:
responses:
200:
- description: Found Editgroup
+ description: Found Entity
schema:
$ref: "#/definitions/editgroup"
+ 400:
+ description: Bad Request
+ schema:
+ $ref: "#/definitions/error_response"
404:
description: Not Found
schema: