diff options
| -rw-r--r-- | rust/fatcat-api/README.md | 2 | ||||
| -rw-r--r-- | rust/fatcat-api/api.yaml | 78 | ||||
| -rw-r--r-- | rust/fatcat-api/api/swagger.yaml | 632 | ||||
| -rw-r--r-- | rust/fatcat-api/examples/client.rs | 8 | ||||
| -rw-r--r-- | rust/fatcat-api/examples/server_lib/server.rs | 16 | ||||
| -rw-r--r-- | rust/fatcat-api/src/client.rs | 20 | ||||
| -rw-r--r-- | rust/fatcat-api/src/lib.rs | 28 | ||||
| -rw-r--r-- | rust/fatcat-api/src/models.rs | 42 | ||||
| -rw-r--r-- | rust/fatcat-api/src/server.rs | 24 | 
9 files changed, 419 insertions, 431 deletions
| diff --git a/rust/fatcat-api/README.md b/rust/fatcat-api/README.md index c693f229..5ef72265 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-01T01:27:53.353Z +- Build date: 2018-07-21T02:36:21.158Z  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 e1c44063..dde02734 100644 --- a/rust/fatcat-api/api.yaml +++ b/rust/fatcat-api/api.yaml @@ -21,20 +21,20 @@ x-entity-props: &ENTITYPROPS      enum: ["wip", "active", "redirect", "deleted"]    ident:      type: string -    #format: uuid -    example: "00000000-0000-0000-adce-000000000001" +    #format: custom +    example: "q3nouwy3nnbsvo3h5klxsx4a7y"    revision: -    type: integer -    example: 42 -    format: int64 -  redirect:      type: string      #format: uuid -    example: "00000000-0000-0000-adce-000000000002" +    example: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +  redirect: +    type: string +    #format: custom +    example: "q3nouwy3nnbsvo3h5klxsx4a7y"    editgroup_id: -    type: integer -    example: 16 -    format: int64 +    type: string +    #format: custom +    example: "q3nouwy3nnbsvo3h5klxsx4a7y"    extra:      type: object      additionalProperties: {} @@ -135,10 +135,10 @@ definitions:          type: string        work_id:          type: string -        example: "00000000-0000-0000-adce-000000000001" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        container_id:          type: string -        example: "00000000-0000-0000-adce-000000000001" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        release_type:          type: string          example: "book" @@ -207,19 +207,18 @@ definitions:            format: int64        ident:            type: string -          example: "00000000-0000-0000-adce-000000000001" +          example: "q3nouwy3nnbsvo3h5klxsx4a7y"        revision: -          type: integer -          example: 42 -          format: int64 -      redirect_ident:            type: string -          example: "00000000-0000-0000-adce-000000000002"            #format: uuid +          example: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +      redirect_ident: +          type: string +          example: "q3nouwy3nnbsvo3h5klxsx4a7y" +          #format: ident        editgroup_id: -          type: integer -          example: 16 -          format: int64 +          type: string +          example: "q3nouwy3nnbsvo3h5klxsx4a7y"        extra:            type: object            additionalProperties: {} @@ -228,6 +227,9 @@ definitions:      required:        - username      properties: +      id: +        type: string +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        username:          type: string          example: "zerocool93" @@ -237,11 +239,13 @@ definitions:        - editor_id      properties:        id: -        type: integer -        format: int64 +        type: string +        #format: custom +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        editor_id: -        type: integer -        format: int64 +        type: string +        #format: custon +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        description:          type: string        extra: @@ -281,8 +285,8 @@ definitions:          type: integer          format: int64        editgroup_id: -        type: integer -        format: int64 +        type: string +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        timestamp:          type: string          format: date-time @@ -296,7 +300,7 @@ definitions:          format: int64        target_release_id:          type: string -        #format: uuid +        #format: ident        raw:          type: string        key: @@ -319,7 +323,7 @@ definitions:          format: int64        creator_id:          type: string -        #format: uuid +        #format: ident        raw:          type: string        role: @@ -795,9 +799,9 @@ paths:              items:                $ref: "#/definitions/release_entity"          <<: *ENTITYRESPONSES -  /editor/{username}: +  /editor/{id}:      parameters: -      - name: username +      - name: id          in: path          type: string          required: true @@ -816,9 +820,9 @@ paths:            description: Generic Error            schema:              $ref: "#/definitions/error_response" -  /editor/{username}/changelog: +  /editor/{id}/changelog:      parameters: -      - name: username +      - name: id          in: path          type: string          required: true @@ -865,8 +869,8 @@ paths:      parameters:        - name: id          in: path -        type: integer -        format: int64 +        type: string +        #format: custom           required: true      get:        operationId: "get_editgroup" @@ -891,8 +895,8 @@ paths:      parameters:        - name: id          in: path -        type: integer -        format: int64 +        type: string +        #format: custom          required: true      post:        operationId: "accept_editgroup" diff --git a/rust/fatcat-api/api/swagger.yaml b/rust/fatcat-api/api/swagger.yaml index d376a078..75b65f4b 100644 --- a/rust/fatcat-api/api/swagger.yaml +++ b/rust/fatcat-api/api/swagger.yaml @@ -1543,16 +1543,16 @@ paths:        path: "/work/:id/releases"        HttpMethod: "Get"        httpmethod: "get" -  /editor/{username}: +  /editor/{id}:      get:        operationId: "get_editor"        parameters: -      - name: "username" +      - name: "id"          in: "path"          required: true          type: "string"          formatString: "\\\"{}\\\"" -        example: "\"username_example\".to_string()" +        example: "\"id_example\".to_string()"        responses:          200:            description: "Found Editor" @@ -1583,19 +1583,19 @@ paths:            producesJson: true        operation_id: "get_editor"        uppercase_operation_id: "GET_EDITOR" -      path: "/editor/:username" +      path: "/editor/:id"        HttpMethod: "Get"        httpmethod: "get" -  /editor/{username}/changelog: +  /editor/{id}/changelog:      get:        operationId: "get_editor_changelog"        parameters: -      - name: "username" +      - name: "id"          in: "path"          required: true          type: "string"          formatString: "\\\"{}\\\"" -        example: "\"username_example\".to_string()" +        example: "\"id_example\".to_string()"        responses:          200:            description: "Found Merged Changes" @@ -1628,7 +1628,7 @@ paths:            producesJson: true        operation_id: "get_editor_changelog"        uppercase_operation_id: "GET_EDITOR_CHANGELOG" -      path: "/editor/:username/changelog" +      path: "/editor/:id/changelog"        HttpMethod: "Get"        httpmethod: "get"    /editgroup: @@ -1688,10 +1688,9 @@ paths:        - name: "id"          in: "path"          required: true -        type: "integer" -        format: "int64" -        formatString: "{}" -        example: "789" +        type: "string" +        formatString: "\\\"{}\\\"" +        example: "\"id_example\".to_string()"        responses:          200:            description: "Found Entity" @@ -1741,10 +1740,9 @@ paths:        - name: "id"          in: "path"          required: true -        type: "integer" -        format: "int64" -        formatString: "{}" -        example: "789" +        type: "string" +        formatString: "\\\"{}\\\"" +        example: "\"id_example\".to_string()"        responses:          200:            description: "Merged Successfully" @@ -1944,19 +1942,17 @@ definitions:        extra:          type: "object"        editgroup_id: -        type: "integer" -        format: "int64" -        example: 16 +        type: "string" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        redirect:          type: "string" -        example: "00000000-0000-0000-adce-000000000002" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        revision: -        type: "integer" -        format: "int64" -        example: 42 +        type: "string" +        example: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        ident:          type: "string" -        example: "00000000-0000-0000-adce-000000000001" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        state:          type: "string"          enum: @@ -1965,17 +1961,17 @@ definitions:          - "redirect"          - "deleted"      example: -      redirect: "00000000-0000-0000-adce-000000000002" +      redirect: "q3nouwy3nnbsvo3h5klxsx4a7y"        coden: "coden" -      ident: "00000000-0000-0000-adce-000000000001" +      ident: "q3nouwy3nnbsvo3h5klxsx4a7y"        extra: "{}"        name: "Journal of Important Results"        publisher: "Society of Curious Students" -      editgroup_id: 16 +      editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y"        issnl: "1234-5678"        abbrev: "abbrev"        state: "wip" -      revision: 42 +      revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"      upperCaseName: "CONTAINER_ENTITY"    creator_entity:      type: "object" @@ -2001,31 +1997,29 @@ definitions:          - "deleted"        ident:          type: "string" -        example: "00000000-0000-0000-adce-000000000001" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        revision: -        type: "integer" -        format: "int64" -        example: 42 +        type: "string" +        example: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        redirect:          type: "string" -        example: "00000000-0000-0000-adce-000000000002" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        editgroup_id: -        type: "integer" -        format: "int64" -        example: 16 +        type: "string" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        extra:          type: "object"      example: -      redirect: "00000000-0000-0000-adce-000000000002" +      redirect: "q3nouwy3nnbsvo3h5klxsx4a7y"        surname: "surname" -      ident: "00000000-0000-0000-adce-000000000001" +      ident: "q3nouwy3nnbsvo3h5klxsx4a7y"        extra: "{}" -      editgroup_id: 16 +      editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y"        orcid: "0000-0002-1825-0097"        state: "wip"        given_name: "given_name"        display_name: "Grace Hopper" -      revision: 42 +      revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"      upperCaseName: "CREATOR_ENTITY"    file_entity:      type: "object" @@ -2057,19 +2051,17 @@ definitions:        extra:          type: "object"        editgroup_id: -        type: "integer" -        format: "int64" -        example: 16 +        type: "string" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        redirect:          type: "string" -        example: "00000000-0000-0000-adce-000000000002" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        revision: -        type: "integer" -        format: "int64" -        example: 42 +        type: "string" +        example: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        ident:          type: "string" -        example: "00000000-0000-0000-adce-000000000001" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        state:          type: "string"          enum: @@ -2078,18 +2070,18 @@ definitions:          - "redirect"          - "deleted"      example: -      redirect: "00000000-0000-0000-adce-000000000002" +      redirect: "q3nouwy3nnbsvo3h5klxsx4a7y"        sha256: "a77e4c11a57f1d757fca5754a8f83b5d4ece49a2d28596889127c1a2f3f28832" -      ident: "00000000-0000-0000-adce-000000000001" +      ident: "q3nouwy3nnbsvo3h5klxsx4a7y"        url: "https://example.edu/~frau/prcding.pdf"        releases:        - "releases"        - "releases" -      revision: 42 +      revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        sha1: "f013d66c7f6817d08b7eb2a93e6d0440c1f3e7f8"        size: 1048576        extra: "{}" -      editgroup_id: 16 +      editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y"        mimetype: "application/pdf"        state: "wip"        md5: "d41efcc592d1e40ac13905377399eb9b" @@ -2135,10 +2127,10 @@ definitions:          example: "book"        container_id:          type: "string" -        example: "00000000-0000-0000-adce-000000000001" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        work_id:          type: "string" -        example: "00000000-0000-0000-adce-000000000001" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        title:          type: "string"        state: @@ -2150,25 +2142,23 @@ definitions:          - "deleted"        ident:          type: "string" -        example: "00000000-0000-0000-adce-000000000001" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        revision: -        type: "integer" -        format: "int64" -        example: 42 +        type: "string" +        example: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        redirect:          type: "string" -        example: "00000000-0000-0000-adce-000000000002" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        editgroup_id: -        type: "integer" -        format: "int64" -        example: 16 +        type: "string" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        extra:          type: "object"      example: -      redirect: "00000000-0000-0000-adce-000000000002" -      work_id: "00000000-0000-0000-adce-000000000001" +      redirect: "q3nouwy3nnbsvo3h5klxsx4a7y" +      work_id: "q3nouwy3nnbsvo3h5klxsx4a7y"        issue: "12" -      ident: "00000000-0000-0000-adce-000000000001" +      ident: "q3nouwy3nnbsvo3h5klxsx4a7y"        release_type: "book"        language: "language"        title: "title" @@ -2182,7 +2172,7 @@ definitions:          creator_id: "creator_id"          index: 1          raw: "raw" -      revision: 42 +      revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        volume: "volume"        pages: "pages"        refs: @@ -2206,9 +2196,9 @@ definitions:        isbn13: "isbn13"        extra: "{}"        publisher: "publisher" -      editgroup_id: 16 +      editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y"        state: "wip" -      container_id: "00000000-0000-0000-adce-000000000001" +      container_id: "q3nouwy3nnbsvo3h5klxsx4a7y"        doi: "10.1234/abcde.789"      upperCaseName: "RELEASE_ENTITY"    work_entity: @@ -2219,19 +2209,17 @@ definitions:        extra:          type: "object"        editgroup_id: -        type: "integer" -        format: "int64" -        example: 16 +        type: "string" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        redirect:          type: "string" -        example: "00000000-0000-0000-adce-000000000002" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        revision: -        type: "integer" -        format: "int64" -        example: 42 +        type: "string" +        example: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        ident:          type: "string" -        example: "00000000-0000-0000-adce-000000000001" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        state:          type: "string"          enum: @@ -2240,13 +2228,13 @@ definitions:          - "redirect"          - "deleted"      example: -      redirect: "00000000-0000-0000-adce-000000000002" -      ident: "00000000-0000-0000-adce-000000000001" +      redirect: "q3nouwy3nnbsvo3h5klxsx4a7y" +      ident: "q3nouwy3nnbsvo3h5klxsx4a7y"        extra: "{}"        work_type: "work_type" -      editgroup_id: 16 +      editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y"        state: "wip" -      revision: 42 +      revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"      upperCaseName: "WORK_ENTITY"    entity_history_entry:      type: "object" @@ -2266,154 +2254,154 @@ definitions:          extra: "{}"          edits:            works: -          - ident: "00000000-0000-0000-adce-000000000001" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 -          - ident: "00000000-0000-0000-adce-000000000001" +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            creators: -          - ident: "00000000-0000-0000-adce-000000000001" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 -          - ident: "00000000-0000-0000-adce-000000000001" +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            files: -          - ident: "00000000-0000-0000-adce-000000000001" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 -          - ident: "00000000-0000-0000-adce-000000000001" +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            containers: -          - ident: "00000000-0000-0000-adce-000000000001" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 -          - ident: "00000000-0000-0000-adce-000000000001" +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            releases: -          - ident: "00000000-0000-0000-adce-000000000001" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 -          - ident: "00000000-0000-0000-adce-000000000001" +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          description: "description" -        editor_id: 6 -        id: 0 +        editor_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        id: "q3nouwy3nnbsvo3h5klxsx4a7y"        edit: -        ident: "00000000-0000-0000-adce-000000000001" +        ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}" -        redirect_ident: "00000000-0000-0000-adce-000000000002" -        editgroup_id: 16 -        revision: 42 +        redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        changelog_entry:          editgroup:            extra: "{}"            edits:              works: -            - ident: "00000000-0000-0000-adce-000000000001" +            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}" -              redirect_ident: "00000000-0000-0000-adce-000000000002" -              editgroup_id: 16 -              revision: 42 -            - ident: "00000000-0000-0000-adce-000000000001" +              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}" -              redirect_ident: "00000000-0000-0000-adce-000000000002" -              editgroup_id: 16 -              revision: 42 +              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              creators: -            - ident: "00000000-0000-0000-adce-000000000001" +            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}" -              redirect_ident: "00000000-0000-0000-adce-000000000002" -              editgroup_id: 16 -              revision: 42 -            - ident: "00000000-0000-0000-adce-000000000001" +              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}" -              redirect_ident: "00000000-0000-0000-adce-000000000002" -              editgroup_id: 16 -              revision: 42 +              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              files: -            - ident: "00000000-0000-0000-adce-000000000001" +            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}" -              redirect_ident: "00000000-0000-0000-adce-000000000002" -              editgroup_id: 16 -              revision: 42 -            - ident: "00000000-0000-0000-adce-000000000001" +              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}" -              redirect_ident: "00000000-0000-0000-adce-000000000002" -              editgroup_id: 16 -              revision: 42 +              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              containers: -            - ident: "00000000-0000-0000-adce-000000000001" +            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}" -              redirect_ident: "00000000-0000-0000-adce-000000000002" -              editgroup_id: 16 -              revision: 42 -            - ident: "00000000-0000-0000-adce-000000000001" +              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}" -              redirect_ident: "00000000-0000-0000-adce-000000000002" -              editgroup_id: 16 -              revision: 42 +              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"              releases: -            - ident: "00000000-0000-0000-adce-000000000001" +            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}" -              redirect_ident: "00000000-0000-0000-adce-000000000002" -              editgroup_id: 16 -              revision: 42 -            - ident: "00000000-0000-0000-adce-000000000001" +              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +            - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"                edit_id: 847                extra: "{}" -              redirect_ident: "00000000-0000-0000-adce-000000000002" -              editgroup_id: 16 -              revision: 42 +              redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +              editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +              revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            description: "description" -          editor_id: 6 -          id: 0 -        index: 1 -        editgroup_id: 5 +          editor_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        index: 0 +        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y"          timestamp: "2000-01-23T04:56:07.000+00:00"      upperCaseName: "ENTITY_HISTORY_ENTRY"    entity_edit: @@ -2429,37 +2417,39 @@ definitions:          example: 847        ident:          type: "string" -        example: "00000000-0000-0000-adce-000000000001" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        revision: -        type: "integer" -        format: "int64" -        example: 42 +        type: "string" +        example: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        redirect_ident:          type: "string" -        example: "00000000-0000-0000-adce-000000000002" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        editgroup_id: -        type: "integer" -        format: "int64" -        example: 16 +        type: "string" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        extra:          type: "object"      example: -      ident: "00000000-0000-0000-adce-000000000001" +      ident: "q3nouwy3nnbsvo3h5klxsx4a7y"        edit_id: 847        extra: "{}" -      redirect_ident: "00000000-0000-0000-adce-000000000002" -      editgroup_id: 16 -      revision: 42 +      redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +      editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +      revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"      upperCaseName: "ENTITY_EDIT"    editor:      type: "object"      required:      - "username"      properties: +      id: +        type: "string" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        username:          type: "string"          example: "zerocool93"      example: +      id: "q3nouwy3nnbsvo3h5klxsx4a7y"        username: "zerocool93"      upperCaseName: "EDITOR"    editgroup: @@ -2468,11 +2458,11 @@ definitions:      - "editor_id"      properties:        id: -        type: "integer" -        format: "int64" +        type: "string" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        editor_id: -        type: "integer" -        format: "int64" +        type: "string" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        description:          type: "string"        extra: @@ -2483,73 +2473,73 @@ definitions:        extra: "{}"        edits:          works: -        - ident: "00000000-0000-0000-adce-000000000001" +        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}" -          redirect_ident: "00000000-0000-0000-adce-000000000002" -          editgroup_id: 16 -          revision: 42 -        - ident: "00000000-0000-0000-adce-000000000001" +          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}" -          redirect_ident: "00000000-0000-0000-adce-000000000002" -          editgroup_id: 16 -          revision: 42 +          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          creators: -        - ident: "00000000-0000-0000-adce-000000000001" +        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}" -          redirect_ident: "00000000-0000-0000-adce-000000000002" -          editgroup_id: 16 -          revision: 42 -        - ident: "00000000-0000-0000-adce-000000000001" +          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}" -          redirect_ident: "00000000-0000-0000-adce-000000000002" -          editgroup_id: 16 -          revision: 42 +          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          files: -        - ident: "00000000-0000-0000-adce-000000000001" +        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}" -          redirect_ident: "00000000-0000-0000-adce-000000000002" -          editgroup_id: 16 -          revision: 42 -        - ident: "00000000-0000-0000-adce-000000000001" +          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}" -          redirect_ident: "00000000-0000-0000-adce-000000000002" -          editgroup_id: 16 -          revision: 42 +          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          containers: -        - ident: "00000000-0000-0000-adce-000000000001" +        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}" -          redirect_ident: "00000000-0000-0000-adce-000000000002" -          editgroup_id: 16 -          revision: 42 -        - ident: "00000000-0000-0000-adce-000000000001" +          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}" -          redirect_ident: "00000000-0000-0000-adce-000000000002" -          editgroup_id: 16 -          revision: 42 +          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          releases: -        - ident: "00000000-0000-0000-adce-000000000001" +        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}" -          redirect_ident: "00000000-0000-0000-adce-000000000002" -          editgroup_id: 16 -          revision: 42 -        - ident: "00000000-0000-0000-adce-000000000001" +          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +        - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"            edit_id: 847            extra: "{}" -          redirect_ident: "00000000-0000-0000-adce-000000000002" -          editgroup_id: 16 -          revision: 42 +          redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +          editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +          revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        description: "description" -      editor_id: 6 -      id: 0 +      editor_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +      id: "q3nouwy3nnbsvo3h5klxsx4a7y"      upperCaseName: "EDITGROUP"    changelog_entry:      type: "object" @@ -2562,8 +2552,8 @@ definitions:          type: "integer"          format: "int64"        editgroup_id: -        type: "integer" -        format: "int64" +        type: "string" +        example: "q3nouwy3nnbsvo3h5klxsx4a7y"        timestamp:          type: "string"          format: "date-time" @@ -2574,75 +2564,75 @@ definitions:          extra: "{}"          edits:            works: -          - ident: "00000000-0000-0000-adce-000000000001" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 -          - ident: "00000000-0000-0000-adce-000000000001" +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            creators: -          - ident: "00000000-0000-0000-adce-000000000001" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 -          - ident: "00000000-0000-0000-adce-000000000001" +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            files: -          - ident: "00000000-0000-0000-adce-000000000001" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 -          - ident: "00000000-0000-0000-adce-000000000001" +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            containers: -          - ident: "00000000-0000-0000-adce-000000000001" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 -          - ident: "00000000-0000-0000-adce-000000000001" +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"            releases: -          - ident: "00000000-0000-0000-adce-000000000001" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 -          - ident: "00000000-0000-0000-adce-000000000001" +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +          - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"              edit_id: 847              extra: "{}" -            redirect_ident: "00000000-0000-0000-adce-000000000002" -            editgroup_id: 16 -            revision: 42 +            redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +            editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +            revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"          description: "description" -        editor_id: 6 -        id: 0 -      index: 1 -      editgroup_id: 5 +        editor_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        id: "q3nouwy3nnbsvo3h5klxsx4a7y" +      index: 0 +      editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y"        timestamp: "2000-01-23T04:56:07.000+00:00"      upperCaseName: "CHANGELOG_ENTRY"    release_ref: @@ -2727,70 +2717,70 @@ definitions:            $ref: "#/definitions/entity_edit"      example:        works: -      - ident: "00000000-0000-0000-adce-000000000001" +      - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}" -        redirect_ident: "00000000-0000-0000-adce-000000000002" -        editgroup_id: 16 -        revision: 42 -      - ident: "00000000-0000-0000-adce-000000000001" +        redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +      - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}" -        redirect_ident: "00000000-0000-0000-adce-000000000002" -        editgroup_id: 16 -        revision: 42 +        redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        creators: -      - ident: "00000000-0000-0000-adce-000000000001" +      - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}" -        redirect_ident: "00000000-0000-0000-adce-000000000002" -        editgroup_id: 16 -        revision: 42 -      - ident: "00000000-0000-0000-adce-000000000001" +        redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +      - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}" -        redirect_ident: "00000000-0000-0000-adce-000000000002" -        editgroup_id: 16 -        revision: 42 +        redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        files: -      - ident: "00000000-0000-0000-adce-000000000001" +      - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}" -        redirect_ident: "00000000-0000-0000-adce-000000000002" -        editgroup_id: 16 -        revision: 42 -      - ident: "00000000-0000-0000-adce-000000000001" +        redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +      - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}" -        redirect_ident: "00000000-0000-0000-adce-000000000002" -        editgroup_id: 16 -        revision: 42 +        redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        containers: -      - ident: "00000000-0000-0000-adce-000000000001" +      - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}" -        redirect_ident: "00000000-0000-0000-adce-000000000002" -        editgroup_id: 16 -        revision: 42 -      - ident: "00000000-0000-0000-adce-000000000001" +        redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +      - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}" -        redirect_ident: "00000000-0000-0000-adce-000000000002" -        editgroup_id: 16 -        revision: 42 +        redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"        releases: -      - ident: "00000000-0000-0000-adce-000000000001" +      - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}" -        redirect_ident: "00000000-0000-0000-adce-000000000002" -        editgroup_id: 16 -        revision: 42 -      - ident: "00000000-0000-0000-adce-000000000001" +        redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe" +      - ident: "q3nouwy3nnbsvo3h5klxsx4a7y"          edit_id: 847          extra: "{}" -        redirect_ident: "00000000-0000-0000-adce-000000000002" -        editgroup_id: 16 -        revision: 42 +        redirect_ident: "q3nouwy3nnbsvo3h5klxsx4a7y" +        editgroup_id: "q3nouwy3nnbsvo3h5klxsx4a7y" +        revision: "86daea5b-1b6b-432a-bb67-ea97795f80fe"      upperCaseName: "EDITGROUP_EDITS"  x-entity-props:    state: @@ -2802,18 +2792,16 @@ x-entity-props:      - "deleted"    ident:      type: "string" -    example: "00000000-0000-0000-adce-000000000001" +    example: "q3nouwy3nnbsvo3h5klxsx4a7y"    revision: -    type: "integer" -    example: 42 -    format: "int64" +    type: "string" +    example: "86daea5b-1b6b-432a-bb67-ea97795f80fe"    redirect:      type: "string" -    example: "00000000-0000-0000-adce-000000000002" +    example: "q3nouwy3nnbsvo3h5klxsx4a7y"    editgroup_id: -    type: "integer" -    example: 16 -    format: "int64" +    type: "string" +    example: "q3nouwy3nnbsvo3h5klxsx4a7y"    extra:      type: "object"      additionalProperties: {} diff --git a/rust/fatcat-api/examples/client.rs b/rust/fatcat-api/examples/client.rs index c79110d9..3fa6508e 100644 --- a/rust/fatcat-api/examples/client.rs +++ b/rust/fatcat-api/examples/client.rs @@ -83,7 +83,7 @@ fn main() {      match matches.value_of("operation") {          Some("AcceptEditgroup") => { -            let result = client.accept_editgroup(789).wait(); +            let result = client.accept_editgroup("id_example".to_string()).wait();              println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("<none>")));          } @@ -179,17 +179,17 @@ fn main() {          }          Some("GetEditgroup") => { -            let result = client.get_editgroup(789).wait(); +            let result = client.get_editgroup("id_example".to_string()).wait();              println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("<none>")));          }          Some("GetEditor") => { -            let result = client.get_editor("username_example".to_string()).wait(); +            let result = client.get_editor("id_example".to_string()).wait();              println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("<none>")));          }          Some("GetEditorChangelog") => { -            let result = client.get_editor_changelog("username_example".to_string()).wait(); +            let result = client.get_editor_changelog("id_example".to_string()).wait();              println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("<none>")));          } diff --git a/rust/fatcat-api/examples/server_lib/server.rs b/rust/fatcat-api/examples/server_lib/server.rs index 76d7d13c..608d715f 100644 --- a/rust/fatcat-api/examples/server_lib/server.rs +++ b/rust/fatcat-api/examples/server_lib/server.rs @@ -20,9 +20,9 @@ use fatcat::{AcceptEditgroupResponse, Api, ApiError, Context, CreateContainerBat  pub struct Server;  impl Api for Server { -    fn accept_editgroup(&self, id: i64, context: &Context) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send> { +    fn accept_editgroup(&self, id: String, context: &Context) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send> {          let context = context.clone(); -        println!("accept_editgroup({}) - X-Span-ID: {:?}", id, context.x_span_id.unwrap_or(String::from("<none>")).clone()); +        println!("accept_editgroup(\"{}\") - X-Span-ID: {:?}", id, context.x_span_id.unwrap_or(String::from("<none>")).clone());          Box::new(futures::failed("Generic failure".into()))      } @@ -148,21 +148,21 @@ impl Api for Server {          Box::new(futures::failed("Generic failure".into()))      } -    fn get_editgroup(&self, id: i64, context: &Context) -> Box<Future<Item = GetEditgroupResponse, Error = ApiError> + Send> { +    fn get_editgroup(&self, id: String, context: &Context) -> Box<Future<Item = GetEditgroupResponse, Error = ApiError> + Send> {          let context = context.clone(); -        println!("get_editgroup({}) - X-Span-ID: {:?}", id, context.x_span_id.unwrap_or(String::from("<none>")).clone()); +        println!("get_editgroup(\"{}\") - X-Span-ID: {:?}", id, context.x_span_id.unwrap_or(String::from("<none>")).clone());          Box::new(futures::failed("Generic failure".into()))      } -    fn get_editor(&self, username: String, context: &Context) -> Box<Future<Item = GetEditorResponse, Error = ApiError> + Send> { +    fn get_editor(&self, id: String, context: &Context) -> Box<Future<Item = GetEditorResponse, Error = ApiError> + Send> {          let context = context.clone(); -        println!("get_editor(\"{}\") - X-Span-ID: {:?}", username, context.x_span_id.unwrap_or(String::from("<none>")).clone()); +        println!("get_editor(\"{}\") - X-Span-ID: {:?}", id, context.x_span_id.unwrap_or(String::from("<none>")).clone());          Box::new(futures::failed("Generic failure".into()))      } -    fn get_editor_changelog(&self, username: String, context: &Context) -> Box<Future<Item = GetEditorChangelogResponse, Error = ApiError> + Send> { +    fn get_editor_changelog(&self, id: String, context: &Context) -> Box<Future<Item = GetEditorChangelogResponse, Error = ApiError> + Send> {          let context = context.clone(); -        println!("get_editor_changelog(\"{}\") - X-Span-ID: {:?}", username, context.x_span_id.unwrap_or(String::from("<none>")).clone()); +        println!("get_editor_changelog(\"{}\") - X-Span-ID: {:?}", id, context.x_span_id.unwrap_or(String::from("<none>")).clone());          Box::new(futures::failed("Generic failure".into()))      } diff --git a/rust/fatcat-api/src/client.rs b/rust/fatcat-api/src/client.rs index b68c43d2..b785adab 100644 --- a/rust/fatcat-api/src/client.rs +++ b/rust/fatcat-api/src/client.rs @@ -163,7 +163,7 @@ impl Client {  }  impl Api for Client { -    fn accept_editgroup(&self, param_id: i64, context: &Context) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send> { +    fn accept_editgroup(&self, param_id: String, context: &Context) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send> {          let url = format!("{}/v0/editgroup/{id}/accept", self.base_path, id = utf8_percent_encode(¶m_id.to_string(), PATH_SEGMENT_ENCODE_SET));          let hyper_client = (self.hyper_client)(); @@ -1349,7 +1349,7 @@ impl Api for Client {          Box::new(futures::done(result))      } -    fn get_editgroup(&self, param_id: i64, context: &Context) -> Box<Future<Item = GetEditgroupResponse, Error = ApiError> + Send> { +    fn get_editgroup(&self, param_id: String, context: &Context) -> Box<Future<Item = GetEditgroupResponse, Error = ApiError> + Send> {          let url = format!("{}/v0/editgroup/{id}", self.base_path, id = utf8_percent_encode(¶m_id.to_string(), PATH_SEGMENT_ENCODE_SET));          let hyper_client = (self.hyper_client)(); @@ -1409,12 +1409,8 @@ impl Api for Client {          Box::new(futures::done(result))      } -    fn get_editor(&self, param_username: String, context: &Context) -> Box<Future<Item = GetEditorResponse, Error = ApiError> + Send> { -        let url = format!( -            "{}/v0/editor/{username}", -            self.base_path, -            username = utf8_percent_encode(¶m_username.to_string(), PATH_SEGMENT_ENCODE_SET) -        ); +    fn get_editor(&self, param_id: String, context: &Context) -> Box<Future<Item = GetEditorResponse, Error = ApiError> + Send> { +        let url = format!("{}/v0/editor/{id}", self.base_path, id = utf8_percent_encode(¶m_id.to_string(), PATH_SEGMENT_ENCODE_SET));          let hyper_client = (self.hyper_client)();          let request = hyper_client.request(hyper::method::Method::Get, &url); @@ -1466,12 +1462,8 @@ impl Api for Client {          Box::new(futures::done(result))      } -    fn get_editor_changelog(&self, param_username: String, context: &Context) -> Box<Future<Item = GetEditorChangelogResponse, Error = ApiError> + Send> { -        let url = format!( -            "{}/v0/editor/{username}/changelog", -            self.base_path, -            username = utf8_percent_encode(¶m_username.to_string(), PATH_SEGMENT_ENCODE_SET) -        ); +    fn get_editor_changelog(&self, param_id: String, context: &Context) -> Box<Future<Item = GetEditorChangelogResponse, Error = ApiError> + Send> { +        let url = format!("{}/v0/editor/{id}/changelog", self.base_path, id = utf8_percent_encode(¶m_id.to_string(), PATH_SEGMENT_ENCODE_SET));          let hyper_client = (self.hyper_client)();          let request = hyper_client.request(hyper::method::Method::Get, &url); diff --git a/rust/fatcat-api/src/lib.rs b/rust/fatcat-api/src/lib.rs index ce5674cd..47d23d04 100644 --- a/rust/fatcat-api/src/lib.rs +++ b/rust/fatcat-api/src/lib.rs @@ -438,7 +438,7 @@ pub enum LookupReleaseResponse {  /// API  pub trait Api { -    fn accept_editgroup(&self, id: i64, context: &Context) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send>; +    fn accept_editgroup(&self, id: String, context: &Context) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send>;      fn create_container(&self, entity: models::ContainerEntity, context: &Context) -> Box<Future<Item = CreateContainerResponse, Error = ApiError> + Send>; @@ -476,11 +476,11 @@ pub trait Api {      fn get_creator_releases(&self, id: String, context: &Context) -> Box<Future<Item = GetCreatorReleasesResponse, Error = ApiError> + Send>; -    fn get_editgroup(&self, id: i64, context: &Context) -> Box<Future<Item = GetEditgroupResponse, Error = ApiError> + Send>; +    fn get_editgroup(&self, id: String, context: &Context) -> Box<Future<Item = GetEditgroupResponse, Error = ApiError> + Send>; -    fn get_editor(&self, username: String, context: &Context) -> Box<Future<Item = GetEditorResponse, Error = ApiError> + Send>; +    fn get_editor(&self, id: String, context: &Context) -> Box<Future<Item = GetEditorResponse, Error = ApiError> + Send>; -    fn get_editor_changelog(&self, username: String, context: &Context) -> Box<Future<Item = GetEditorChangelogResponse, Error = ApiError> + Send>; +    fn get_editor_changelog(&self, id: String, context: &Context) -> Box<Future<Item = GetEditorChangelogResponse, Error = ApiError> + Send>;      fn get_file(&self, id: String, context: &Context) -> Box<Future<Item = GetFileResponse, Error = ApiError> + Send>; @@ -511,7 +511,7 @@ pub trait Api {  /// API without a `Context`  pub trait ApiNoContext { -    fn accept_editgroup(&self, id: i64) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send>; +    fn accept_editgroup(&self, id: String) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send>;      fn create_container(&self, entity: models::ContainerEntity) -> Box<Future<Item = CreateContainerResponse, Error = ApiError> + Send>; @@ -549,11 +549,11 @@ pub trait ApiNoContext {      fn get_creator_releases(&self, id: String) -> Box<Future<Item = GetCreatorReleasesResponse, Error = ApiError> + Send>; -    fn get_editgroup(&self, id: i64) -> Box<Future<Item = GetEditgroupResponse, Error = ApiError> + Send>; +    fn get_editgroup(&self, id: String) -> Box<Future<Item = GetEditgroupResponse, Error = ApiError> + Send>; -    fn get_editor(&self, username: String) -> Box<Future<Item = GetEditorResponse, Error = ApiError> + Send>; +    fn get_editor(&self, id: String) -> Box<Future<Item = GetEditorResponse, Error = ApiError> + Send>; -    fn get_editor_changelog(&self, username: String) -> Box<Future<Item = GetEditorChangelogResponse, Error = ApiError> + Send>; +    fn get_editor_changelog(&self, id: String) -> Box<Future<Item = GetEditorChangelogResponse, Error = ApiError> + Send>;      fn get_file(&self, id: String) -> Box<Future<Item = GetFileResponse, Error = ApiError> + Send>; @@ -598,7 +598,7 @@ impl<'a, T: Api + Sized> ContextWrapperExt<'a> for T {  }  impl<'a, T: Api> ApiNoContext for ContextWrapper<'a, T> { -    fn accept_editgroup(&self, id: i64) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send> { +    fn accept_editgroup(&self, id: String) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send> {          self.api().accept_editgroup(id, &self.context())      } @@ -674,16 +674,16 @@ impl<'a, T: Api> ApiNoContext for ContextWrapper<'a, T> {          self.api().get_creator_releases(id, &self.context())      } -    fn get_editgroup(&self, id: i64) -> Box<Future<Item = GetEditgroupResponse, Error = ApiError> + Send> { +    fn get_editgroup(&self, id: String) -> Box<Future<Item = GetEditgroupResponse, Error = ApiError> + Send> {          self.api().get_editgroup(id, &self.context())      } -    fn get_editor(&self, username: String) -> Box<Future<Item = GetEditorResponse, Error = ApiError> + Send> { -        self.api().get_editor(username, &self.context()) +    fn get_editor(&self, id: String) -> Box<Future<Item = GetEditorResponse, Error = ApiError> + Send> { +        self.api().get_editor(id, &self.context())      } -    fn get_editor_changelog(&self, username: String) -> Box<Future<Item = GetEditorChangelogResponse, Error = ApiError> + Send> { -        self.api().get_editor_changelog(username, &self.context()) +    fn get_editor_changelog(&self, id: String) -> Box<Future<Item = GetEditorChangelogResponse, Error = ApiError> + Send> { +        self.api().get_editor_changelog(id, &self.context())      }      fn get_file(&self, id: String) -> Box<Future<Item = GetFileResponse, Error = ApiError> + Send> { diff --git a/rust/fatcat-api/src/models.rs b/rust/fatcat-api/src/models.rs index cd18469c..4ecc180c 100644 --- a/rust/fatcat-api/src/models.rs +++ b/rust/fatcat-api/src/models.rs @@ -15,7 +15,7 @@ pub struct ChangelogEntry {      pub index: i64,      #[serde(rename = "editgroup_id")] -    pub editgroup_id: i64, +    pub editgroup_id: String,      #[serde(rename = "timestamp")]      pub timestamp: chrono::DateTime<chrono::Utc>, @@ -26,7 +26,7 @@ pub struct ChangelogEntry {  }  impl ChangelogEntry { -    pub fn new(index: i64, editgroup_id: i64, timestamp: chrono::DateTime<chrono::Utc>) -> ChangelogEntry { +    pub fn new(index: i64, editgroup_id: String, timestamp: chrono::DateTime<chrono::Utc>) -> ChangelogEntry {          ChangelogEntry {              index: index,              editgroup_id: editgroup_id, @@ -63,7 +63,7 @@ pub struct ContainerEntity {      #[serde(rename = "editgroup_id")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub editgroup_id: Option<i64>, +    pub editgroup_id: Option<String>,      #[serde(rename = "redirect")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -71,7 +71,7 @@ pub struct ContainerEntity {      #[serde(rename = "revision")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub revision: Option<i64>, +    pub revision: Option<String>,      #[serde(rename = "ident")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -129,7 +129,7 @@ pub struct CreatorEntity {      #[serde(rename = "revision")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub revision: Option<i64>, +    pub revision: Option<String>,      #[serde(rename = "redirect")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -137,7 +137,7 @@ pub struct CreatorEntity {      #[serde(rename = "editgroup_id")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub editgroup_id: Option<i64>, +    pub editgroup_id: Option<String>,      #[serde(rename = "extra")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -165,10 +165,10 @@ impl CreatorEntity {  pub struct Editgroup {      #[serde(rename = "id")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub id: Option<i64>, +    pub id: Option<String>,      #[serde(rename = "editor_id")] -    pub editor_id: i64, +    pub editor_id: String,      #[serde(rename = "description")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -184,7 +184,7 @@ pub struct Editgroup {  }  impl Editgroup { -    pub fn new(editor_id: i64) -> Editgroup { +    pub fn new(editor_id: String) -> Editgroup {          Editgroup {              id: None,              editor_id: editor_id, @@ -232,13 +232,17 @@ impl EditgroupEdits {  #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]  pub struct Editor { +    #[serde(rename = "id")] +    #[serde(skip_serializing_if = "Option::is_none")] +    pub id: Option<String>, +      #[serde(rename = "username")]      pub username: String,  }  impl Editor {      pub fn new(username: String) -> Editor { -        Editor { username: username } +        Editor { id: None, username: username }      }  } @@ -252,14 +256,14 @@ pub struct EntityEdit {      #[serde(rename = "revision")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub revision: Option<i64>, +    pub revision: Option<String>,      #[serde(rename = "redirect_ident")]      #[serde(skip_serializing_if = "Option::is_none")]      pub redirect_ident: Option<String>,      #[serde(rename = "editgroup_id")] -    pub editgroup_id: i64, +    pub editgroup_id: String,      #[serde(rename = "extra")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -267,7 +271,7 @@ pub struct EntityEdit {  }  impl EntityEdit { -    pub fn new(edit_id: i64, ident: String, editgroup_id: i64) -> EntityEdit { +    pub fn new(edit_id: i64, ident: String, editgroup_id: String) -> EntityEdit {          EntityEdit {              edit_id: edit_id,              ident: ident, @@ -349,7 +353,7 @@ pub struct FileEntity {      #[serde(rename = "editgroup_id")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub editgroup_id: Option<i64>, +    pub editgroup_id: Option<String>,      #[serde(rename = "redirect")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -357,7 +361,7 @@ pub struct FileEntity {      #[serde(rename = "revision")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub revision: Option<i64>, +    pub revision: Option<String>,      #[serde(rename = "ident")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -492,7 +496,7 @@ pub struct ReleaseEntity {      #[serde(rename = "revision")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub revision: Option<i64>, +    pub revision: Option<String>,      #[serde(rename = "redirect")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -500,7 +504,7 @@ pub struct ReleaseEntity {      #[serde(rename = "editgroup_id")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub editgroup_id: Option<i64>, +    pub editgroup_id: Option<String>,      #[serde(rename = "extra")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -622,7 +626,7 @@ pub struct WorkEntity {      #[serde(rename = "editgroup_id")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub editgroup_id: Option<i64>, +    pub editgroup_id: Option<String>,      #[serde(rename = "redirect")]      #[serde(skip_serializing_if = "Option::is_none")] @@ -630,7 +634,7 @@ pub struct WorkEntity {      #[serde(rename = "revision")]      #[serde(skip_serializing_if = "Option::is_none")] -    pub revision: Option<i64>, +    pub revision: Option<String>,      #[serde(rename = "ident")]      #[serde(skip_serializing_if = "Option::is_none")] diff --git a/rust/fatcat-api/src/server.rs b/rust/fatcat-api/src/server.rs index 35b31691..e4e0bc1d 100644 --- a/rust/fatcat-api/src/server.rs +++ b/rust/fatcat-api/src/server.rs @@ -2002,7 +2002,7 @@ where      let api_clone = api.clone();      router.get( -        "/v0/editor/:username", +        "/v0/editor/:id",          move |req: &mut Request| {              let mut context = Context::default(); @@ -2016,20 +2016,20 @@ where                  context.authorization = req.extensions.remove::<Authorization>();                  // Path parameters -                let param_username = { +                let param_id = {                      let param = req.extensions                          .get::<Router>()                          .ok_or_else(|| Response::with((status::InternalServerError, "An internal error occurred".to_string())))? -                        .find("username") -                        .ok_or_else(|| Response::with((status::BadRequest, "Missing path parameter username".to_string())))?; +                        .find("id") +                        .ok_or_else(|| Response::with((status::BadRequest, "Missing path parameter id".to_string())))?;                      percent_decode(param.as_bytes())                          .decode_utf8()                          .map_err(|_| Response::with((status::BadRequest, format!("Couldn't percent-decode path parameter as UTF-8: {}", param))))?                          .parse() -                        .map_err(|e| Response::with((status::BadRequest, format!("Couldn't parse path parameter username: {}", e))))? +                        .map_err(|e| Response::with((status::BadRequest, format!("Couldn't parse path parameter id: {}", e))))?                  }; -                match api.get_editor(param_username, context).wait() { +                match api.get_editor(param_id, context).wait() {                      Ok(rsp) => match rsp {                          GetEditorResponse::FoundEditor(body) => {                              let body_string = serde_json::to_string(&body).expect("impossible to fail to serialize"); @@ -2080,7 +2080,7 @@ where      let api_clone = api.clone();      router.get( -        "/v0/editor/:username/changelog", +        "/v0/editor/:id/changelog",          move |req: &mut Request| {              let mut context = Context::default(); @@ -2094,20 +2094,20 @@ where                  context.authorization = req.extensions.remove::<Authorization>();                  // Path parameters -                let param_username = { +                let param_id = {                      let param = req.extensions                          .get::<Router>()                          .ok_or_else(|| Response::with((status::InternalServerError, "An internal error occurred".to_string())))? -                        .find("username") -                        .ok_or_else(|| Response::with((status::BadRequest, "Missing path parameter username".to_string())))?; +                        .find("id") +                        .ok_or_else(|| Response::with((status::BadRequest, "Missing path parameter id".to_string())))?;                      percent_decode(param.as_bytes())                          .decode_utf8()                          .map_err(|_| Response::with((status::BadRequest, format!("Couldn't percent-decode path parameter as UTF-8: {}", param))))?                          .parse() -                        .map_err(|e| Response::with((status::BadRequest, format!("Couldn't parse path parameter username: {}", e))))? +                        .map_err(|e| Response::with((status::BadRequest, format!("Couldn't parse path parameter id: {}", e))))?                  }; -                match api.get_editor_changelog(param_username, context).wait() { +                match api.get_editor_changelog(param_id, context).wait() {                      Ok(rsp) => match rsp {                          GetEditorChangelogResponse::FoundMergedChanges(body) => {                              let body_string = serde_json::to_string(&body).expect("impossible to fail to serialize"); | 
