diff options
| author | Bryan Newbold <bnewbold@robocracy.org> | 2018-07-24 02:10:36 -0700 | 
|---|---|---|
| committer | Bryan Newbold <bnewbold@robocracy.org> | 2018-07-24 02:10:36 -0700 | 
| commit | 5a7e60632e41c7f6b7ae0b7e3ab413209c88ea4b (patch) | |
| tree | a1710ea413f9a34ef6864dd4fd7501a5ed82fd1a /rust/fatcat-api | |
| parent | 4720becd96ea298dfcfcdfb61a2fad7eba4ba670 (diff) | |
| download | fatcat-5a7e60632e41c7f6b7ae0b7e3ab413209c88ea4b.tar.gz fatcat-5a7e60632e41c7f6b7ae0b7e3ab413209c88ea4b.zip | |
partial implementation of new API features
Diffstat (limited to 'rust/fatcat-api')
| -rw-r--r-- | rust/fatcat-api/README.md | 2 | ||||
| -rw-r--r-- | rust/fatcat-api/api.yaml | 54 | ||||
| -rw-r--r-- | rust/fatcat-api/api/swagger.yaml | 142 | ||||
| -rw-r--r-- | rust/fatcat-api/examples/client.rs | 12 | ||||
| -rw-r--r-- | rust/fatcat-api/examples/server.rs | 2 | ||||
| -rw-r--r-- | rust/fatcat-api/examples/server_lib/server.rs | 12 | ||||
| -rw-r--r-- | rust/fatcat-api/src/client.rs | 16 | ||||
| -rw-r--r-- | rust/fatcat-api/src/models.rs | 87 | ||||
| -rw-r--r-- | rust/fatcat-api/src/server.rs | 14 | 
9 files changed, 284 insertions, 57 deletions
| diff --git a/rust/fatcat-api/README.md b/rust/fatcat-api/README.md index 5ef72265..f1fbb5cc 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-07-21T02:36:21.158Z +- Build date: 2018-07-24T08:38:19.335Z  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 dde02734..94acccb3 100644 --- a/rust/fatcat-api/api.yaml +++ b/rust/fatcat-api/api.yaml @@ -113,10 +113,21 @@ definitions:          type: string          #format: custom          example: "a77e4c11a57f1d757fca5754a8f83b5d4ece49a2d28596889127c1a2f3f28832" -      url: -        type: string -        format: url -        example: "https://example.edu/~frau/prcding.pdf" +      urls: +        type: array +        items: +          type: object +          required: +            - url +            - rel +          properties: +            url: +              type: string +              format: url +              example: "https://example.edu/~frau/prcding.pdf" +            rel: +              type: string +              example: "webarchive"        mimetype:          type: string          example: "application/pdf" @@ -155,6 +166,10 @@ definitions:        isbn13:          type: string          #format: custom +      pmid: +        type: string +      pmcid: +        type: string        volume:          type: string        issue: @@ -175,12 +190,27 @@ definitions:          type: array          items:            $ref: "#/definitions/release_ref" +      abstracts: +        type: array +        items: +          type: object +          properties: +            sha1: +              type: string +              example: "3f242a192acc258bdfdb151943419437f440c313" +            content: +              type: string +              example: "<jats:p>Some abstract thing goes here</jats:p>" +            mimetype: +              type: string +              example: "application/xml+jats" +            lang: +              type: string +              example: "en"    work_entity:      type: object      properties:        <<: *ENTITYPROPS -      work_type: -        type: string    entity_history_entry:      type: object      required: @@ -212,6 +242,10 @@ definitions:            type: string            #format: uuid            example: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +      prev_revision: +          type: string +          #format: uuid +          example: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        redirect_ident:            type: string            example: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -301,8 +335,9 @@ definitions:        target_release_id:          type: string          #format: ident -      raw: -        type: string +      extra: +        type: object +        additionalProperties: {}        key:          type: string        year: @@ -326,6 +361,9 @@ definitions:          #format: ident        raw:          type: string +      extra: +        type: object +        additionalProperties: {}        role:          type: string    stats_response: diff --git a/rust/fatcat-api/api/swagger.yaml b/rust/fatcat-api/api/swagger.yaml index 75b65f4b..3a87109e 100644 --- a/rust/fatcat-api/api/swagger.yaml +++ b/rust/fatcat-api/api/swagger.yaml @@ -2031,10 +2031,10 @@ definitions:        mimetype:          type: "string"          example: "application/pdf" -      url: -        type: "string" -        format: "url" -        example: "https://example.edu/~frau/prcding.pdf" +      urls: +        type: "array" +        items: +          $ref: "#/definitions/file_entity_urls"        sha256:          type: "string"          example: "a77e4c11a57f1d757fca5754a8f83b5d4ece49a2d28596889127c1a2f3f28832" @@ -2073,12 +2073,16 @@ definitions:        redirect: "q3nouwy3nnbsvo3h5klxsx4a7y"        sha256: "a77e4c11a57f1d757fca5754a8f83b5d4ece49a2d28596889127c1a2f3f28832"        ident: "q3nouwy3nnbsvo3h5klxsx4a7y" -      url: "https://example.edu/~frau/prcding.pdf"        releases:        - "releases"        - "releases"        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        sha1: "f013d66c7f6817d08b7eb2a93e6d0440c1f3e7f8" +      urls: +      - rel: "webarchive" +        url: "https://example.edu/~frau/prcding.pdf" +      - rel: "webarchive" +        url: "https://example.edu/~frau/prcding.pdf"        size: 1048576        extra: "{}"        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2091,6 +2095,10 @@ definitions:      required:      - "title"      properties: +      abstracts: +        type: "array" +        items: +          $ref: "#/definitions/release_entity_abstracts"        refs:          type: "array"          items: @@ -2111,6 +2119,10 @@ definitions:          example: "12"        volume:          type: "string" +      pmcid: +        type: "string" +      pmid: +        type: "string"        isbn13:          type: "string"        doi: @@ -2158,17 +2170,29 @@ definitions:        redirect: "q3nouwy3nnbsvo3h5klxsx4a7y"        work_id: "q3nouwy3nnbsvo3h5klxsx4a7y"        issue: "12" +      abstracts: +      - sha1: "3f242a192acc258bdfdb151943419437f440c313" +        mimetype: "application/xml+jats" +        lang: "en" +        content: "<jats:p>Some abstract thing goes here</jats:p>" +      - sha1: "3f242a192acc258bdfdb151943419437f440c313" +        mimetype: "application/xml+jats" +        lang: "en" +        content: "<jats:p>Some abstract thing goes here</jats:p>"        ident: "q3nouwy3nnbsvo3h5klxsx4a7y"        release_type: "book"        language: "language" +      pmid: "pmid"        title: "title"        release_status: "preprint"        contribs:        - role: "role" +        extra: "{}"          creator_id: "creator_id"          index: 1          raw: "raw"        - role: "role" +        extra: "{}"          creator_id: "creator_id"          index: 1          raw: "raw" @@ -2179,16 +2203,16 @@ definitions:        - target_release_id: "target_release_id"          year: 6          container_title: "container_title" +        extra: "{}"          index: 0 -        raw: "raw"          title: "title"          locator: "p123"          key: "key"        - target_release_id: "target_release_id"          year: 6          container_title: "container_title" +        extra: "{}"          index: 0 -        raw: "raw"          title: "title"          locator: "p123"          key: "key" @@ -2198,14 +2222,13 @@ definitions:        publisher: "publisher"        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y"        state: "wip" +      pmcid: "pmcid"        container_id: "q3nouwy3nnbsvo3h5klxsx4a7y"        doi: "10.1234/abcde.789"      upperCaseName: "RELEASE_ENTITY"    work_entity:      type: "object"      properties: -      work_type: -        type: "string"        extra:          type: "object"        editgroup_id: @@ -2231,7 +2254,6 @@ definitions:        redirect: "q3nouwy3nnbsvo3h5klxsx4a7y"        ident: "q3nouwy3nnbsvo3h5klxsx4a7y"        extra: "{}" -      work_type: "work_type"        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y"        state: "wip"        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" @@ -2259,12 +2281,14 @@ definitions:              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            creators:            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2272,12 +2296,14 @@ definitions:              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            files:            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2285,12 +2311,14 @@ definitions:              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            containers:            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2298,12 +2326,14 @@ definitions:              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            releases:            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2311,12 +2341,14 @@ definitions:              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          description: "description"          editor_id: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2327,6 +2359,7 @@ definitions:          extra: "{}"          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        changelog_entry:          editgroup: @@ -2338,12 +2371,14 @@ definitions:                extra: "{}"                redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"                revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}"                redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"                revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              creators:              - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2351,12 +2386,14 @@ definitions:                extra: "{}"                redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"                revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}"                redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"                revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              files:              - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2364,12 +2401,14 @@ definitions:                extra: "{}"                redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"                revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}"                redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"                revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              containers:              - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2377,12 +2416,14 @@ definitions:                extra: "{}"                redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"                revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}"                redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"                revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              releases:              - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2390,12 +2431,14 @@ definitions:                extra: "{}"                redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"                revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}"                redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"                revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            description: "description"            editor_id: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2421,6 +2464,9 @@ definitions:        revision:          type: "string"          example: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +      prev_revision: +        type: "string" +        example: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        redirect_ident:          type: "string"          example: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2435,6 +2481,7 @@ definitions:        extra: "{}"        redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +      prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"      upperCaseName: "ENTITY_EDIT"    editor: @@ -2478,12 +2525,14 @@ definitions:            extra: "{}"            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}"            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          creators:          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2491,12 +2540,14 @@ definitions:            extra: "{}"            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}"            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          files:          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2504,12 +2555,14 @@ definitions:            extra: "{}"            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}"            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          containers:          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2517,12 +2570,14 @@ definitions:            extra: "{}"            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}"            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          releases:          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2530,12 +2585,14 @@ definitions:            extra: "{}"            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}"            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        description: "description"        editor_id: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2569,12 +2626,14 @@ definitions:              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            creators:            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2582,12 +2641,14 @@ definitions:              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            files:            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2595,12 +2656,14 @@ definitions:              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            containers:            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2608,12 +2671,14 @@ definitions:              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            releases:            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2621,12 +2686,14 @@ definitions:              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}"              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          description: "description"          editor_id: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2643,8 +2710,8 @@ definitions:          format: "int64"        target_release_id:          type: "string" -      raw: -        type: "string" +      extra: +        type: "object"        key:          type: "string"        year: @@ -2661,8 +2728,8 @@ definitions:        target_release_id: "target_release_id"        year: 6        container_title: "container_title" +      extra: "{}"        index: 0 -      raw: "raw"        title: "title"        locator: "p123"        key: "key" @@ -2677,10 +2744,13 @@ definitions:          type: "string"        raw:          type: "string" +      extra: +        type: "object"        role:          type: "string"      example:        role: "role" +      extra: "{}"        creator_id: "creator_id"        index: 1        raw: "raw" @@ -2693,6 +2763,42 @@ definitions:      example:        extra: "{}"      upperCaseName: "STATS_RESPONSE" +  file_entity_urls: +    required: +    - "rel" +    - "url" +    properties: +      url: +        type: "string" +        format: "url" +        example: "https://example.edu/~frau/prcding.pdf" +      rel: +        type: "string" +        example: "webarchive" +    example: +      rel: "webarchive" +      url: "https://example.edu/~frau/prcding.pdf" +    upperCaseName: "FILE_ENTITY_URLS" +  release_entity_abstracts: +    properties: +      sha1: +        type: "string" +        example: "3f242a192acc258bdfdb151943419437f440c313" +      content: +        type: "string" +        example: "<jats:p>Some abstract thing goes here</jats:p>" +      mimetype: +        type: "string" +        example: "application/xml+jats" +      lang: +        type: "string" +        example: "en" +    example: +      sha1: "3f242a192acc258bdfdb151943419437f440c313" +      mimetype: "application/xml+jats" +      lang: "en" +      content: "<jats:p>Some abstract thing goes here</jats:p>" +    upperCaseName: "RELEASE_ENTITY_ABSTRACTS"    editgroup_edits:      properties:        containers: @@ -2722,12 +2828,14 @@ definitions:          extra: "{}"          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}"          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        creators:        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2735,12 +2843,14 @@ definitions:          extra: "{}"          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}"          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        files:        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2748,12 +2858,14 @@ definitions:          extra: "{}"          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}"          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        containers:        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2761,12 +2873,14 @@ definitions:          extra: "{}"          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}"          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        releases:        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y" @@ -2774,12 +2888,14 @@ definitions:          extra: "{}"          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}"          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        prev_revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"      upperCaseName: "EDITGROUP_EDITS"  x-entity-props: diff --git a/rust/fatcat-api/examples/client.rs b/rust/fatcat-api/examples/client.rs index 3fa6508e..46ff0abd 100644 --- a/rust/fatcat-api/examples/client.rs +++ b/rust/fatcat-api/examples/client.rs @@ -11,11 +11,13 @@ extern crate uuid;  use clap::{App, Arg};  #[allow(unused_imports)] -use fatcat::{AcceptEditgroupResponse, ApiError, ApiNoContext, ContextWrapperExt, CreateContainerBatchResponse, CreateContainerResponse, CreateCreatorBatchResponse, CreateCreatorResponse, -             CreateEditgroupResponse, CreateFileBatchResponse, CreateFileResponse, CreateReleaseBatchResponse, CreateReleaseResponse, CreateWorkBatchResponse, CreateWorkResponse, -             GetChangelogEntryResponse, GetChangelogResponse, GetContainerHistoryResponse, GetContainerResponse, GetCreatorHistoryResponse, GetCreatorReleasesResponse, GetCreatorResponse, -             GetEditgroupResponse, GetEditorChangelogResponse, GetEditorResponse, GetFileHistoryResponse, GetFileResponse, GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseResponse, -             GetStatsResponse, GetWorkHistoryResponse, GetWorkReleasesResponse, GetWorkResponse, LookupContainerResponse, LookupCreatorResponse, LookupFileResponse, LookupReleaseResponse}; +use fatcat::{ +    AcceptEditgroupResponse, ApiError, ApiNoContext, ContextWrapperExt, CreateContainerBatchResponse, CreateContainerResponse, CreateCreatorBatchResponse, CreateCreatorResponse, +    CreateEditgroupResponse, CreateFileBatchResponse, CreateFileResponse, CreateReleaseBatchResponse, CreateReleaseResponse, CreateWorkBatchResponse, CreateWorkResponse, GetChangelogEntryResponse, +    GetChangelogResponse, GetContainerHistoryResponse, GetContainerResponse, GetCreatorHistoryResponse, GetCreatorReleasesResponse, GetCreatorResponse, GetEditgroupResponse, +    GetEditorChangelogResponse, GetEditorResponse, GetFileHistoryResponse, GetFileResponse, GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseResponse, GetStatsResponse, +    GetWorkHistoryResponse, GetWorkReleasesResponse, GetWorkResponse, LookupContainerResponse, LookupCreatorResponse, LookupFileResponse, LookupReleaseResponse, +};  #[allow(unused_imports)]  use futures::{future, stream, Future, Stream}; diff --git a/rust/fatcat-api/examples/server.rs b/rust/fatcat-api/examples/server.rs index 612ec4b2..8d2e9b64 100644 --- a/rust/fatcat-api/examples/server.rs +++ b/rust/fatcat-api/examples/server.rs @@ -19,10 +19,10 @@ extern crate futures;  extern crate error_chain;  use clap::{App, Arg}; -use hyper_openssl::OpensslServer;  use hyper_openssl::openssl::error::ErrorStack;  use hyper_openssl::openssl::ssl::{SslAcceptorBuilder, SslMethod};  use hyper_openssl::openssl::x509::X509_FILETYPE_PEM; +use hyper_openssl::OpensslServer;  use iron::{Chain, Iron};  use swagger::auth::AllowAllMiddleware; diff --git a/rust/fatcat-api/examples/server_lib/server.rs b/rust/fatcat-api/examples/server_lib/server.rs index 608d715f..a25e175f 100644 --- a/rust/fatcat-api/examples/server_lib/server.rs +++ b/rust/fatcat-api/examples/server_lib/server.rs @@ -10,11 +10,13 @@ use std::collections::HashMap;  use swagger;  use fatcat::models; -use fatcat::{AcceptEditgroupResponse, Api, ApiError, Context, CreateContainerBatchResponse, CreateContainerResponse, CreateCreatorBatchResponse, CreateCreatorResponse, CreateEditgroupResponse, -             CreateFileBatchResponse, CreateFileResponse, CreateReleaseBatchResponse, CreateReleaseResponse, CreateWorkBatchResponse, CreateWorkResponse, GetChangelogEntryResponse, -             GetChangelogResponse, GetContainerHistoryResponse, GetContainerResponse, GetCreatorHistoryResponse, GetCreatorReleasesResponse, GetCreatorResponse, GetEditgroupResponse, -             GetEditorChangelogResponse, GetEditorResponse, GetFileHistoryResponse, GetFileResponse, GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseResponse, GetStatsResponse, -             GetWorkHistoryResponse, GetWorkReleasesResponse, GetWorkResponse, LookupContainerResponse, LookupCreatorResponse, LookupFileResponse, LookupReleaseResponse}; +use fatcat::{ +    AcceptEditgroupResponse, Api, ApiError, Context, CreateContainerBatchResponse, CreateContainerResponse, CreateCreatorBatchResponse, CreateCreatorResponse, CreateEditgroupResponse, +    CreateFileBatchResponse, CreateFileResponse, CreateReleaseBatchResponse, CreateReleaseResponse, CreateWorkBatchResponse, CreateWorkResponse, GetChangelogEntryResponse, GetChangelogResponse, +    GetContainerHistoryResponse, GetContainerResponse, GetCreatorHistoryResponse, GetCreatorReleasesResponse, GetCreatorResponse, GetEditgroupResponse, GetEditorChangelogResponse, GetEditorResponse, +    GetFileHistoryResponse, GetFileResponse, GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseResponse, GetStatsResponse, GetWorkHistoryResponse, GetWorkReleasesResponse, +    GetWorkResponse, LookupContainerResponse, LookupCreatorResponse, LookupFileResponse, LookupReleaseResponse, +};  #[derive(Copy, Clone)]  pub struct Server; diff --git a/rust/fatcat-api/src/client.rs b/rust/fatcat-api/src/client.rs index b785adab..2b6fd2a6 100644 --- a/rust/fatcat-api/src/client.rs +++ b/rust/fatcat-api/src/client.rs @@ -6,14 +6,14 @@ extern crate url;  use self::hyper_openssl::openssl;  use self::url::percent_encoding::{utf8_percent_encode, PATH_SEGMENT_ENCODE_SET, QUERY_ENCODE_SET};  use futures; -use futures::{Future, Stream};  use futures::{future, stream}; +use futures::{Future, Stream};  use hyper; -use hyper::Url;  use hyper::client::IntoUrl;  use hyper::header::{ContentType, Headers};  use hyper::mime;  use hyper::mime::{Attr, Mime, SubLevel, TopLevel, Value}; +use hyper::Url;  use std::borrow::Cow;  use std::error;  use std::fmt; @@ -34,11 +34,13 @@ use swagger;  use swagger::{ApiError, Context, XSpanId};  use models; -use {AcceptEditgroupResponse, Api, CreateContainerBatchResponse, CreateContainerResponse, CreateCreatorBatchResponse, CreateCreatorResponse, CreateEditgroupResponse, CreateFileBatchResponse, -     CreateFileResponse, CreateReleaseBatchResponse, CreateReleaseResponse, CreateWorkBatchResponse, CreateWorkResponse, GetChangelogEntryResponse, GetChangelogResponse, GetContainerHistoryResponse, -     GetContainerResponse, GetCreatorHistoryResponse, GetCreatorReleasesResponse, GetCreatorResponse, GetEditgroupResponse, GetEditorChangelogResponse, GetEditorResponse, GetFileHistoryResponse, -     GetFileResponse, GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseResponse, GetStatsResponse, GetWorkHistoryResponse, GetWorkReleasesResponse, GetWorkResponse, -     LookupContainerResponse, LookupCreatorResponse, LookupFileResponse, LookupReleaseResponse}; +use { +    AcceptEditgroupResponse, Api, CreateContainerBatchResponse, CreateContainerResponse, CreateCreatorBatchResponse, CreateCreatorResponse, CreateEditgroupResponse, CreateFileBatchResponse, +    CreateFileResponse, CreateReleaseBatchResponse, CreateReleaseResponse, CreateWorkBatchResponse, CreateWorkResponse, GetChangelogEntryResponse, GetChangelogResponse, GetContainerHistoryResponse, +    GetContainerResponse, GetCreatorHistoryResponse, GetCreatorReleasesResponse, GetCreatorResponse, GetEditgroupResponse, GetEditorChangelogResponse, GetEditorResponse, GetFileHistoryResponse, +    GetFileResponse, GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseResponse, GetStatsResponse, GetWorkHistoryResponse, GetWorkReleasesResponse, GetWorkResponse, +    LookupContainerResponse, LookupCreatorResponse, LookupFileResponse, LookupReleaseResponse, +};  /// Convert input into a base path, e.g. "http://example:123". Also checks the scheme as it goes.  fn into_base_path<T: IntoUrl>(input: T, correct_scheme: Option<&'static str>) -> Result<String, ClientInitError> { diff --git a/rust/fatcat-api/src/models.rs b/rust/fatcat-api/src/models.rs index 4ecc180c..d798fe03 100644 --- a/rust/fatcat-api/src/models.rs +++ b/rust/fatcat-api/src/models.rs @@ -258,6 +258,10 @@ pub struct EntityEdit {      #[serde(skip_serializing_if = "Option::is_none")]      pub revision: Option<String>, +    #[serde(rename = "prev_revision")] +    #[serde(skip_serializing_if = "Option::is_none")] +    pub prev_revision: Option<String>, +      #[serde(rename = "redirect_ident")]      #[serde(skip_serializing_if = "Option::is_none")]      pub redirect_ident: Option<String>, @@ -276,6 +280,7 @@ impl EntityEdit {              edit_id: edit_id,              ident: ident,              revision: None, +            prev_revision: None,              redirect_ident: None,              editgroup_id: editgroup_id,              extra: None, @@ -327,9 +332,9 @@ pub struct FileEntity {      #[serde(skip_serializing_if = "Option::is_none")]      pub mimetype: Option<String>, -    #[serde(rename = "url")] +    #[serde(rename = "urls")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub url: Option<String>, +    pub urls: Option<Vec<models::FileEntityUrls>>,      #[serde(rename = "sha256")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -378,7 +383,7 @@ impl FileEntity {          FileEntity {              releases: None,              mimetype: None, -            url: None, +            urls: None,              sha256: None,              md5: None,              sha1: None, @@ -394,6 +399,21 @@ impl FileEntity {  }  #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct FileEntityUrls { +    #[serde(rename = "url")] +    pub url: String, + +    #[serde(rename = "rel")] +    pub rel: String, +} + +impl FileEntityUrls { +    pub fn new(url: String, rel: String) -> FileEntityUrls { +        FileEntityUrls { url: url, rel: rel } +    } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]  pub struct ReleaseContrib {      #[serde(rename = "index")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -407,6 +427,10 @@ pub struct ReleaseContrib {      #[serde(skip_serializing_if = "Option::is_none")]      pub raw: Option<String>, +    #[serde(rename = "extra")] +    #[serde(skip_serializing_if = "Option::is_none")] +    pub extra: Option<serde_json::Value>, +      #[serde(rename = "role")]      #[serde(skip_serializing_if = "Option::is_none")]      pub role: Option<String>, @@ -418,6 +442,7 @@ impl ReleaseContrib {              index: None,              creator_id: None,              raw: None, +            extra: None,              role: None,          }      } @@ -425,6 +450,10 @@ impl ReleaseContrib {  #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]  pub struct ReleaseEntity { +    #[serde(rename = "abstracts")] +    #[serde(skip_serializing_if = "Option::is_none")] +    pub abstracts: Option<Vec<models::ReleaseEntityAbstracts>>, +      #[serde(rename = "refs")]      #[serde(skip_serializing_if = "Option::is_none")]      pub refs: Option<Vec<models::ReleaseRef>>, @@ -454,6 +483,14 @@ pub struct ReleaseEntity {      #[serde(skip_serializing_if = "Option::is_none")]      pub volume: Option<String>, +    #[serde(rename = "pmcid")] +    #[serde(skip_serializing_if = "Option::is_none")] +    pub pmcid: Option<String>, + +    #[serde(rename = "pmid")] +    #[serde(skip_serializing_if = "Option::is_none")] +    pub pmid: Option<String>, +      #[serde(rename = "isbn13")]      #[serde(skip_serializing_if = "Option::is_none")]      pub isbn13: Option<String>, @@ -514,6 +551,7 @@ pub struct ReleaseEntity {  impl ReleaseEntity {      pub fn new(title: String) -> ReleaseEntity {          ReleaseEntity { +            abstracts: None,              refs: None,              contribs: None,              language: None, @@ -521,6 +559,8 @@ impl ReleaseEntity {              pages: None,              issue: None,              volume: None, +            pmcid: None, +            pmid: None,              isbn13: None,              doi: None,              release_date: None, @@ -540,6 +580,36 @@ impl ReleaseEntity {  }  #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct ReleaseEntityAbstracts { +    #[serde(rename = "sha1")] +    #[serde(skip_serializing_if = "Option::is_none")] +    pub sha1: Option<String>, + +    #[serde(rename = "content")] +    #[serde(skip_serializing_if = "Option::is_none")] +    pub content: Option<String>, + +    #[serde(rename = "mimetype")] +    #[serde(skip_serializing_if = "Option::is_none")] +    pub mimetype: Option<String>, + +    #[serde(rename = "lang")] +    #[serde(skip_serializing_if = "Option::is_none")] +    pub lang: Option<String>, +} + +impl ReleaseEntityAbstracts { +    pub fn new() -> ReleaseEntityAbstracts { +        ReleaseEntityAbstracts { +            sha1: None, +            content: None, +            mimetype: None, +            lang: None, +        } +    } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]  pub struct ReleaseRef {      #[serde(rename = "index")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -549,9 +619,9 @@ pub struct ReleaseRef {      #[serde(skip_serializing_if = "Option::is_none")]      pub target_release_id: Option<String>, -    #[serde(rename = "raw")] +    #[serde(rename = "extra")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub raw: Option<String>, +    pub extra: Option<serde_json::Value>,      #[serde(rename = "key")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -579,7 +649,7 @@ impl ReleaseRef {          ReleaseRef {              index: None,              target_release_id: None, -            raw: None, +            extra: None,              key: None,              year: None,              container_title: None, @@ -616,10 +686,6 @@ impl Success {  #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]  pub struct WorkEntity { -    #[serde(rename = "work_type")] -    #[serde(skip_serializing_if = "Option::is_none")] -    pub work_type: Option<String>, -      #[serde(rename = "extra")]      #[serde(skip_serializing_if = "Option::is_none")]      pub extra: Option<serde_json::Value>, @@ -649,7 +715,6 @@ pub struct WorkEntity {  impl WorkEntity {      pub fn new() -> WorkEntity {          WorkEntity { -            work_type: None,              extra: None,              editgroup_id: None,              redirect: None, diff --git a/rust/fatcat-api/src/server.rs b/rust/fatcat-api/src/server.rs index e4e0bc1d..e94fd5ef 100644 --- a/rust/fatcat-api/src/server.rs +++ b/rust/fatcat-api/src/server.rs @@ -12,8 +12,8 @@ use self::iron::url::percent_encoding::percent_decode;  use self::iron::{modifiers, status, BeforeMiddleware};  use self::router::Router;  use self::urlencoded::UrlEncodedQuery; -use futures::Future;  use futures::future; +use futures::Future;  use futures::{stream, Stream};  use hyper;  use hyper::header::{ContentType, Headers}; @@ -36,11 +36,13 @@ use swagger::{ApiError, Context, XSpanId};  #[allow(unused_imports)]  use models; -use {AcceptEditgroupResponse, Api, CreateContainerBatchResponse, CreateContainerResponse, CreateCreatorBatchResponse, CreateCreatorResponse, CreateEditgroupResponse, CreateFileBatchResponse, -     CreateFileResponse, CreateReleaseBatchResponse, CreateReleaseResponse, CreateWorkBatchResponse, CreateWorkResponse, GetChangelogEntryResponse, GetChangelogResponse, GetContainerHistoryResponse, -     GetContainerResponse, GetCreatorHistoryResponse, GetCreatorReleasesResponse, GetCreatorResponse, GetEditgroupResponse, GetEditorChangelogResponse, GetEditorResponse, GetFileHistoryResponse, -     GetFileResponse, GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseResponse, GetStatsResponse, GetWorkHistoryResponse, GetWorkReleasesResponse, GetWorkResponse, -     LookupContainerResponse, LookupCreatorResponse, LookupFileResponse, LookupReleaseResponse}; +use { +    AcceptEditgroupResponse, Api, CreateContainerBatchResponse, CreateContainerResponse, CreateCreatorBatchResponse, CreateCreatorResponse, CreateEditgroupResponse, CreateFileBatchResponse, +    CreateFileResponse, CreateReleaseBatchResponse, CreateReleaseResponse, CreateWorkBatchResponse, CreateWorkResponse, GetChangelogEntryResponse, GetChangelogResponse, GetContainerHistoryResponse, +    GetContainerResponse, GetCreatorHistoryResponse, GetCreatorReleasesResponse, GetCreatorResponse, GetEditgroupResponse, GetEditorChangelogResponse, GetEditorResponse, GetFileHistoryResponse, +    GetFileResponse, GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseResponse, GetStatsResponse, GetWorkHistoryResponse, GetWorkReleasesResponse, GetWorkResponse, +    LookupContainerResponse, LookupCreatorResponse, LookupFileResponse, LookupReleaseResponse, +};  header! { (Warning, "Warning") => [String] } | 
