diff --git a/public/openapi/components/responses/400.yaml b/public/openapi/components/responses/400.yaml new file mode 100644 index 000000000000..19ad24825f66 --- /dev/null +++ b/public/openapi/components/responses/400.yaml @@ -0,0 +1,6 @@ +'400': + description: Bad Request + content: + application/json: + schema: + $ref: ../../components/schemas/Error.yaml#/Error \ No newline at end of file diff --git a/public/openapi/components/responses/401.yaml b/public/openapi/components/responses/401.yaml new file mode 100644 index 000000000000..982e0b5ce397 --- /dev/null +++ b/public/openapi/components/responses/401.yaml @@ -0,0 +1,6 @@ +'401': + description: Not Authorized + content: + application/json: + schema: + $ref: ../../components/schemas/Error.yaml#/Error \ No newline at end of file diff --git a/public/openapi/components/responses/403.yaml b/public/openapi/components/responses/403.yaml new file mode 100644 index 000000000000..3fdf549726d3 --- /dev/null +++ b/public/openapi/components/responses/403.yaml @@ -0,0 +1,6 @@ +'403': + description: Forbidden + content: + application/json: + schema: + $ref: ../../components/schemas/Error.yaml#/Error \ No newline at end of file diff --git a/public/openapi/components/responses/404.yaml b/public/openapi/components/responses/404.yaml new file mode 100644 index 000000000000..f5a8a84eded3 --- /dev/null +++ b/public/openapi/components/responses/404.yaml @@ -0,0 +1,6 @@ +'404': + description: Not Found + content: + application/json: + schema: + $ref: ../../components/schemas/Error.yaml#/Error \ No newline at end of file diff --git a/public/openapi/components/responses/426.yaml b/public/openapi/components/responses/426.yaml new file mode 100644 index 000000000000..534da859c398 --- /dev/null +++ b/public/openapi/components/responses/426.yaml @@ -0,0 +1,6 @@ +'426': + description: Upgrade Required + content: + application/json: + schema: + $ref: ../../components/schemas/Error.yaml#/Error \ No newline at end of file diff --git a/public/openapi/components/responses/500.yaml b/public/openapi/components/responses/500.yaml new file mode 100644 index 000000000000..950a79f7072b --- /dev/null +++ b/public/openapi/components/responses/500.yaml @@ -0,0 +1,6 @@ +'500': + description: Internal Server Error + content: + application/json: + schema: + $ref: ../../components/schemas/Error.yaml#/Error \ No newline at end of file diff --git a/public/openapi/components/schemas/CategoryObj.yaml b/public/openapi/components/schemas/CategoryObj.yaml new file mode 100644 index 000000000000..7c3ac6a83fdf --- /dev/null +++ b/public/openapi/components/schemas/CategoryObj.yaml @@ -0,0 +1,72 @@ +CategoryObj: + properties: + cid: + type: number + example: 1 + name: + type: string + example: My New Category + description: + type: string + example: Lorem ipsum, dolor sit amet + descriptionParsed: + type: string + example: Lorem ipsum, dolor sit amet + icon: + type: string + example: bullhorn + bgColor: + type: string + example: '#ffffff' + color: + type: string + example: '#000000' + slug: + type: string + example: 1/my-new-category + parentCid: + type: number + example: 0 + topic_count: + type: number + example: 0 + post_count: + type: number + example: 0 + disabled: + type: number + example: 0 + order: + type: number + example: 5 + link: + type: number + example: 'https://example.org' + numRecentReplies: + type: number + example: 1 + class: + type: string + example: col-md-3 col-xs-6 + imageClass: + type: string + example: cover + isSection: + type: number + example: 0 + totalPostCount: + type: number + example: 0 + totalTopicCount: + type: number + example: 0 + tagWhitelist: + type: array + example: + - some-tag + - another-tag + unread-class: + type: string + backgroundImage: + type: string + example: '/assets/images/covers/Circuit1.png' \ No newline at end of file diff --git a/public/openapi/components/schemas/Error.yaml b/public/openapi/components/schemas/Error.yaml new file mode 100644 index 000000000000..f6b3a543e6e5 --- /dev/null +++ b/public/openapi/components/schemas/Error.yaml @@ -0,0 +1,12 @@ +Error: + type: object + properties: + status: + type: object + properties: + code: + type: string + message: + type: string + response: + type: object \ No newline at end of file diff --git a/public/openapi/components/schemas/Status.yaml b/public/openapi/components/schemas/Status.yaml new file mode 100644 index 000000000000..07d32b21de8c --- /dev/null +++ b/public/openapi/components/schemas/Status.yaml @@ -0,0 +1,9 @@ +Status: + type: object + properties: + code: + type: string + example: ok + message: + type: string + example: OK \ No newline at end of file diff --git a/public/openapi/components/schemas/UserObj.yaml b/public/openapi/components/schemas/UserObj.yaml new file mode 100644 index 000000000000..edcadb150d55 --- /dev/null +++ b/public/openapi/components/schemas/UserObj.yaml @@ -0,0 +1,119 @@ +UserObj: + properties: + uid: + type: number + example: 1 + username: + type: string + example: Dragon Fruit + userslug: + type: string + example: dragon-fruit + email: + type: string + example: dragonfruit@example.org + 'email:confirmed': + type: number + example: 1 + joindate: + type: number + example: 1585337827953 + lastonline: + type: number + example: 1585337827953 + picture: + type: string + 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 + example: 1000 + reputation: + type: number + example: 100 + postcount: + type: number + example: 1000 + topiccount: + type: number + example: 50 + lastposttime: + type: number + example: 1585337827953 + banned: + type: number + example: 0 + 'banned:expire': + type: number + example: 1585337827953 + status: + type: string + 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 + example: D + 'icon:bgColor': + type: string + 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 + example: 0 + banned_until_readable: + type: string + example: Not Banned \ No newline at end of file diff --git a/public/openapi/components/schemas/UserRequest.yaml b/public/openapi/components/schemas/UserRequest.yaml new file mode 100644 index 000000000000..8181b5274317 --- /dev/null +++ b/public/openapi/components/schemas/UserRequest.yaml @@ -0,0 +1,35 @@ +UserRequest: + properties: + username: + type: string + example: Dragon Fruit + email: + type: string + example: dragonfruit@example.org + fullname: + type: string + example: Mr. Dragon Fruit Jr. + website: + type: string + example: 'https://example.org' + location: + type: string + example: 'Toronto, Canada' + groupTitle: + type: string + example: '["administrators","Staff"]' + birthday: + type: string + description: A birthdate given in an ISO format parseable by the Date object + example: 03/27/2020 + signature: + type: string + example: | + This is an example signature + It can span multiple lines. + 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 \ No newline at end of file diff --git a/public/openapi/write.yaml b/public/openapi/write.yaml index 2a16be8a7154..fe439d4ca1fd 100644 --- a/public/openapi/write.yaml +++ b/public/openapi/write.yaml @@ -63,19 +63,19 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: - $ref: '#/components/schemas/UserObj' + $ref: components/schemas/UserObj.yaml#/UserObj '400': - $ref: '#/components/responses/400' + $ref: components/responses/400.yaml#/400 '401': - $ref: '#/components/responses/401' + $ref: components/responses/401.yaml#/401 '403': - $ref: '#/components/responses/403' + $ref: components/responses/403.yaml#/403 '426': - $ref: '#/components/responses/426' + $ref: components/responses/426.yaml#/426 '500': - $ref: '#/components/responses/500' + $ref: components/responses/500.yaml#/500 delete: tags: - users @@ -107,7 +107,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object '/users/{uid}': @@ -131,7 +131,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object @@ -151,7 +151,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UserRequest' + $ref: components/schemas/UserRequest.yaml#/UserRequest responses: '200': description: user profile updated @@ -161,17 +161,17 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: - $ref: '#/components/schemas/UserObj' + $ref: components/schemas/UserObj.yaml#/UserObj '401': - $ref: '#/components/responses/401' + $ref: components/responses/401.yaml#/401 '403': - $ref: '#/components/responses/403' + $ref: components/responses/403.yaml#/403 '426': - $ref: '#/components/responses/426' + $ref: components/responses/426.yaml#/426 '500': - $ref: '#/components/responses/500' + $ref: components/responses/500.yaml#/500 '/users/{uid}/password': put: tags: @@ -209,7 +209,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object '/users/{uid}/follow': @@ -233,7 +233,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object delete: @@ -256,7 +256,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object '/users/{uid}/ban': @@ -293,7 +293,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object delete: @@ -316,7 +316,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object '/users/{uid}/tokens': @@ -334,7 +334,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object delete: @@ -357,7 +357,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object /categories/: @@ -416,9 +416,9 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: - $ref: '#/components/schemas/CategoryObj' + $ref: components/schemas/CategoryObj.yaml#/CategoryObj /groups/: post: tags: @@ -471,7 +471,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: $ref: components/schemas/GroupObject.yaml#/GroupDataObject delete: @@ -488,7 +488,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -507,7 +507,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -551,7 +551,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: $ref: components/schemas/TopicObject.yaml#/TopicObject /topics/{tid}: @@ -586,7 +586,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: $ref: components/schemas/PostsObject.yaml#/PostsObject delete: @@ -603,7 +603,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -622,7 +622,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -640,7 +640,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -659,7 +659,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -677,7 +677,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -696,7 +696,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -714,7 +714,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -733,7 +733,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -751,7 +751,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -770,7 +770,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -788,7 +788,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -823,7 +823,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -841,7 +841,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -878,7 +878,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: $ref: components/schemas/PostsObject.yaml#/PostsObject delete: @@ -895,7 +895,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -914,7 +914,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -932,7 +932,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -963,7 +963,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -981,7 +981,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -1000,7 +1000,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -1018,7 +1018,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -1044,7 +1044,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object properties: {} @@ -1077,293 +1077,7 @@ paths: type: object properties: status: - $ref: '#/components/schemas/Status' + $ref: components/schemas/Status.yaml#/Status response: type: object - properties: {} -components: - schemas: - Status: - type: object - properties: - code: - type: string - example: ok - message: - type: string - example: OK - Error: - type: object - properties: - status: - type: object - properties: - code: - type: string - message: - type: string - response: - type: object - UserObj: - properties: - uid: - type: number - example: 1 - username: - type: string - example: Dragon Fruit - userslug: - type: string - example: dragon-fruit - email: - type: string - example: dragonfruit@example.org - 'email:confirmed': - type: number - example: 1 - joindate: - type: number - example: 1585337827953 - lastonline: - type: number - example: 1585337827953 - picture: - type: string - 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 - example: 1000 - reputation: - type: number - example: 100 - postcount: - type: number - example: 1000 - topiccount: - type: number - example: 50 - lastposttime: - type: number - example: 1585337827953 - banned: - type: number - example: 0 - 'banned:expire': - type: number - example: 1585337827953 - status: - type: string - 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 - example: D - 'icon:bgColor': - type: string - 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 - example: 0 - banned_until_readable: - type: string - example: Not Banned - UserRequest: - properties: - username: - type: string - example: Dragon Fruit - email: - type: string - example: dragonfruit@example.org - fullname: - type: string - example: Mr. Dragon Fruit Jr. - website: - type: string - example: 'https://example.org' - location: - type: string - example: 'Toronto, Canada' - groupTitle: - type: string - example: '["administrators","Staff"]' - birthday: - type: string - description: A birthdate given in an ISO format parseable by the Date object - example: 03/27/2020 - signature: - type: string - example: | - This is an example signature - It can span multiple lines. - 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 - CategoryObj: - properties: - cid: - type: number - example: 1 - name: - type: string - example: My New Category - description: - type: string - example: Lorem ipsum, dolor sit amet - descriptionParsed: - type: string - example: Lorem ipsum, dolor sit amet - icon: - type: string - example: bullhorn - bgColor: - type: string - example: '#ffffff' - color: - type: string - example: '#000000' - slug: - type: string - example: 1/my-new-category - parentCid: - type: number - example: 0 - topic_count: - type: number - example: 0 - post_count: - type: number - example: 0 - disabled: - type: number - example: 0 - order: - type: number - example: 5 - link: - type: number - example: 'https://example.org' - numRecentReplies: - type: number - example: 1 - class: - type: string - example: col-md-3 col-xs-6 - imageClass: - type: string - example: cover - isSection: - type: number - example: 0 - totalPostCount: - type: number - example: 0 - totalTopicCount: - type: number - example: 0 - tagWhitelist: - type: array - example: - - some-tag - - another-tag - unread-class: - type: string - backgroundImage: - type: string - example: '/assets/images/covers/Circuit1.png' - responses: - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '401': - description: Not Authorized - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '426': - description: Upgrade Required - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' + properties: {} \ No newline at end of file