From cd5065572cf00f1c62395da622b3b790c0e2ec60 Mon Sep 17 00:00:00 2001 From: psychobunny Date: Tue, 7 Apr 2020 16:17:00 -0400 Subject: [PATCH] feat: moved component specs into separate files --- .../components/schemas/Breadcrumbs.yaml | 12 + .../components/schemas/CommonProps.yaml | 94 +++ .../components/schemas/Pagination.yaml | 44 ++ .../components/schemas/UserObject.yaml | 394 ++++++++++ public/openapi/read.yaml | 692 ++---------------- 5 files changed, 617 insertions(+), 619 deletions(-) create mode 100644 public/openapi/components/schemas/Breadcrumbs.yaml create mode 100644 public/openapi/components/schemas/CommonProps.yaml create mode 100644 public/openapi/components/schemas/Pagination.yaml create mode 100644 public/openapi/components/schemas/UserObject.yaml diff --git a/public/openapi/components/schemas/Breadcrumbs.yaml b/public/openapi/components/schemas/Breadcrumbs.yaml new file mode 100644 index 0000000000..ab37c6f297 --- /dev/null +++ b/public/openapi/components/schemas/Breadcrumbs.yaml @@ -0,0 +1,12 @@ +Breadcrumbs: + type: object + properties: + breadcrumbs: + type: array + items: + type: object + properties: + text: + type: string + url: + type: string \ No newline at end of file diff --git a/public/openapi/components/schemas/CommonProps.yaml b/public/openapi/components/schemas/CommonProps.yaml new file mode 100644 index 0000000000..55be74e6c6 --- /dev/null +++ b/public/openapi/components/schemas/CommonProps.yaml @@ -0,0 +1,94 @@ +CommonProps: + type: object + properties: + loggedIn: + type: boolean + description: true if user is logged in, false otherwise + relative_path: + type: string + description: | + if NodeBB is installed in a subfolder this becomes the path to the forum. For example if your forum url is + mycompany.com/community then relative_path will be /community. If your forum url is myforum.com then relative path will be empty string. + template: + type: object + properties: + name: + type: string + additionalProperties: + type: object + url: + type: string + description: base url of the current page, does not include query params + bodyClass: + type: string + description: the css class string that is appended to the body element + _header: + type: object + description: list of meta and link tags that are added to the head element + properties: + tags: + type: object + properties: + meta: + type: array + items: + type: object + properties: + name: + type: string + content: + type: string + noEscape: + type: boolean + property: + type: string + required: + - name + - content + - noEscape + - property + link: + type: array + items: + type: object + properties: + rel: + type: string + type: + type: string + href: + type: string + title: + type: string + sizes: + type: string + required: + - rel + - href + - type + - sizes + widgets: + type: object + description: rendered widgets + properties: + header: + type: array + items: + type: object + properties: + html: + type: string + sidebar: + type: array + items: + type: object + properties: + html: + type: string + footer: + type: array + items: + type: object + properties: + html: + type: string \ No newline at end of file diff --git a/public/openapi/components/schemas/Pagination.yaml b/public/openapi/components/schemas/Pagination.yaml new file mode 100644 index 0000000000..2b284015ae --- /dev/null +++ b/public/openapi/components/schemas/Pagination.yaml @@ -0,0 +1,44 @@ +Pagination: + type: object + properties: + pagination: + type: object + properties: + prev: + type: object + properties: + page: + type: number + active: + type: boolean + next: + type: object + properties: + page: + type: number + active: + type: boolean + first: + type: object + properties: + page: + type: number + active: + type: boolean + last: + type: object + properties: + page: + type: number + active: + type: boolean + rel: + type: array + items: {} + pages: + type: array + items: {} + currentPage: + type: number + pageCount: + type: number \ No newline at end of file diff --git a/public/openapi/components/schemas/UserObject.yaml b/public/openapi/components/schemas/UserObject.yaml new file mode 100644 index 0000000000..2dbe6e6d17 --- /dev/null +++ b/public/openapi/components/schemas/UserObject.yaml @@ -0,0 +1,394 @@ +UserObject: + type: object + properties: + uid: + type: number + description: A user identifier + example: 1 + username: + type: string + description: A friendly name for a given user account + example: Dragon Fruit + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + example: dragon-fruit + email: + type: string + description: Email address associated with the user account + example: dragonfruit@example.org + 'email:confirmed': + type: number + description: Whether the user has confirmed their email address or not + example: 1 + joindate: + type: number + description: A UNIX timestamp representing the moment the user's account was created + example: 1585337827953 + lastonline: + type: number + description: A UNIX timestamp representing the moment the user was last recorded online on this site + example: 1585337827953 + picture: + type: string + description: A URL pointing to a picture to be used as the user's avatar + example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80' + fullname: + type: string + example: Mr. Dragon Fruit Jr. + location: + type: string + example: 'Toronto, Canada' + birthday: + type: string + description: A birthdate given in an ISO format parseable by the Date object + example: 03/27/2020 + website: + type: string + example: 'https://example.org' + aboutme: + type: string + example: | + This is a paragraph all about how my life got twist-turned upside-down + and I'd like to take a minute and sit right here, + to tell you all about how I because the administrator of NodeBB + signature: + type: string + example: | + This is an example signature + It can span multiple lines. + uploadedpicture: + type: string + example: /assets/profile/1-profileimg.png + description: 'In almost all cases, defer to "picture" instead. Use this if you need to specifically reference the picture uploaded to the forum.' + profileviews: + type: number + description: The number of times this user's profile has been viewed + example: 1000 + reputation: + type: number + description: The user's reputation score on the forum. Out-of-the-box, users gain/lose reputation points based on upvotes/downvotes, though plugins can alter the logic and criterion for awarding reputation points + example: 100 + postcount: + type: number + example: 1000 + topiccount: + type: number + example: 50 + lastposttime: + type: number + description: A UNIX timestamp representing the moment the user posted last + example: 1585337827953 + banned: + type: number + description: A Boolean representing whether a user is banned or not + example: 0 + 'banned:expire': + type: number + description: A UNIX timestamp representing the moment the ban will be lifted + example: 1585337827953 + status: + type: string + enum: + - online + - offline + - dnd + - away + example: online + flags: + type: number + example: 0 + followercount: + type: number + example: 2 + followingcount: + type: number + example: 5 + 'cover:url': + type: string + example: /assets/profile/1-cover.png + 'cover:position': + type: string + example: 50.0301% 19.2464% + groupTitle: + type: string + example: '["administrators","Staff"]' + groupTitleArray: + type: array + example: + - administrators + - Staff + 'icon:text': + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + example: D + 'icon:bgColor': + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: '#9c27b0' + joindateISO: + type: string + example: '2020-03-27T20:30:36.590Z' + lastonlineISO: + type: string + example: '2020-03-27T20:30:36.590Z' + banned_until: + type: number + description: A UNIX timestamp representing the moment a ban will be lifted + example: 0 + banned_until_readable: + type: string + description: An ISO 8601 formatted date string representing the moment a ban will be lifted, or the words "Not Banned" + example: Not Banned +UserObjectFull: + type: object + properties: + uid: + type: number + description: A user identifier + example: 1 + username: + type: string + description: A friendly name for a given user account + example: Dragon Fruit + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + example: dragon-fruit + email: + type: string + description: Email address associated with the user account + example: dragonfruit@example.org + 'email:confirmed': + type: number + description: Whether the user has confirmed their email address or not + example: 1 + joindate: + type: number + description: A UNIX timestamp representing the moment the user's account was created + example: 1585337827953 + lastonline: + type: number + description: A UNIX timestamp representing the moment the user was last recorded online on this site + example: 1585337827953 + picture: + type: string + description: A URL pointing to a picture to be used as the user's avatar + example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80' + fullname: + type: string + example: Mr. Dragon Fruit Jr. + location: + type: string + example: 'Toronto, Canada' + birthday: + type: string + description: A birthdate given in an ISO format parseable by the Date object + example: 03/27/2020 + website: + type: string + example: 'https://example.org' + aboutme: + type: string + example: | + This is a paragraph all about how my life got twist-turned upside-down + and I'd like to take a minute and sit right here, + to tell you all about how I because the administrator of NodeBB + signature: + type: string + example: | + This is an example signature + It can span multiple lines. + uploadedpicture: + type: string + example: /assets/profile/1-profileimg.png + description: 'In almost all cases, defer to "picture" instead. Use this if you need to specifically reference the picture uploaded to the forum.' + profileviews: + type: number + description: The number of times this user's profile has been viewed + example: 1000 + reputation: + type: number + description: The user's reputation score on the forum. Out-of-the-box, users gain/lose reputation points based on upvotes/downvotes, though plugins can alter the logic and criterion for awarding reputation points + example: 100 + postcount: + type: number + example: 1000 + topiccount: + type: number + example: 50 + lastposttime: + type: number + description: A UNIX timestamp representing the moment the user posted last + example: 1585337827953 + banned: + type: number + description: A Boolean representing whether a user is banned or not + example: 0 + 'banned:expire': + type: number + description: A UNIX timestamp representing the moment the ban will be lifted + example: 1585337827953 + status: + type: string + enum: + - online + - offline + - dnd + - away + example: online + flags: + type: number + example: 0 + followercount: + type: number + example: 2 + followingcount: + type: number + example: 5 + 'cover:url': + type: string + example: /assets/profile/1-cover.png + 'cover:position': + type: string + example: 50.0301% 19.2464% + groupTitle: + type: string + example: '["administrators","Staff"]' + groupTitleArray: + type: array + example: + - administrators + - Staff + 'icon:text': + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + example: D + 'icon:bgColor': + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: '#9c27b0' + joindateISO: + type: string + example: '2020-03-27T20:30:36.590Z' + lastonlineISO: + type: string + example: '2020-03-27T20:30:36.590Z' + banned_until: + type: number + description: A UNIX timestamp representing the moment a ban will be lifted + example: 0 + banned_until_readable: + type: string + description: An ISO 8601 formatted date string representing the moment a ban will be lifted, or the words "Not Banned" + example: Not Banned + aboutmeParsed: + type: string + age: + type: number + emailClass: + type: string + ips: + type: array + items: + type: string + moderationNote: + type: string + isBlocked: + type: boolean + blocksCount: + type: number + yourid: + type: number + theirid: + type: number + isTargetAdmin: + type: boolean + isAdmin: + type: boolean + isGlobalModerator: + type: boolean + isModerator: + type: boolean + isAdminOrGlobalModerator: + type: boolean + isAdminOrGlobalModeratorOrModerator: + type: boolean + isSelfOrAdminOrGlobalModerator: + type: boolean + canEdit: + type: boolean + canBan: + type: boolean + canChangePassword: + type: boolean + isSelf: + type: boolean + isFollowing: + type: boolean + hasPrivateChat: + type: number + showHidden: + type: boolean + groups: + type: array + items: {} + disableSignatures: + type: boolean + reputation:disabled: + type: boolean + downvote:disabled: + type: boolean + profile_links: + type: array + items: + type: object + properties: + id: + type: string + route: + type: string + name: + type: string + visibility: + type: object + properties: + self: + type: boolean + other: + type: boolean + moderator: + type: boolean + globalMod: + type: boolean + admin: + type: boolean + canViewInfo: + type: boolean + public: + type: boolean + icon: + type: string + sso: + type: array + items: + type: object + properties: + associated: + type: boolean + url: + type: string + name: + type: string + icon: + type: string + deauthUrl: + type: string + websiteLink: + type: string + websiteName: + type: string + username:disableEdit: + type: number + email:disableEdit: + type: number \ No newline at end of file diff --git a/public/openapi/read.yaml b/public/openapi/read.yaml index 231fbfd392..eb62a11ae8 100644 --- a/public/openapi/read.yaml +++ b/public/openapi/read.yaml @@ -37,552 +37,6 @@ tags: description: Disparate method of categorizing topics - name: shorthand description: Convenience and utility routes for accessing other part of the API -components: - schemas: - CommonProps: - type: object - properties: - loggedIn: - type: boolean - description: true if user is logged in, false otherwise - relative_path: - type: string - description: | - if NodeBB is installed in a subfolder this becomes the path to the forum. For example if your forum url is - mycompany.com/community then relative_path will be /community. If your forum url is myforum.com then relative path will be empty string. - template: - type: object - properties: - name: - type: string - additionalProperties: - type: object - url: - type: string - description: base url of the current page, does not include query params - bodyClass: - type: string - description: the css class string that is appended to the body element - _header: - type: object - description: list of meta and link tags that are added to the head element - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - required: - - name - - content - - noEscape - - property - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - required: - - rel - - href - - type - - sizes - widgets: - type: object - description: rendered widgets - properties: - header: - type: array - items: - type: object - properties: - html: - type: string - sidebar: - type: array - items: - type: object - properties: - html: - type: string - footer: - type: array - items: - type: object - properties: - html: - type: string - UserObject: - type: object - properties: - uid: - type: number - description: A user identifier - example: 1 - username: - type: string - description: A friendly name for a given user account - example: Dragon Fruit - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - example: dragon-fruit - email: - type: string - description: Email address associated with the user account - example: dragonfruit@example.org - 'email:confirmed': - type: number - description: Whether the user has confirmed their email address or not - example: 1 - joindate: - type: number - description: A UNIX timestamp representing the moment the user's account was created - example: 1585337827953 - lastonline: - type: number - description: A UNIX timestamp representing the moment the user was last recorded online on this site - example: 1585337827953 - picture: - type: string - description: A URL pointing to a picture to be used as the user's avatar - example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80' - fullname: - type: string - example: Mr. Dragon Fruit Jr. - location: - type: string - example: 'Toronto, Canada' - birthday: - type: string - description: A birthdate given in an ISO format parseable by the Date object - example: 03/27/2020 - website: - type: string - example: 'https://example.org' - aboutme: - type: string - example: | - This is a paragraph all about how my life got twist-turned upside-down - and I'd like to take a minute and sit right here, - to tell you all about how I because the administrator of NodeBB - signature: - type: string - example: | - This is an example signature - It can span multiple lines. - uploadedpicture: - type: string - example: /assets/profile/1-profileimg.png - description: 'In almost all cases, defer to "picture" instead. Use this if you need to specifically reference the picture uploaded to the forum.' - profileviews: - type: number - description: The number of times this user's profile has been viewed - example: 1000 - reputation: - type: number - description: The user's reputation score on the forum. Out-of-the-box, users gain/lose reputation points based on upvotes/downvotes, though plugins can alter the logic and criterion for awarding reputation points - example: 100 - postcount: - type: number - example: 1000 - topiccount: - type: number - example: 50 - lastposttime: - type: number - description: A UNIX timestamp representing the moment the user posted last - example: 1585337827953 - banned: - type: number - description: A Boolean representing whether a user is banned or not - example: 0 - 'banned:expire': - type: number - description: A UNIX timestamp representing the moment the ban will be lifted - example: 1585337827953 - status: - type: string - enum: - - online - - offline - - dnd - - away - example: online - flags: - type: number - example: 0 - followercount: - type: number - example: 2 - followingcount: - type: number - example: 5 - 'cover:url': - type: string - example: /assets/profile/1-cover.png - 'cover:position': - type: string - example: 50.0301% 19.2464% - groupTitle: - type: string - example: '["administrators","Staff"]' - groupTitleArray: - type: array - example: - - administrators - - Staff - 'icon:text': - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - example: D - 'icon:bgColor': - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: '#9c27b0' - joindateISO: - type: string - example: '2020-03-27T20:30:36.590Z' - lastonlineISO: - type: string - example: '2020-03-27T20:30:36.590Z' - banned_until: - type: number - description: A UNIX timestamp representing the moment a ban will be lifted - example: 0 - banned_until_readable: - type: string - description: An ISO 8601 formatted date string representing the moment a ban will be lifted, or the words "Not Banned" - example: Not Banned - UserObjectFull: - type: object - properties: - uid: - type: number - description: A user identifier - example: 1 - username: - type: string - description: A friendly name for a given user account - example: Dragon Fruit - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - example: dragon-fruit - email: - type: string - description: Email address associated with the user account - example: dragonfruit@example.org - 'email:confirmed': - type: number - description: Whether the user has confirmed their email address or not - example: 1 - joindate: - type: number - description: A UNIX timestamp representing the moment the user's account was created - example: 1585337827953 - lastonline: - type: number - description: A UNIX timestamp representing the moment the user was last recorded online on this site - example: 1585337827953 - picture: - type: string - description: A URL pointing to a picture to be used as the user's avatar - example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80' - fullname: - type: string - example: Mr. Dragon Fruit Jr. - location: - type: string - example: 'Toronto, Canada' - birthday: - type: string - description: A birthdate given in an ISO format parseable by the Date object - example: 03/27/2020 - website: - type: string - example: 'https://example.org' - aboutme: - type: string - example: | - This is a paragraph all about how my life got twist-turned upside-down - and I'd like to take a minute and sit right here, - to tell you all about how I because the administrator of NodeBB - signature: - type: string - example: | - This is an example signature - It can span multiple lines. - uploadedpicture: - type: string - example: /assets/profile/1-profileimg.png - description: 'In almost all cases, defer to "picture" instead. Use this if you need to specifically reference the picture uploaded to the forum.' - profileviews: - type: number - description: The number of times this user's profile has been viewed - example: 1000 - reputation: - type: number - description: The user's reputation score on the forum. Out-of-the-box, users gain/lose reputation points based on upvotes/downvotes, though plugins can alter the logic and criterion for awarding reputation points - example: 100 - postcount: - type: number - example: 1000 - topiccount: - type: number - example: 50 - lastposttime: - type: number - description: A UNIX timestamp representing the moment the user posted last - example: 1585337827953 - banned: - type: number - description: A Boolean representing whether a user is banned or not - example: 0 - 'banned:expire': - type: number - description: A UNIX timestamp representing the moment the ban will be lifted - example: 1585337827953 - status: - type: string - enum: - - online - - offline - - dnd - - away - example: online - flags: - type: number - example: 0 - followercount: - type: number - example: 2 - followingcount: - type: number - example: 5 - 'cover:url': - type: string - example: /assets/profile/1-cover.png - 'cover:position': - type: string - example: 50.0301% 19.2464% - groupTitle: - type: string - example: '["administrators","Staff"]' - groupTitleArray: - type: array - example: - - administrators - - Staff - 'icon:text': - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - example: D - 'icon:bgColor': - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: '#9c27b0' - joindateISO: - type: string - example: '2020-03-27T20:30:36.590Z' - lastonlineISO: - type: string - example: '2020-03-27T20:30:36.590Z' - banned_until: - type: number - description: A UNIX timestamp representing the moment a ban will be lifted - example: 0 - banned_until_readable: - type: string - description: An ISO 8601 formatted date string representing the moment a ban will be lifted, or the words "Not Banned" - example: Not Banned - aboutmeParsed: - type: string - age: - type: number - emailClass: - type: string - ips: - type: array - items: - type: string - moderationNote: - type: string - isBlocked: - type: boolean - blocksCount: - type: number - yourid: - type: number - theirid: - type: number - isTargetAdmin: - type: boolean - isAdmin: - type: boolean - isGlobalModerator: - type: boolean - isModerator: - type: boolean - isAdminOrGlobalModerator: - type: boolean - isAdminOrGlobalModeratorOrModerator: - type: boolean - isSelfOrAdminOrGlobalModerator: - type: boolean - canEdit: - type: boolean - canBan: - type: boolean - canChangePassword: - type: boolean - isSelf: - type: boolean - isFollowing: - type: boolean - hasPrivateChat: - type: number - showHidden: - type: boolean - groups: - type: array - items: {} - disableSignatures: - type: boolean - reputation:disabled: - type: boolean - downvote:disabled: - type: boolean - profile_links: - type: array - items: - type: object - properties: - id: - type: string - route: - type: string - name: - type: string - visibility: - type: object - properties: - self: - type: boolean - other: - type: boolean - moderator: - type: boolean - globalMod: - type: boolean - admin: - type: boolean - canViewInfo: - type: boolean - public: - type: boolean - icon: - type: string - sso: - type: array - items: - type: object - properties: - associated: - type: boolean - url: - type: string - name: - type: string - icon: - type: string - deauthUrl: - type: string - websiteLink: - type: string - websiteName: - type: string - username:disableEdit: - type: number - email:disableEdit: - type: number - Breadcrumbs: - type: object - properties: - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - Pagination: - type: object - properties: - pagination: - type: object - properties: - prev: - type: object - properties: - page: - type: number - active: - type: boolean - next: - type: object - properties: - page: - type: number - active: - type: boolean - first: - type: object - properties: - page: - type: number - active: - type: boolean - last: - type: object - properties: - page: - type: number - active: - type: boolean - rel: - type: array - items: {} - pages: - type: array - items: {} - currentPage: - type: number - pageCount: - type: number paths: /api/: get: @@ -1084,7 +538,7 @@ paths: type: string teaserPid: type: number - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/post/{pid}/raw": get: tags: @@ -1198,7 +652,7 @@ paths: timestamp: type: number user: - $ref: '#/components/schemas/UserObject' + $ref: 'components/schemas/UserObject.yaml#/UserObject' timestampISO: type: string description: An ISO 8601 formatted date string (complementing `timestamp`) @@ -1970,7 +1424,7 @@ paths: users: type: array items: - $ref: '#/components/schemas/UserObject' + $ref: 'components/schemas/UserObject.yaml#/UserObject' page: type: number pageCount: @@ -2204,7 +1658,7 @@ paths: users: type: array items: - $ref: '#/components/schemas/UserObject' + $ref: 'components/schemas/UserObject.yaml#/UserObject' page: type: number pageCount: @@ -2361,7 +1815,7 @@ paths: users: type: array items: - $ref: '#/components/schemas/UserObject' + $ref: 'components/schemas/UserObject.yaml#/UserObject' page: type: number pageCount: @@ -2788,7 +2242,7 @@ paths: type: array items: allOf: - - $ref: '#/components/schemas/UserObject' + - $ref: 'components/schemas/UserObject.yaml#/UserObject' - type: object properties: isOwner: @@ -4396,7 +3850,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UserObjectFull' + $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' "/api/user/uid/{uid}": get: tags: @@ -4414,7 +3868,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UserObject' + $ref: 'components/schemas/UserObject.yaml#/UserObject' "/api/user/username/{username}": get: tags: @@ -4432,7 +3886,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UserObject' + $ref: 'components/schemas/UserObject.yaml#/UserObject' "/api/user/email/{email}": get: tags: @@ -4450,7 +3904,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UserObject' + $ref: 'components/schemas/UserObject.yaml#/UserObject' "/api/user/uid/{userslug}/export/posts": get: tags: @@ -8851,7 +8305,7 @@ paths: assignees: type: array items: - $ref: '#/components/schemas/UserObject' + $ref: 'components/schemas/UserObject.yaml#/UserObject' type_bool: type: object properties: @@ -12350,7 +11804,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: posts: @@ -12723,7 +12177,7 @@ paths: type: string cover:thumb:url: type: string - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/following": get: tags: @@ -12746,7 +12200,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: title: @@ -12805,9 +12259,9 @@ paths: type: string administrator: type: boolean - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/Pagination' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/followers": get: tags: @@ -12830,7 +12284,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: title: @@ -12889,9 +12343,9 @@ paths: type: string administrator: type: boolean - - $ref: '#/components/schemas/Pagination' - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/categories": get: tags: @@ -12910,7 +12364,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: categories: @@ -12975,7 +12429,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: posts: @@ -13000,9 +12454,9 @@ paths: type: string selected: type: boolean - - $ref: '#/components/schemas/Pagination' - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/topics": get: tags: @@ -13021,7 +12475,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObject' + - $ref: 'components/schemas/UserObject.yaml#/UserObject' - type: object properties: age: @@ -13332,7 +12786,7 @@ paths: type: string selected: type: boolean - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/best": get: tags: @@ -13351,7 +12805,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: posts: @@ -13474,9 +12928,9 @@ paths: type: string selected: type: boolean - - $ref: '#/components/schemas/Pagination' - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/groups": get: tags: @@ -13495,7 +12949,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: title: @@ -13527,7 +12981,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObject' + - $ref: 'components/schemas/UserObject.yaml#/UserObject' - type: object properties: age: @@ -13783,7 +13237,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObject' + - $ref: 'components/schemas/UserObject.yaml#/UserObject' - type: object properties: aboutmeParsed: @@ -14231,8 +13685,8 @@ paths: type: string selected: type: boolean - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/ignored": get: tags: @@ -14251,7 +13705,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: topics: @@ -14276,9 +13730,9 @@ paths: type: string selected: type: boolean - - $ref: '#/components/schemas/Pagination' - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/upvoted": get: tags: @@ -14321,7 +13775,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: maximumSignatureLength: @@ -14359,8 +13813,8 @@ paths: editButtons: type: array items: {} - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/edit/username": get: tags: @@ -14379,15 +13833,15 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: hasPassword: type: boolean title: type: string - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/edit/email": get: tags: @@ -14406,15 +13860,15 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: hasPassword: type: boolean title: type: string - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/edit/password": get: tags: @@ -14433,7 +13887,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: hasPassword: @@ -14444,8 +13898,8 @@ paths: type: number title: type: string - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/info": get: tags: @@ -14464,7 +13918,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: history: @@ -14541,9 +13995,9 @@ paths: items: {} title: type: string - - $ref: '#/components/schemas/Pagination' - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/settings": get: tags: @@ -14562,7 +14016,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: settings: @@ -14849,8 +14303,8 @@ paths: type: number title: type: string - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/uploads": get: tags: @@ -14869,7 +14323,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: uploads: @@ -14879,9 +14333,9 @@ paths: type: boolean title: type: string - - $ref: '#/components/schemas/Pagination' - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/consent": get: tags: @@ -14900,7 +14354,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: gdpr_consent: @@ -14914,8 +14368,8 @@ paths: type: boolean title: type: string - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/blocks": get: tags: @@ -14934,7 +14388,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: users: @@ -14942,9 +14396,9 @@ paths: items: {} title: type: string - - $ref: '#/components/schemas/Pagination' - - $ref: '#/components/schemas/Breadcrumbs' - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/sessions": get: tags: @@ -14963,7 +14417,7 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: sessions: @@ -14980,7 +14434,7 @@ paths: type: string url: type: string - - $ref: '#/components/schemas/CommonProps' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/user/{userslug}/session/{uuid}": delete: tags: