From dbb4cfe9d6a56215bf74e4233be16083b2cc679a Mon Sep 17 00:00:00 2001 From: psychobunny Date: Fri, 9 Oct 2020 11:07:25 -0400 Subject: [PATCH] style(openapi): break write API routes into individual files --- public/openapi/read.yaml | 250 ++-- .../{api => read}/admin/advanced/cache.yaml | 0 .../admin/advanced/database.yaml | 0 .../{api => read}/admin/advanced/errors.yaml | 0 .../admin/advanced/errors/export.yaml | 0 .../{api => read}/admin/advanced/events.yaml | 0 .../{api => read}/admin/advanced/hooks.yaml | 0 .../{api => read}/admin/advanced/logs.yaml | 0 .../{api => read}/admin/analytics.yaml | 0 .../{api => read}/admin/appearance/term.yaml | 0 .../admin/category/uploadpicture.yaml | 0 .../{api => read}/admin/dashboard.yaml | 0 .../{api => read}/admin/development/info.yaml | 0 .../admin/development/logger.yaml | 0 .../{api => read}/admin/extend/plugins.yaml | 0 .../{api => read}/admin/extend/rewards.yaml | 0 .../{api => read}/admin/extend/widgets.yaml | 0 .../admin/groups/groupname/csv.yaml | 0 .../admin/manage/admins-mods.yaml | 0 .../admin/manage/categories.yaml | 0 .../admin/manage/categories/category_id.yaml | 0 .../categories/category_id/analytics.yaml | 0 .../{api => read}/admin/manage/digest.yaml | 0 .../{api => read}/admin/manage/groups.yaml | 0 .../admin/manage/groups/name.yaml | 0 .../admin/manage/privileges/cid.yaml | 0 .../admin/manage/registration.yaml | 0 .../{api => read}/admin/manage/tags.yaml | 0 .../{api => read}/admin/manage/uploads.yaml | 0 .../{api => read}/admin/manage/users.yaml | 0 .../admin/manage/users/banned.yaml | 0 .../admin/manage/users/flagged.yaml | 0 .../admin/manage/users/inactive.yaml | 0 .../admin/manage/users/latest.yaml | 0 .../admin/manage/users/most-reputation.yaml | 0 .../admin/manage/users/no-posts.yaml | 0 .../admin/manage/users/not-validated.yaml | 0 .../admin/manage/users/search.yaml | 0 .../admin/manage/users/top-posters.yaml | 0 .../admin/settings/homepage.yaml | 0 .../admin/settings/languages.yaml | 0 .../admin/settings/navigation.yaml | 0 .../{api => read}/admin/settings/social.yaml | 0 .../{api => read}/admin/settings/term.yaml | 0 .../{api => read}/admin/upload/file.yaml | 0 .../admin/uploadDefaultAvatar.yaml | 0 .../admin/uploadMaskableIcon.yaml | 0 .../{api => read}/admin/uploadOgImage.yaml | 0 .../{api => read}/admin/uploadTouchIcon.yaml | 0 .../{api => read}/admin/uploadfavicon.yaml | 0 .../{api => read}/admin/uploadlogo.yaml | 0 .../{api => read}/admin/users/csv.yaml | 0 public/openapi/{api => read}/categories.yaml | 0 .../categories/cid/moderators.yaml | 0 .../category_id/slug/topic_index.yaml | 0 .../{api => read}/category/cid/id.yaml | 0 .../openapi/{api => read}/chats/roomid.yaml | 0 public/openapi/{api => read}/config.yaml | 0 .../email/unsubscribe/token.yaml | 0 public/openapi/{api => read}/flags.yaml | 0 .../openapi/{api => read}/flags/flagId.yaml | 0 public/openapi/{api => read}/groups.yaml | 0 public/openapi/{api => read}/groups/slug.yaml | 0 .../{api => read}/groups/slug/members.yaml | 0 public/openapi/{api => read}/index.yaml | 0 .../openapi/{api => read}/ip-blacklist.yaml | 0 public/openapi/{api => read}/login.yaml | 0 public/openapi/{api => read}/me.yaml | 0 .../openapi/{api => read}/notifications.yaml | 0 public/openapi/{api => read}/popular.yaml | 0 public/openapi/{api => read}/post-queue.yaml | 0 public/openapi/{api => read}/post/pid.yaml | 0 public/openapi/{api => read}/post/pid/id.yaml | 0 public/openapi/{api => read}/post/upload.yaml | 0 public/openapi/{api => read}/recent.yaml | 0 .../{api => read}/recent/posts/term.yaml | 0 public/openapi/{api => read}/register.yaml | 0 .../{api => read}/registration-queue.yaml | 0 public/openapi/{api => read}/reset.yaml | 0 public/openapi/{api => read}/reset/code.yaml | 0 public/openapi/{api => read}/search.yaml | 0 public/openapi/{api => read}/self.yaml | 0 public/openapi/{api => read}/tags.yaml | 0 public/openapi/{api => read}/tags/tag.yaml | 0 public/openapi/{api => read}/top.yaml | 0 .../topic/pagination/topic_id.yaml | 0 .../{api => read}/topic/teaser/topic_id.yaml | 0 .../{api => read}/topic/thumb/upload.yaml | 0 .../openapi/{api => read}/topic/tid/id.yaml | 0 .../topic/topic_id/slug/post_index.yaml | 0 public/openapi/{api => read}/uid/uid.yaml | 0 public/openapi/{api => read}/unread.yaml | 0 .../openapi/{api => read}/unread/total.yaml | 0 .../{api => read}/user/email/email.yaml | 0 .../openapi/{api => read}/user/uid/uid.yaml | 0 .../user/uid/userslug/export/posts.yaml | 0 .../user/uid/userslug/export/profile.yaml | 0 .../user/uid/userslug/export/uploads.yaml | 0 .../{api => read}/user/username/username.yaml | 0 .../openapi/{api => read}/user/userslug.yaml | 0 .../{api => read}/user/userslug/best.yaml | 0 .../{api => read}/user/userslug/blocks.yaml | 0 .../user/userslug/bookmarks.yaml | 0 .../user/userslug/categories.yaml | 0 .../user/userslug/chats/roomid.yaml | 0 .../{api => read}/user/userslug/consent.yaml | 0 .../user/userslug/downvoted.yaml | 0 .../{api => read}/user/userslug/edit.yaml | 0 .../user/userslug/edit/email.yaml | 0 .../user/userslug/edit/password.yaml | 0 .../user/userslug/edit/username.yaml | 0 .../user/userslug/followers.yaml | 0 .../user/userslug/following.yaml | 0 .../{api => read}/user/userslug/groups.yaml | 0 .../{api => read}/user/userslug/ignored.yaml | 0 .../{api => read}/user/userslug/info.yaml | 0 .../{api => read}/user/userslug/posts.yaml | 0 .../user/userslug/session/uuid.yaml | 0 .../{api => read}/user/userslug/sessions.yaml | 0 .../{api => read}/user/userslug/settings.yaml | 0 .../{api => read}/user/userslug/topics.yaml | 0 .../{api => read}/user/userslug/uploads.yaml | 0 .../{api => read}/user/userslug/upvoted.yaml | 0 .../{api => read}/user/userslug/watched.yaml | 0 public/openapi/{api => read}/users.yaml | 0 public/openapi/write.yaml | 1053 +---------------- .../openapi/write/admin/settings/setting.yaml | 25 + public/openapi/write/categories.yaml | 58 + public/openapi/write/files.yaml | 32 + public/openapi/write/groups.yaml | 72 ++ .../write/groups/slug/membership/uid.yaml | 18 + public/openapi/write/posts/pid.yaml | 53 + public/openapi/write/posts/pid/bookmark.yaml | 36 + public/openapi/write/posts/pid/state.yaml | 36 + public/openapi/write/posts/pid/vote.yaml | 48 + public/openapi/write/topics.yaml | 42 + public/openapi/write/topics/tid.yaml | 52 + public/openapi/write/topics/tid/follow.yaml | 36 + public/openapi/write/topics/tid/ignore.yaml | 36 + public/openapi/write/topics/tid/lock.yaml | 36 + public/openapi/write/topics/tid/pin.yaml | 36 + public/openapi/write/topics/tid/state.yaml | 36 + public/openapi/write/topics/tid/tags.yaml | 52 + public/openapi/write/users.yaml | 330 ++++++ 144 files changed, 1177 insertions(+), 1160 deletions(-) rename public/openapi/{api => read}/admin/advanced/cache.yaml (100%) rename public/openapi/{api => read}/admin/advanced/database.yaml (100%) rename public/openapi/{api => read}/admin/advanced/errors.yaml (100%) rename public/openapi/{api => read}/admin/advanced/errors/export.yaml (100%) rename public/openapi/{api => read}/admin/advanced/events.yaml (100%) rename public/openapi/{api => read}/admin/advanced/hooks.yaml (100%) rename public/openapi/{api => read}/admin/advanced/logs.yaml (100%) rename public/openapi/{api => read}/admin/analytics.yaml (100%) rename public/openapi/{api => read}/admin/appearance/term.yaml (100%) rename public/openapi/{api => read}/admin/category/uploadpicture.yaml (100%) rename public/openapi/{api => read}/admin/dashboard.yaml (100%) rename public/openapi/{api => read}/admin/development/info.yaml (100%) rename public/openapi/{api => read}/admin/development/logger.yaml (100%) rename public/openapi/{api => read}/admin/extend/plugins.yaml (100%) rename public/openapi/{api => read}/admin/extend/rewards.yaml (100%) rename public/openapi/{api => read}/admin/extend/widgets.yaml (100%) rename public/openapi/{api => read}/admin/groups/groupname/csv.yaml (100%) rename public/openapi/{api => read}/admin/manage/admins-mods.yaml (100%) rename public/openapi/{api => read}/admin/manage/categories.yaml (100%) rename public/openapi/{api => read}/admin/manage/categories/category_id.yaml (100%) rename public/openapi/{api => read}/admin/manage/categories/category_id/analytics.yaml (100%) rename public/openapi/{api => read}/admin/manage/digest.yaml (100%) rename public/openapi/{api => read}/admin/manage/groups.yaml (100%) rename public/openapi/{api => read}/admin/manage/groups/name.yaml (100%) rename public/openapi/{api => read}/admin/manage/privileges/cid.yaml (100%) rename public/openapi/{api => read}/admin/manage/registration.yaml (100%) rename public/openapi/{api => read}/admin/manage/tags.yaml (100%) rename public/openapi/{api => read}/admin/manage/uploads.yaml (100%) rename public/openapi/{api => read}/admin/manage/users.yaml (100%) rename public/openapi/{api => read}/admin/manage/users/banned.yaml (100%) rename public/openapi/{api => read}/admin/manage/users/flagged.yaml (100%) rename public/openapi/{api => read}/admin/manage/users/inactive.yaml (100%) rename public/openapi/{api => read}/admin/manage/users/latest.yaml (100%) rename public/openapi/{api => read}/admin/manage/users/most-reputation.yaml (100%) rename public/openapi/{api => read}/admin/manage/users/no-posts.yaml (100%) rename public/openapi/{api => read}/admin/manage/users/not-validated.yaml (100%) rename public/openapi/{api => read}/admin/manage/users/search.yaml (100%) rename public/openapi/{api => read}/admin/manage/users/top-posters.yaml (100%) rename public/openapi/{api => read}/admin/settings/homepage.yaml (100%) rename public/openapi/{api => read}/admin/settings/languages.yaml (100%) rename public/openapi/{api => read}/admin/settings/navigation.yaml (100%) rename public/openapi/{api => read}/admin/settings/social.yaml (100%) rename public/openapi/{api => read}/admin/settings/term.yaml (100%) rename public/openapi/{api => read}/admin/upload/file.yaml (100%) rename public/openapi/{api => read}/admin/uploadDefaultAvatar.yaml (100%) rename public/openapi/{api => read}/admin/uploadMaskableIcon.yaml (100%) rename public/openapi/{api => read}/admin/uploadOgImage.yaml (100%) rename public/openapi/{api => read}/admin/uploadTouchIcon.yaml (100%) rename public/openapi/{api => read}/admin/uploadfavicon.yaml (100%) rename public/openapi/{api => read}/admin/uploadlogo.yaml (100%) rename public/openapi/{api => read}/admin/users/csv.yaml (100%) rename public/openapi/{api => read}/categories.yaml (100%) rename public/openapi/{api => read}/categories/cid/moderators.yaml (100%) rename public/openapi/{api => read}/category/category_id/slug/topic_index.yaml (100%) rename public/openapi/{api => read}/category/cid/id.yaml (100%) rename public/openapi/{api => read}/chats/roomid.yaml (100%) rename public/openapi/{api => read}/config.yaml (100%) rename public/openapi/{api => read}/email/unsubscribe/token.yaml (100%) rename public/openapi/{api => read}/flags.yaml (100%) rename public/openapi/{api => read}/flags/flagId.yaml (100%) rename public/openapi/{api => read}/groups.yaml (100%) rename public/openapi/{api => read}/groups/slug.yaml (100%) rename public/openapi/{api => read}/groups/slug/members.yaml (100%) rename public/openapi/{api => read}/index.yaml (100%) rename public/openapi/{api => read}/ip-blacklist.yaml (100%) rename public/openapi/{api => read}/login.yaml (100%) rename public/openapi/{api => read}/me.yaml (100%) rename public/openapi/{api => read}/notifications.yaml (100%) rename public/openapi/{api => read}/popular.yaml (100%) rename public/openapi/{api => read}/post-queue.yaml (100%) rename public/openapi/{api => read}/post/pid.yaml (100%) rename public/openapi/{api => read}/post/pid/id.yaml (100%) rename public/openapi/{api => read}/post/upload.yaml (100%) rename public/openapi/{api => read}/recent.yaml (100%) rename public/openapi/{api => read}/recent/posts/term.yaml (100%) rename public/openapi/{api => read}/register.yaml (100%) rename public/openapi/{api => read}/registration-queue.yaml (100%) rename public/openapi/{api => read}/reset.yaml (100%) rename public/openapi/{api => read}/reset/code.yaml (100%) rename public/openapi/{api => read}/search.yaml (100%) rename public/openapi/{api => read}/self.yaml (100%) rename public/openapi/{api => read}/tags.yaml (100%) rename public/openapi/{api => read}/tags/tag.yaml (100%) rename public/openapi/{api => read}/top.yaml (100%) rename public/openapi/{api => read}/topic/pagination/topic_id.yaml (100%) rename public/openapi/{api => read}/topic/teaser/topic_id.yaml (100%) rename public/openapi/{api => read}/topic/thumb/upload.yaml (100%) rename public/openapi/{api => read}/topic/tid/id.yaml (100%) rename public/openapi/{api => read}/topic/topic_id/slug/post_index.yaml (100%) rename public/openapi/{api => read}/uid/uid.yaml (100%) rename public/openapi/{api => read}/unread.yaml (100%) rename public/openapi/{api => read}/unread/total.yaml (100%) rename public/openapi/{api => read}/user/email/email.yaml (100%) rename public/openapi/{api => read}/user/uid/uid.yaml (100%) rename public/openapi/{api => read}/user/uid/userslug/export/posts.yaml (100%) rename public/openapi/{api => read}/user/uid/userslug/export/profile.yaml (100%) rename public/openapi/{api => read}/user/uid/userslug/export/uploads.yaml (100%) rename public/openapi/{api => read}/user/username/username.yaml (100%) rename public/openapi/{api => read}/user/userslug.yaml (100%) rename public/openapi/{api => read}/user/userslug/best.yaml (100%) rename public/openapi/{api => read}/user/userslug/blocks.yaml (100%) rename public/openapi/{api => read}/user/userslug/bookmarks.yaml (100%) rename public/openapi/{api => read}/user/userslug/categories.yaml (100%) rename public/openapi/{api => read}/user/userslug/chats/roomid.yaml (100%) rename public/openapi/{api => read}/user/userslug/consent.yaml (100%) rename public/openapi/{api => read}/user/userslug/downvoted.yaml (100%) rename public/openapi/{api => read}/user/userslug/edit.yaml (100%) rename public/openapi/{api => read}/user/userslug/edit/email.yaml (100%) rename public/openapi/{api => read}/user/userslug/edit/password.yaml (100%) rename public/openapi/{api => read}/user/userslug/edit/username.yaml (100%) rename public/openapi/{api => read}/user/userslug/followers.yaml (100%) rename public/openapi/{api => read}/user/userslug/following.yaml (100%) rename public/openapi/{api => read}/user/userslug/groups.yaml (100%) rename public/openapi/{api => read}/user/userslug/ignored.yaml (100%) rename public/openapi/{api => read}/user/userslug/info.yaml (100%) rename public/openapi/{api => read}/user/userslug/posts.yaml (100%) rename public/openapi/{api => read}/user/userslug/session/uuid.yaml (100%) rename public/openapi/{api => read}/user/userslug/sessions.yaml (100%) rename public/openapi/{api => read}/user/userslug/settings.yaml (100%) rename public/openapi/{api => read}/user/userslug/topics.yaml (100%) rename public/openapi/{api => read}/user/userslug/uploads.yaml (100%) rename public/openapi/{api => read}/user/userslug/upvoted.yaml (100%) rename public/openapi/{api => read}/user/userslug/watched.yaml (100%) rename public/openapi/{api => read}/users.yaml (100%) create mode 100644 public/openapi/write/admin/settings/setting.yaml create mode 100644 public/openapi/write/categories.yaml create mode 100644 public/openapi/write/files.yaml create mode 100644 public/openapi/write/groups.yaml create mode 100644 public/openapi/write/groups/slug/membership/uid.yaml create mode 100644 public/openapi/write/posts/pid.yaml create mode 100644 public/openapi/write/posts/pid/bookmark.yaml create mode 100644 public/openapi/write/posts/pid/state.yaml create mode 100644 public/openapi/write/posts/pid/vote.yaml create mode 100644 public/openapi/write/topics.yaml create mode 100644 public/openapi/write/topics/tid.yaml create mode 100644 public/openapi/write/topics/tid/follow.yaml create mode 100644 public/openapi/write/topics/tid/ignore.yaml create mode 100644 public/openapi/write/topics/tid/lock.yaml create mode 100644 public/openapi/write/topics/tid/pin.yaml create mode 100644 public/openapi/write/topics/tid/state.yaml create mode 100644 public/openapi/write/topics/tid/tags.yaml create mode 100644 public/openapi/write/users.yaml diff --git a/public/openapi/read.yaml b/public/openapi/read.yaml index f31b521b670c..02dad7134901 100644 --- a/public/openapi/read.yaml +++ b/public/openapi/read.yaml @@ -56,252 +56,252 @@ tags: description: Convenience and utility routes for accessing other part of the API paths: /api/: - $ref: 'api/index.yaml' + $ref: 'read/index.yaml' /api/admin/dashboard: - $ref: 'api/admin/dashboard.yaml' + $ref: 'read/admin/dashboard.yaml' /api/admin/settings/languages: - $ref: 'api/admin/settings/languages.yaml' + $ref: 'read/admin/settings/languages.yaml' /api/admin/settings/navigation: - $ref: 'api/admin/settings/navigation.yaml' + $ref: 'read/admin/settings/navigation.yaml' /api/admin/settings/homepage: - $ref: 'api/admin/settings/homepage.yaml' + $ref: 'read/admin/settings/homepage.yaml' /api/admin/settings/social: - $ref: 'api/admin/settings/social.yaml' + $ref: 'read/admin/settings/social.yaml' /api/admin/manage/categories: - $ref: 'api/admin/manage/categories.yaml' + $ref: 'read/admin/manage/categories.yaml' "/api/admin/manage/categories/{category_id}": - $ref: 'api/admin/manage/categories/category_id.yaml' + $ref: 'read/admin/manage/categories/category_id.yaml' "/api/admin/manage/categories/{category_id}/analytics": - $ref: 'api/admin/manage/categories/category_id/analytics.yaml' + $ref: 'read/admin/manage/categories/category_id/analytics.yaml' "/api/admin/manage/privileges/{cid}": - $ref: 'api/admin/manage/privileges/cid.yaml' + $ref: 'read/admin/manage/privileges/cid.yaml' /api/admin/manage/tags: - $ref: 'api/admin/manage/tags.yaml' + $ref: 'read/admin/manage/tags.yaml' /api/admin/manage/users: - $ref: 'api/admin/manage/users.yaml' + $ref: 'read/admin/manage/users.yaml' /api/admin/manage/users/search: - $ref: 'api/admin/manage/users/search.yaml' + $ref: 'read/admin/manage/users/search.yaml' /api/admin/manage/users/latest: - $ref: 'api/admin/manage/users/latest.yaml' + $ref: 'read/admin/manage/users/latest.yaml' /api/admin/manage/users/not-validated: - $ref: 'api/admin/manage/users/not-validated.yaml' + $ref: 'read/admin/manage/users/not-validated.yaml' /api/admin/manage/users/no-posts: - $ref: 'api/admin/manage/users/no-posts.yaml' + $ref: 'read/admin/manage/users/no-posts.yaml' /api/admin/manage/users/top-posters: - $ref: 'api/admin/manage/users/top-posters.yaml' + $ref: 'read/admin/manage/users/top-posters.yaml' /api/admin/manage/users/most-reputation: - $ref: 'api/admin/manage/users/most-reputation.yaml' + $ref: 'read/admin/manage/users/most-reputation.yaml' /api/admin/manage/users/inactive: - $ref: 'api/admin/manage/users/inactive.yaml' + $ref: 'read/admin/manage/users/inactive.yaml' /api/admin/manage/users/flagged: - $ref: 'api/admin/manage/users/flagged.yaml' + $ref: 'read/admin/manage/users/flagged.yaml' /api/admin/manage/users/banned: - $ref: 'api/admin/manage/users/banned.yaml' + $ref: 'read/admin/manage/users/banned.yaml' /api/admin/manage/registration: - $ref: 'api/admin/manage/registration.yaml' + $ref: 'read/admin/manage/registration.yaml' /api/admin/manage/admins-mods: - $ref: 'api/admin/manage/admins-mods.yaml' + $ref: 'read/admin/manage/admins-mods.yaml' /api/admin/manage/groups: - $ref: 'api/admin/manage/groups.yaml' + $ref: 'read/admin/manage/groups.yaml' "/api/admin/manage/groups/{name}": - $ref: 'api/admin/manage/groups/name.yaml' + $ref: 'read/admin/manage/groups/name.yaml' /api/admin/manage/uploads: - $ref: 'api/admin/manage/uploads.yaml' + $ref: 'read/admin/manage/uploads.yaml' /api/admin/manage/digest: - $ref: 'api/admin/manage/digest.yaml' + $ref: 'read/admin/manage/digest.yaml' "/api/admin/settings/{term}": - $ref: 'api/admin/settings/term.yaml' + $ref: 'read/admin/settings/term.yaml' "/api/admin/appearance/{term}": - $ref: 'api/admin/appearance/term.yaml' + $ref: 'read/admin/appearance/term.yaml' /api/admin/extend/plugins: - $ref: 'api/admin/extend/plugins.yaml' + $ref: 'read/admin/extend/plugins.yaml' /api/admin/extend/widgets: - $ref: 'api/admin/extend/widgets.yaml' + $ref: 'read/admin/extend/widgets.yaml' /api/admin/extend/rewards: - $ref: 'api/admin/extend/rewards.yaml' + $ref: 'read/admin/extend/rewards.yaml' /api/admin/advanced/database: - $ref: 'api/admin/advanced/database.yaml' + $ref: 'read/admin/advanced/database.yaml' /api/admin/advanced/events: - $ref: 'api/admin/advanced/events.yaml' + $ref: 'read/admin/advanced/events.yaml' /api/admin/advanced/hooks: - $ref: 'api/admin/advanced/hooks.yaml' + $ref: 'read/admin/advanced/hooks.yaml' /api/admin/advanced/logs: - $ref: 'api/admin/advanced/logs.yaml' + $ref: 'read/admin/advanced/logs.yaml' /api/admin/advanced/errors: - $ref: 'api/admin/advanced/errors.yaml' + $ref: 'read/admin/advanced/errors.yaml' /api/admin/advanced/errors/export: - $ref: 'api/admin/advanced/errors/export.yaml' + $ref: 'read/admin/advanced/errors/export.yaml' /api/admin/advanced/cache: - $ref: 'api/admin/advanced/cache.yaml' + $ref: 'read/admin/advanced/cache.yaml' /api/admin/development/logger: - $ref: 'api/admin/development/logger.yaml' + $ref: 'read/admin/development/logger.yaml' /api/admin/development/info: - $ref: 'api/admin/development/info.yaml' + $ref: 'read/admin/development/info.yaml' /api/admin/users/csv: - $ref: 'api/admin/users/csv.yaml' + $ref: 'read/admin/users/csv.yaml' /api/admin/groups/{groupname}/csv: - $ref: 'api/admin/groups/groupname/csv.yaml' + $ref: 'read/admin/groups/groupname/csv.yaml' /api/admin/analytics: - $ref: 'api/admin/analytics.yaml' + $ref: 'read/admin/analytics.yaml' /api/admin/category/uploadpicture: - $ref: 'api/admin/category/uploadpicture.yaml' + $ref: 'read/admin/category/uploadpicture.yaml' /api/admin/uploadfavicon: - $ref: 'api/admin/uploadfavicon.yaml' + $ref: 'read/admin/uploadfavicon.yaml' /api/admin/uploadTouchIcon: - $ref: 'api/admin/uploadTouchIcon.yaml' + $ref: 'read/admin/uploadTouchIcon.yaml' /api/admin/uploadMaskableIcon: - $ref: 'api/admin/uploadMaskableIcon.yaml' + $ref: 'read/admin/uploadMaskableIcon.yaml' /api/admin/uploadlogo: - $ref: 'api/admin/uploadlogo.yaml' + $ref: 'read/admin/uploadlogo.yaml' /api/admin/uploadOgImage: - $ref: 'api/admin/uploadOgImage.yaml' + $ref: 'read/admin/uploadOgImage.yaml' /api/admin/upload/file: - $ref: 'api/admin/upload/file.yaml' + $ref: 'read/admin/upload/file.yaml' /api/admin/uploadDefaultAvatar: - $ref: 'api/admin/uploadDefaultAvatar.yaml' + $ref: 'read/admin/uploadDefaultAvatar.yaml' /api/config: - $ref: 'api/config.yaml' + $ref: 'read/config.yaml' /api/users: - $ref: 'api/users.yaml' + $ref: 'read/users.yaml' "/api/user/uid/{uid}": - $ref: 'api/user/uid/uid.yaml' + $ref: 'read/user/uid/uid.yaml' "/api/user/username/{username}": - $ref: 'api/user/username/username.yaml' + $ref: 'read/user/username/username.yaml' "/api/user/email/{email}": - $ref: 'api/user/email/email.yaml' + $ref: 'read/user/email/email.yaml' "/api/user/uid/{userslug}/export/posts": - $ref: 'api/user/uid/userslug/export/posts.yaml' + $ref: 'read/user/uid/userslug/export/posts.yaml' "/api/user/uid/{userslug}/export/uploads": - $ref: 'api/user/uid/userslug/export/uploads.yaml' + $ref: 'read/user/uid/userslug/export/uploads.yaml' "/api/user/uid/{userslug}/export/profile": - $ref: 'api/user/uid/userslug/export/profile.yaml' + $ref: 'read/user/uid/userslug/export/profile.yaml' "/api/post/pid/{id}": - $ref: 'api/post/pid/id.yaml' + $ref: 'read/post/pid/id.yaml' "/api/topic/tid/{id}": - $ref: 'api/topic/tid/id.yaml' + $ref: 'read/topic/tid/id.yaml' "/api/category/cid/{id}": - $ref: 'api/category/cid/id.yaml' + $ref: 'read/category/cid/id.yaml' /api/categories: - $ref: 'api/categories.yaml' + $ref: 'read/categories.yaml' "/api/categories/{cid}/moderators": - $ref: 'api/categories/cid/moderators.yaml' + $ref: 'read/categories/cid/moderators.yaml' "/api/topic/{topic_id}/{slug}/{post_index}": - $ref: 'api/topic/topic_id/slug/post_index.yaml' + $ref: 'read/topic/topic_id/slug/post_index.yaml' /api/recent: - $ref: 'api/recent.yaml' + $ref: 'read/recent.yaml' "/api/recent/posts/{term}": - $ref: 'api/recent/posts/term.yaml' + $ref: 'read/recent/posts/term.yaml' /api/unread: - $ref: 'api/unread.yaml' + $ref: 'read/unread.yaml' /api/unread/total: - $ref: 'api/unread/total.yaml' + $ref: 'read/unread/total.yaml' "/api/topic/teaser/{topic_id}": - $ref: 'api/topic/teaser/topic_id.yaml' + $ref: 'read/topic/teaser/topic_id.yaml' "/api/topic/pagination/{topic_id}": - $ref: 'api/topic/pagination/topic_id.yaml' + $ref: 'read/topic/pagination/topic_id.yaml' /api/post/upload: - $ref: 'api/post/upload.yaml' + $ref: 'read/post/upload.yaml' /api/topic/thumb/upload: - $ref: 'api/topic/thumb/upload.yaml' + $ref: 'read/topic/thumb/upload.yaml' /api/login: - $ref: 'api/login.yaml' + $ref: 'read/login.yaml' /api/register: - $ref: 'api/register.yaml' + $ref: 'read/register.yaml' /api/search: - $ref: 'api/search.yaml' + $ref: 'read/search.yaml' "/api/reset": - $ref: 'api/reset.yaml' + $ref: 'read/reset.yaml' "/api/reset/{code}": - $ref: 'api/reset/code.yaml' + $ref: 'read/reset/code.yaml' "/api/email/unsubscribe/{token}": - $ref: 'api/email/unsubscribe/token.yaml' + $ref: 'read/email/unsubscribe/token.yaml' "/api/post/{pid}": - $ref: 'api/post/pid.yaml' + $ref: 'read/post/pid.yaml' /api/flags: - $ref: 'api/flags.yaml' + $ref: 'read/flags.yaml' "/api/flags/{flagId}": - $ref: 'api/flags/flagId.yaml' + $ref: 'read/flags/flagId.yaml' /api/post-queue: - $ref: 'api/post-queue.yaml' + $ref: 'read/post-queue.yaml' /api/ip-blacklist: - $ref: 'api/ip-blacklist.yaml' + $ref: 'read/ip-blacklist.yaml' /api/registration-queue: - $ref: 'api/registration-queue.yaml' + $ref: 'read/registration-queue.yaml' /api/tags: - $ref: 'api/tags.yaml' + $ref: 'read/tags.yaml' "/api/tags/{tag}": - $ref: 'api/tags/tag.yaml' + $ref: 'read/tags/tag.yaml' /api/popular: - $ref: 'api/popular.yaml' + $ref: 'read/popular.yaml' /api/top: - $ref: 'api/top.yaml' + $ref: 'read/top.yaml' "/api/category/{category_id}/{slug}/{topic_index}": - $ref: 'api/category/category_id/slug/topic_index.yaml' + $ref: 'read/category/category_id/slug/topic_index.yaml' /api/self: - $ref: 'api/self.yaml' + $ref: 'read/self.yaml' /api/me: - $ref: 'api/me.yaml' + $ref: 'read/me.yaml' /api/me/*: - $ref: 'api/me.yaml' + $ref: 'read/me.yaml' "/api/uid/{uid}/*": - $ref: 'api/uid/uid.yaml' + $ref: 'read/uid/uid.yaml' "/api/user/{userslug}": - $ref: 'api/user/userslug.yaml' + $ref: 'read/user/userslug.yaml' "/api/user/{userslug}/following": - $ref: 'api/user/userslug/following.yaml' + $ref: 'read/user/userslug/following.yaml' "/api/user/{userslug}/followers": - $ref: 'api/user/userslug/followers.yaml' + $ref: 'read/user/userslug/followers.yaml' "/api/user/{userslug}/categories": - $ref: 'api/user/userslug/categories.yaml' + $ref: 'read/user/userslug/categories.yaml' "/api/user/{userslug}/posts": - $ref: 'api/user/userslug/posts.yaml' + $ref: 'read/user/userslug/posts.yaml' "/api/user/{userslug}/topics": - $ref: 'api/user/userslug/topics.yaml' + $ref: 'read/user/userslug/topics.yaml' "/api/user/{userslug}/best": - $ref: 'api/user/userslug/best.yaml' + $ref: 'read/user/userslug/best.yaml' "/api/user/{userslug}/groups": - $ref: 'api/user/userslug/groups.yaml' + $ref: 'read/user/userslug/groups.yaml' "/api/user/{userslug}/bookmarks": - $ref: 'api/user/userslug/bookmarks.yaml' + $ref: 'read/user/userslug/bookmarks.yaml' "/api/user/{userslug}/watched": - $ref: 'api/user/userslug/watched.yaml' + $ref: 'read/user/userslug/watched.yaml' "/api/user/{userslug}/ignored": - $ref: 'api/user/userslug/ignored.yaml' + $ref: 'read/user/userslug/ignored.yaml' "/api/user/{userslug}/upvoted": - $ref: 'api/user/userslug/upvoted.yaml' + $ref: 'read/user/userslug/upvoted.yaml' "/api/user/{userslug}/downvoted": - $ref: 'api/user/userslug/downvoted.yaml' + $ref: 'read/user/userslug/downvoted.yaml' "/api/user/{userslug}/edit": - $ref: 'api/user/userslug/edit.yaml' + $ref: 'read/user/userslug/edit.yaml' "/api/user/{userslug}/edit/username": - $ref: 'api/user/userslug/edit/username.yaml' + $ref: 'read/user/userslug/edit/username.yaml' "/api/user/{userslug}/edit/email": - $ref: 'api/user/userslug/edit/email.yaml' + $ref: 'read/user/userslug/edit/email.yaml' "/api/user/{userslug}/edit/password": - $ref: 'api/user/userslug/edit/password.yaml' + $ref: 'read/user/userslug/edit/password.yaml' "/api/user/{userslug}/info": - $ref: 'api/user/userslug/info.yaml' + $ref: 'read/user/userslug/info.yaml' "/api/user/{userslug}/settings": - $ref: 'api/user/userslug/settings.yaml' + $ref: 'read/user/userslug/settings.yaml' "/api/user/{userslug}/uploads": - $ref: 'api/user/userslug/uploads.yaml' + $ref: 'read/user/userslug/uploads.yaml' "/api/user/{userslug}/consent": - $ref: 'api/user/userslug/consent.yaml' + $ref: 'read/user/userslug/consent.yaml' "/api/user/{userslug}/blocks": - $ref: 'api/user/userslug/blocks.yaml' + $ref: 'read/user/userslug/blocks.yaml' "/api/user/{userslug}/sessions": - $ref: 'api/user/userslug/sessions.yaml' + $ref: 'read/user/userslug/sessions.yaml' "/api/user/{userslug}/session/{uuid}": - $ref: 'api/user/userslug/session/uuid.yaml' + $ref: 'read/user/userslug/session/uuid.yaml' /api/notifications: - $ref: 'api/notifications.yaml' + $ref: 'read/notifications.yaml' "/api/user/{userslug}/chats/{roomid}": - $ref: 'api/user/userslug/chats/roomid.yaml' + $ref: 'read/user/userslug/chats/roomid.yaml' "/api/chats/{roomid}": - $ref: 'api/chats/roomid.yaml' + $ref: 'read/chats/roomid.yaml' /api/groups: - $ref: 'api/groups.yaml' + $ref: 'read/groups.yaml' "/api/groups/{slug}": - $ref: 'api/groups/slug.yaml' + $ref: 'read/groups/slug.yaml' "/api/groups/{slug}/members": - $ref: 'api/groups/slug/members.yaml' \ No newline at end of file + $ref: 'read/groups/slug/members.yaml' \ No newline at end of file diff --git a/public/openapi/api/admin/advanced/cache.yaml b/public/openapi/read/admin/advanced/cache.yaml similarity index 100% rename from public/openapi/api/admin/advanced/cache.yaml rename to public/openapi/read/admin/advanced/cache.yaml diff --git a/public/openapi/api/admin/advanced/database.yaml b/public/openapi/read/admin/advanced/database.yaml similarity index 100% rename from public/openapi/api/admin/advanced/database.yaml rename to public/openapi/read/admin/advanced/database.yaml diff --git a/public/openapi/api/admin/advanced/errors.yaml b/public/openapi/read/admin/advanced/errors.yaml similarity index 100% rename from public/openapi/api/admin/advanced/errors.yaml rename to public/openapi/read/admin/advanced/errors.yaml diff --git a/public/openapi/api/admin/advanced/errors/export.yaml b/public/openapi/read/admin/advanced/errors/export.yaml similarity index 100% rename from public/openapi/api/admin/advanced/errors/export.yaml rename to public/openapi/read/admin/advanced/errors/export.yaml diff --git a/public/openapi/api/admin/advanced/events.yaml b/public/openapi/read/admin/advanced/events.yaml similarity index 100% rename from public/openapi/api/admin/advanced/events.yaml rename to public/openapi/read/admin/advanced/events.yaml diff --git a/public/openapi/api/admin/advanced/hooks.yaml b/public/openapi/read/admin/advanced/hooks.yaml similarity index 100% rename from public/openapi/api/admin/advanced/hooks.yaml rename to public/openapi/read/admin/advanced/hooks.yaml diff --git a/public/openapi/api/admin/advanced/logs.yaml b/public/openapi/read/admin/advanced/logs.yaml similarity index 100% rename from public/openapi/api/admin/advanced/logs.yaml rename to public/openapi/read/admin/advanced/logs.yaml diff --git a/public/openapi/api/admin/analytics.yaml b/public/openapi/read/admin/analytics.yaml similarity index 100% rename from public/openapi/api/admin/analytics.yaml rename to public/openapi/read/admin/analytics.yaml diff --git a/public/openapi/api/admin/appearance/term.yaml b/public/openapi/read/admin/appearance/term.yaml similarity index 100% rename from public/openapi/api/admin/appearance/term.yaml rename to public/openapi/read/admin/appearance/term.yaml diff --git a/public/openapi/api/admin/category/uploadpicture.yaml b/public/openapi/read/admin/category/uploadpicture.yaml similarity index 100% rename from public/openapi/api/admin/category/uploadpicture.yaml rename to public/openapi/read/admin/category/uploadpicture.yaml diff --git a/public/openapi/api/admin/dashboard.yaml b/public/openapi/read/admin/dashboard.yaml similarity index 100% rename from public/openapi/api/admin/dashboard.yaml rename to public/openapi/read/admin/dashboard.yaml diff --git a/public/openapi/api/admin/development/info.yaml b/public/openapi/read/admin/development/info.yaml similarity index 100% rename from public/openapi/api/admin/development/info.yaml rename to public/openapi/read/admin/development/info.yaml diff --git a/public/openapi/api/admin/development/logger.yaml b/public/openapi/read/admin/development/logger.yaml similarity index 100% rename from public/openapi/api/admin/development/logger.yaml rename to public/openapi/read/admin/development/logger.yaml diff --git a/public/openapi/api/admin/extend/plugins.yaml b/public/openapi/read/admin/extend/plugins.yaml similarity index 100% rename from public/openapi/api/admin/extend/plugins.yaml rename to public/openapi/read/admin/extend/plugins.yaml diff --git a/public/openapi/api/admin/extend/rewards.yaml b/public/openapi/read/admin/extend/rewards.yaml similarity index 100% rename from public/openapi/api/admin/extend/rewards.yaml rename to public/openapi/read/admin/extend/rewards.yaml diff --git a/public/openapi/api/admin/extend/widgets.yaml b/public/openapi/read/admin/extend/widgets.yaml similarity index 100% rename from public/openapi/api/admin/extend/widgets.yaml rename to public/openapi/read/admin/extend/widgets.yaml diff --git a/public/openapi/api/admin/groups/groupname/csv.yaml b/public/openapi/read/admin/groups/groupname/csv.yaml similarity index 100% rename from public/openapi/api/admin/groups/groupname/csv.yaml rename to public/openapi/read/admin/groups/groupname/csv.yaml diff --git a/public/openapi/api/admin/manage/admins-mods.yaml b/public/openapi/read/admin/manage/admins-mods.yaml similarity index 100% rename from public/openapi/api/admin/manage/admins-mods.yaml rename to public/openapi/read/admin/manage/admins-mods.yaml diff --git a/public/openapi/api/admin/manage/categories.yaml b/public/openapi/read/admin/manage/categories.yaml similarity index 100% rename from public/openapi/api/admin/manage/categories.yaml rename to public/openapi/read/admin/manage/categories.yaml diff --git a/public/openapi/api/admin/manage/categories/category_id.yaml b/public/openapi/read/admin/manage/categories/category_id.yaml similarity index 100% rename from public/openapi/api/admin/manage/categories/category_id.yaml rename to public/openapi/read/admin/manage/categories/category_id.yaml diff --git a/public/openapi/api/admin/manage/categories/category_id/analytics.yaml b/public/openapi/read/admin/manage/categories/category_id/analytics.yaml similarity index 100% rename from public/openapi/api/admin/manage/categories/category_id/analytics.yaml rename to public/openapi/read/admin/manage/categories/category_id/analytics.yaml diff --git a/public/openapi/api/admin/manage/digest.yaml b/public/openapi/read/admin/manage/digest.yaml similarity index 100% rename from public/openapi/api/admin/manage/digest.yaml rename to public/openapi/read/admin/manage/digest.yaml diff --git a/public/openapi/api/admin/manage/groups.yaml b/public/openapi/read/admin/manage/groups.yaml similarity index 100% rename from public/openapi/api/admin/manage/groups.yaml rename to public/openapi/read/admin/manage/groups.yaml diff --git a/public/openapi/api/admin/manage/groups/name.yaml b/public/openapi/read/admin/manage/groups/name.yaml similarity index 100% rename from public/openapi/api/admin/manage/groups/name.yaml rename to public/openapi/read/admin/manage/groups/name.yaml diff --git a/public/openapi/api/admin/manage/privileges/cid.yaml b/public/openapi/read/admin/manage/privileges/cid.yaml similarity index 100% rename from public/openapi/api/admin/manage/privileges/cid.yaml rename to public/openapi/read/admin/manage/privileges/cid.yaml diff --git a/public/openapi/api/admin/manage/registration.yaml b/public/openapi/read/admin/manage/registration.yaml similarity index 100% rename from public/openapi/api/admin/manage/registration.yaml rename to public/openapi/read/admin/manage/registration.yaml diff --git a/public/openapi/api/admin/manage/tags.yaml b/public/openapi/read/admin/manage/tags.yaml similarity index 100% rename from public/openapi/api/admin/manage/tags.yaml rename to public/openapi/read/admin/manage/tags.yaml diff --git a/public/openapi/api/admin/manage/uploads.yaml b/public/openapi/read/admin/manage/uploads.yaml similarity index 100% rename from public/openapi/api/admin/manage/uploads.yaml rename to public/openapi/read/admin/manage/uploads.yaml diff --git a/public/openapi/api/admin/manage/users.yaml b/public/openapi/read/admin/manage/users.yaml similarity index 100% rename from public/openapi/api/admin/manage/users.yaml rename to public/openapi/read/admin/manage/users.yaml diff --git a/public/openapi/api/admin/manage/users/banned.yaml b/public/openapi/read/admin/manage/users/banned.yaml similarity index 100% rename from public/openapi/api/admin/manage/users/banned.yaml rename to public/openapi/read/admin/manage/users/banned.yaml diff --git a/public/openapi/api/admin/manage/users/flagged.yaml b/public/openapi/read/admin/manage/users/flagged.yaml similarity index 100% rename from public/openapi/api/admin/manage/users/flagged.yaml rename to public/openapi/read/admin/manage/users/flagged.yaml diff --git a/public/openapi/api/admin/manage/users/inactive.yaml b/public/openapi/read/admin/manage/users/inactive.yaml similarity index 100% rename from public/openapi/api/admin/manage/users/inactive.yaml rename to public/openapi/read/admin/manage/users/inactive.yaml diff --git a/public/openapi/api/admin/manage/users/latest.yaml b/public/openapi/read/admin/manage/users/latest.yaml similarity index 100% rename from public/openapi/api/admin/manage/users/latest.yaml rename to public/openapi/read/admin/manage/users/latest.yaml diff --git a/public/openapi/api/admin/manage/users/most-reputation.yaml b/public/openapi/read/admin/manage/users/most-reputation.yaml similarity index 100% rename from public/openapi/api/admin/manage/users/most-reputation.yaml rename to public/openapi/read/admin/manage/users/most-reputation.yaml diff --git a/public/openapi/api/admin/manage/users/no-posts.yaml b/public/openapi/read/admin/manage/users/no-posts.yaml similarity index 100% rename from public/openapi/api/admin/manage/users/no-posts.yaml rename to public/openapi/read/admin/manage/users/no-posts.yaml diff --git a/public/openapi/api/admin/manage/users/not-validated.yaml b/public/openapi/read/admin/manage/users/not-validated.yaml similarity index 100% rename from public/openapi/api/admin/manage/users/not-validated.yaml rename to public/openapi/read/admin/manage/users/not-validated.yaml diff --git a/public/openapi/api/admin/manage/users/search.yaml b/public/openapi/read/admin/manage/users/search.yaml similarity index 100% rename from public/openapi/api/admin/manage/users/search.yaml rename to public/openapi/read/admin/manage/users/search.yaml diff --git a/public/openapi/api/admin/manage/users/top-posters.yaml b/public/openapi/read/admin/manage/users/top-posters.yaml similarity index 100% rename from public/openapi/api/admin/manage/users/top-posters.yaml rename to public/openapi/read/admin/manage/users/top-posters.yaml diff --git a/public/openapi/api/admin/settings/homepage.yaml b/public/openapi/read/admin/settings/homepage.yaml similarity index 100% rename from public/openapi/api/admin/settings/homepage.yaml rename to public/openapi/read/admin/settings/homepage.yaml diff --git a/public/openapi/api/admin/settings/languages.yaml b/public/openapi/read/admin/settings/languages.yaml similarity index 100% rename from public/openapi/api/admin/settings/languages.yaml rename to public/openapi/read/admin/settings/languages.yaml diff --git a/public/openapi/api/admin/settings/navigation.yaml b/public/openapi/read/admin/settings/navigation.yaml similarity index 100% rename from public/openapi/api/admin/settings/navigation.yaml rename to public/openapi/read/admin/settings/navigation.yaml diff --git a/public/openapi/api/admin/settings/social.yaml b/public/openapi/read/admin/settings/social.yaml similarity index 100% rename from public/openapi/api/admin/settings/social.yaml rename to public/openapi/read/admin/settings/social.yaml diff --git a/public/openapi/api/admin/settings/term.yaml b/public/openapi/read/admin/settings/term.yaml similarity index 100% rename from public/openapi/api/admin/settings/term.yaml rename to public/openapi/read/admin/settings/term.yaml diff --git a/public/openapi/api/admin/upload/file.yaml b/public/openapi/read/admin/upload/file.yaml similarity index 100% rename from public/openapi/api/admin/upload/file.yaml rename to public/openapi/read/admin/upload/file.yaml diff --git a/public/openapi/api/admin/uploadDefaultAvatar.yaml b/public/openapi/read/admin/uploadDefaultAvatar.yaml similarity index 100% rename from public/openapi/api/admin/uploadDefaultAvatar.yaml rename to public/openapi/read/admin/uploadDefaultAvatar.yaml diff --git a/public/openapi/api/admin/uploadMaskableIcon.yaml b/public/openapi/read/admin/uploadMaskableIcon.yaml similarity index 100% rename from public/openapi/api/admin/uploadMaskableIcon.yaml rename to public/openapi/read/admin/uploadMaskableIcon.yaml diff --git a/public/openapi/api/admin/uploadOgImage.yaml b/public/openapi/read/admin/uploadOgImage.yaml similarity index 100% rename from public/openapi/api/admin/uploadOgImage.yaml rename to public/openapi/read/admin/uploadOgImage.yaml diff --git a/public/openapi/api/admin/uploadTouchIcon.yaml b/public/openapi/read/admin/uploadTouchIcon.yaml similarity index 100% rename from public/openapi/api/admin/uploadTouchIcon.yaml rename to public/openapi/read/admin/uploadTouchIcon.yaml diff --git a/public/openapi/api/admin/uploadfavicon.yaml b/public/openapi/read/admin/uploadfavicon.yaml similarity index 100% rename from public/openapi/api/admin/uploadfavicon.yaml rename to public/openapi/read/admin/uploadfavicon.yaml diff --git a/public/openapi/api/admin/uploadlogo.yaml b/public/openapi/read/admin/uploadlogo.yaml similarity index 100% rename from public/openapi/api/admin/uploadlogo.yaml rename to public/openapi/read/admin/uploadlogo.yaml diff --git a/public/openapi/api/admin/users/csv.yaml b/public/openapi/read/admin/users/csv.yaml similarity index 100% rename from public/openapi/api/admin/users/csv.yaml rename to public/openapi/read/admin/users/csv.yaml diff --git a/public/openapi/api/categories.yaml b/public/openapi/read/categories.yaml similarity index 100% rename from public/openapi/api/categories.yaml rename to public/openapi/read/categories.yaml diff --git a/public/openapi/api/categories/cid/moderators.yaml b/public/openapi/read/categories/cid/moderators.yaml similarity index 100% rename from public/openapi/api/categories/cid/moderators.yaml rename to public/openapi/read/categories/cid/moderators.yaml diff --git a/public/openapi/api/category/category_id/slug/topic_index.yaml b/public/openapi/read/category/category_id/slug/topic_index.yaml similarity index 100% rename from public/openapi/api/category/category_id/slug/topic_index.yaml rename to public/openapi/read/category/category_id/slug/topic_index.yaml diff --git a/public/openapi/api/category/cid/id.yaml b/public/openapi/read/category/cid/id.yaml similarity index 100% rename from public/openapi/api/category/cid/id.yaml rename to public/openapi/read/category/cid/id.yaml diff --git a/public/openapi/api/chats/roomid.yaml b/public/openapi/read/chats/roomid.yaml similarity index 100% rename from public/openapi/api/chats/roomid.yaml rename to public/openapi/read/chats/roomid.yaml diff --git a/public/openapi/api/config.yaml b/public/openapi/read/config.yaml similarity index 100% rename from public/openapi/api/config.yaml rename to public/openapi/read/config.yaml diff --git a/public/openapi/api/email/unsubscribe/token.yaml b/public/openapi/read/email/unsubscribe/token.yaml similarity index 100% rename from public/openapi/api/email/unsubscribe/token.yaml rename to public/openapi/read/email/unsubscribe/token.yaml diff --git a/public/openapi/api/flags.yaml b/public/openapi/read/flags.yaml similarity index 100% rename from public/openapi/api/flags.yaml rename to public/openapi/read/flags.yaml diff --git a/public/openapi/api/flags/flagId.yaml b/public/openapi/read/flags/flagId.yaml similarity index 100% rename from public/openapi/api/flags/flagId.yaml rename to public/openapi/read/flags/flagId.yaml diff --git a/public/openapi/api/groups.yaml b/public/openapi/read/groups.yaml similarity index 100% rename from public/openapi/api/groups.yaml rename to public/openapi/read/groups.yaml diff --git a/public/openapi/api/groups/slug.yaml b/public/openapi/read/groups/slug.yaml similarity index 100% rename from public/openapi/api/groups/slug.yaml rename to public/openapi/read/groups/slug.yaml diff --git a/public/openapi/api/groups/slug/members.yaml b/public/openapi/read/groups/slug/members.yaml similarity index 100% rename from public/openapi/api/groups/slug/members.yaml rename to public/openapi/read/groups/slug/members.yaml diff --git a/public/openapi/api/index.yaml b/public/openapi/read/index.yaml similarity index 100% rename from public/openapi/api/index.yaml rename to public/openapi/read/index.yaml diff --git a/public/openapi/api/ip-blacklist.yaml b/public/openapi/read/ip-blacklist.yaml similarity index 100% rename from public/openapi/api/ip-blacklist.yaml rename to public/openapi/read/ip-blacklist.yaml diff --git a/public/openapi/api/login.yaml b/public/openapi/read/login.yaml similarity index 100% rename from public/openapi/api/login.yaml rename to public/openapi/read/login.yaml diff --git a/public/openapi/api/me.yaml b/public/openapi/read/me.yaml similarity index 100% rename from public/openapi/api/me.yaml rename to public/openapi/read/me.yaml diff --git a/public/openapi/api/notifications.yaml b/public/openapi/read/notifications.yaml similarity index 100% rename from public/openapi/api/notifications.yaml rename to public/openapi/read/notifications.yaml diff --git a/public/openapi/api/popular.yaml b/public/openapi/read/popular.yaml similarity index 100% rename from public/openapi/api/popular.yaml rename to public/openapi/read/popular.yaml diff --git a/public/openapi/api/post-queue.yaml b/public/openapi/read/post-queue.yaml similarity index 100% rename from public/openapi/api/post-queue.yaml rename to public/openapi/read/post-queue.yaml diff --git a/public/openapi/api/post/pid.yaml b/public/openapi/read/post/pid.yaml similarity index 100% rename from public/openapi/api/post/pid.yaml rename to public/openapi/read/post/pid.yaml diff --git a/public/openapi/api/post/pid/id.yaml b/public/openapi/read/post/pid/id.yaml similarity index 100% rename from public/openapi/api/post/pid/id.yaml rename to public/openapi/read/post/pid/id.yaml diff --git a/public/openapi/api/post/upload.yaml b/public/openapi/read/post/upload.yaml similarity index 100% rename from public/openapi/api/post/upload.yaml rename to public/openapi/read/post/upload.yaml diff --git a/public/openapi/api/recent.yaml b/public/openapi/read/recent.yaml similarity index 100% rename from public/openapi/api/recent.yaml rename to public/openapi/read/recent.yaml diff --git a/public/openapi/api/recent/posts/term.yaml b/public/openapi/read/recent/posts/term.yaml similarity index 100% rename from public/openapi/api/recent/posts/term.yaml rename to public/openapi/read/recent/posts/term.yaml diff --git a/public/openapi/api/register.yaml b/public/openapi/read/register.yaml similarity index 100% rename from public/openapi/api/register.yaml rename to public/openapi/read/register.yaml diff --git a/public/openapi/api/registration-queue.yaml b/public/openapi/read/registration-queue.yaml similarity index 100% rename from public/openapi/api/registration-queue.yaml rename to public/openapi/read/registration-queue.yaml diff --git a/public/openapi/api/reset.yaml b/public/openapi/read/reset.yaml similarity index 100% rename from public/openapi/api/reset.yaml rename to public/openapi/read/reset.yaml diff --git a/public/openapi/api/reset/code.yaml b/public/openapi/read/reset/code.yaml similarity index 100% rename from public/openapi/api/reset/code.yaml rename to public/openapi/read/reset/code.yaml diff --git a/public/openapi/api/search.yaml b/public/openapi/read/search.yaml similarity index 100% rename from public/openapi/api/search.yaml rename to public/openapi/read/search.yaml diff --git a/public/openapi/api/self.yaml b/public/openapi/read/self.yaml similarity index 100% rename from public/openapi/api/self.yaml rename to public/openapi/read/self.yaml diff --git a/public/openapi/api/tags.yaml b/public/openapi/read/tags.yaml similarity index 100% rename from public/openapi/api/tags.yaml rename to public/openapi/read/tags.yaml diff --git a/public/openapi/api/tags/tag.yaml b/public/openapi/read/tags/tag.yaml similarity index 100% rename from public/openapi/api/tags/tag.yaml rename to public/openapi/read/tags/tag.yaml diff --git a/public/openapi/api/top.yaml b/public/openapi/read/top.yaml similarity index 100% rename from public/openapi/api/top.yaml rename to public/openapi/read/top.yaml diff --git a/public/openapi/api/topic/pagination/topic_id.yaml b/public/openapi/read/topic/pagination/topic_id.yaml similarity index 100% rename from public/openapi/api/topic/pagination/topic_id.yaml rename to public/openapi/read/topic/pagination/topic_id.yaml diff --git a/public/openapi/api/topic/teaser/topic_id.yaml b/public/openapi/read/topic/teaser/topic_id.yaml similarity index 100% rename from public/openapi/api/topic/teaser/topic_id.yaml rename to public/openapi/read/topic/teaser/topic_id.yaml diff --git a/public/openapi/api/topic/thumb/upload.yaml b/public/openapi/read/topic/thumb/upload.yaml similarity index 100% rename from public/openapi/api/topic/thumb/upload.yaml rename to public/openapi/read/topic/thumb/upload.yaml diff --git a/public/openapi/api/topic/tid/id.yaml b/public/openapi/read/topic/tid/id.yaml similarity index 100% rename from public/openapi/api/topic/tid/id.yaml rename to public/openapi/read/topic/tid/id.yaml diff --git a/public/openapi/api/topic/topic_id/slug/post_index.yaml b/public/openapi/read/topic/topic_id/slug/post_index.yaml similarity index 100% rename from public/openapi/api/topic/topic_id/slug/post_index.yaml rename to public/openapi/read/topic/topic_id/slug/post_index.yaml diff --git a/public/openapi/api/uid/uid.yaml b/public/openapi/read/uid/uid.yaml similarity index 100% rename from public/openapi/api/uid/uid.yaml rename to public/openapi/read/uid/uid.yaml diff --git a/public/openapi/api/unread.yaml b/public/openapi/read/unread.yaml similarity index 100% rename from public/openapi/api/unread.yaml rename to public/openapi/read/unread.yaml diff --git a/public/openapi/api/unread/total.yaml b/public/openapi/read/unread/total.yaml similarity index 100% rename from public/openapi/api/unread/total.yaml rename to public/openapi/read/unread/total.yaml diff --git a/public/openapi/api/user/email/email.yaml b/public/openapi/read/user/email/email.yaml similarity index 100% rename from public/openapi/api/user/email/email.yaml rename to public/openapi/read/user/email/email.yaml diff --git a/public/openapi/api/user/uid/uid.yaml b/public/openapi/read/user/uid/uid.yaml similarity index 100% rename from public/openapi/api/user/uid/uid.yaml rename to public/openapi/read/user/uid/uid.yaml diff --git a/public/openapi/api/user/uid/userslug/export/posts.yaml b/public/openapi/read/user/uid/userslug/export/posts.yaml similarity index 100% rename from public/openapi/api/user/uid/userslug/export/posts.yaml rename to public/openapi/read/user/uid/userslug/export/posts.yaml diff --git a/public/openapi/api/user/uid/userslug/export/profile.yaml b/public/openapi/read/user/uid/userslug/export/profile.yaml similarity index 100% rename from public/openapi/api/user/uid/userslug/export/profile.yaml rename to public/openapi/read/user/uid/userslug/export/profile.yaml diff --git a/public/openapi/api/user/uid/userslug/export/uploads.yaml b/public/openapi/read/user/uid/userslug/export/uploads.yaml similarity index 100% rename from public/openapi/api/user/uid/userslug/export/uploads.yaml rename to public/openapi/read/user/uid/userslug/export/uploads.yaml diff --git a/public/openapi/api/user/username/username.yaml b/public/openapi/read/user/username/username.yaml similarity index 100% rename from public/openapi/api/user/username/username.yaml rename to public/openapi/read/user/username/username.yaml diff --git a/public/openapi/api/user/userslug.yaml b/public/openapi/read/user/userslug.yaml similarity index 100% rename from public/openapi/api/user/userslug.yaml rename to public/openapi/read/user/userslug.yaml diff --git a/public/openapi/api/user/userslug/best.yaml b/public/openapi/read/user/userslug/best.yaml similarity index 100% rename from public/openapi/api/user/userslug/best.yaml rename to public/openapi/read/user/userslug/best.yaml diff --git a/public/openapi/api/user/userslug/blocks.yaml b/public/openapi/read/user/userslug/blocks.yaml similarity index 100% rename from public/openapi/api/user/userslug/blocks.yaml rename to public/openapi/read/user/userslug/blocks.yaml diff --git a/public/openapi/api/user/userslug/bookmarks.yaml b/public/openapi/read/user/userslug/bookmarks.yaml similarity index 100% rename from public/openapi/api/user/userslug/bookmarks.yaml rename to public/openapi/read/user/userslug/bookmarks.yaml diff --git a/public/openapi/api/user/userslug/categories.yaml b/public/openapi/read/user/userslug/categories.yaml similarity index 100% rename from public/openapi/api/user/userslug/categories.yaml rename to public/openapi/read/user/userslug/categories.yaml diff --git a/public/openapi/api/user/userslug/chats/roomid.yaml b/public/openapi/read/user/userslug/chats/roomid.yaml similarity index 100% rename from public/openapi/api/user/userslug/chats/roomid.yaml rename to public/openapi/read/user/userslug/chats/roomid.yaml diff --git a/public/openapi/api/user/userslug/consent.yaml b/public/openapi/read/user/userslug/consent.yaml similarity index 100% rename from public/openapi/api/user/userslug/consent.yaml rename to public/openapi/read/user/userslug/consent.yaml diff --git a/public/openapi/api/user/userslug/downvoted.yaml b/public/openapi/read/user/userslug/downvoted.yaml similarity index 100% rename from public/openapi/api/user/userslug/downvoted.yaml rename to public/openapi/read/user/userslug/downvoted.yaml diff --git a/public/openapi/api/user/userslug/edit.yaml b/public/openapi/read/user/userslug/edit.yaml similarity index 100% rename from public/openapi/api/user/userslug/edit.yaml rename to public/openapi/read/user/userslug/edit.yaml diff --git a/public/openapi/api/user/userslug/edit/email.yaml b/public/openapi/read/user/userslug/edit/email.yaml similarity index 100% rename from public/openapi/api/user/userslug/edit/email.yaml rename to public/openapi/read/user/userslug/edit/email.yaml diff --git a/public/openapi/api/user/userslug/edit/password.yaml b/public/openapi/read/user/userslug/edit/password.yaml similarity index 100% rename from public/openapi/api/user/userslug/edit/password.yaml rename to public/openapi/read/user/userslug/edit/password.yaml diff --git a/public/openapi/api/user/userslug/edit/username.yaml b/public/openapi/read/user/userslug/edit/username.yaml similarity index 100% rename from public/openapi/api/user/userslug/edit/username.yaml rename to public/openapi/read/user/userslug/edit/username.yaml diff --git a/public/openapi/api/user/userslug/followers.yaml b/public/openapi/read/user/userslug/followers.yaml similarity index 100% rename from public/openapi/api/user/userslug/followers.yaml rename to public/openapi/read/user/userslug/followers.yaml diff --git a/public/openapi/api/user/userslug/following.yaml b/public/openapi/read/user/userslug/following.yaml similarity index 100% rename from public/openapi/api/user/userslug/following.yaml rename to public/openapi/read/user/userslug/following.yaml diff --git a/public/openapi/api/user/userslug/groups.yaml b/public/openapi/read/user/userslug/groups.yaml similarity index 100% rename from public/openapi/api/user/userslug/groups.yaml rename to public/openapi/read/user/userslug/groups.yaml diff --git a/public/openapi/api/user/userslug/ignored.yaml b/public/openapi/read/user/userslug/ignored.yaml similarity index 100% rename from public/openapi/api/user/userslug/ignored.yaml rename to public/openapi/read/user/userslug/ignored.yaml diff --git a/public/openapi/api/user/userslug/info.yaml b/public/openapi/read/user/userslug/info.yaml similarity index 100% rename from public/openapi/api/user/userslug/info.yaml rename to public/openapi/read/user/userslug/info.yaml diff --git a/public/openapi/api/user/userslug/posts.yaml b/public/openapi/read/user/userslug/posts.yaml similarity index 100% rename from public/openapi/api/user/userslug/posts.yaml rename to public/openapi/read/user/userslug/posts.yaml diff --git a/public/openapi/api/user/userslug/session/uuid.yaml b/public/openapi/read/user/userslug/session/uuid.yaml similarity index 100% rename from public/openapi/api/user/userslug/session/uuid.yaml rename to public/openapi/read/user/userslug/session/uuid.yaml diff --git a/public/openapi/api/user/userslug/sessions.yaml b/public/openapi/read/user/userslug/sessions.yaml similarity index 100% rename from public/openapi/api/user/userslug/sessions.yaml rename to public/openapi/read/user/userslug/sessions.yaml diff --git a/public/openapi/api/user/userslug/settings.yaml b/public/openapi/read/user/userslug/settings.yaml similarity index 100% rename from public/openapi/api/user/userslug/settings.yaml rename to public/openapi/read/user/userslug/settings.yaml diff --git a/public/openapi/api/user/userslug/topics.yaml b/public/openapi/read/user/userslug/topics.yaml similarity index 100% rename from public/openapi/api/user/userslug/topics.yaml rename to public/openapi/read/user/userslug/topics.yaml diff --git a/public/openapi/api/user/userslug/uploads.yaml b/public/openapi/read/user/userslug/uploads.yaml similarity index 100% rename from public/openapi/api/user/userslug/uploads.yaml rename to public/openapi/read/user/userslug/uploads.yaml diff --git a/public/openapi/api/user/userslug/upvoted.yaml b/public/openapi/read/user/userslug/upvoted.yaml similarity index 100% rename from public/openapi/api/user/userslug/upvoted.yaml rename to public/openapi/read/user/userslug/upvoted.yaml diff --git a/public/openapi/api/user/userslug/watched.yaml b/public/openapi/read/user/userslug/watched.yaml similarity index 100% rename from public/openapi/api/user/userslug/watched.yaml rename to public/openapi/read/user/userslug/watched.yaml diff --git a/public/openapi/api/users.yaml b/public/openapi/read/users.yaml similarity index 100% rename from public/openapi/api/users.yaml rename to public/openapi/read/users.yaml diff --git a/public/openapi/write.yaml b/public/openapi/write.yaml index fe439d4ca1fd..4d23603ddb7a 100644 --- a/public/openapi/write.yaml +++ b/public/openapi/write.yaml @@ -29,1055 +29,38 @@ tags: description: Administrative calls to manage categories paths: /users/: - post: - tags: - - users - summary: create a user - description: This operation creates a new user account - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - username: - type: string - description: 'If the username is taken, a number will be appended' - password: - type: string - email: - type: string - required: - - username - example: - username: Dragon Fruit - password: s3cre7password - email: dragonfruit@example.org - responses: - '200': - description: user successfully created - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - $ref: components/schemas/UserObj.yaml#/UserObj - '400': - $ref: components/responses/400.yaml#/400 - '401': - $ref: components/responses/401.yaml#/401 - '403': - $ref: components/responses/403.yaml#/403 - '426': - $ref: components/responses/426.yaml#/426 - '500': - $ref: components/responses/500.yaml#/500 - delete: - tags: - - users - summary: delete one or more users - description: This operation deletes one or many user accounts, including their contributions (posts, topics, etc.) - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - uids: - type: array - description: A collection of uids - items: - type: number - example: - uids: - - 1 - - 2 - - 3 - responses: - '200': - description: user account(s) deleted - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - '/users/{uid}': - delete: - tags: - - users - summary: delete a single user account - parameters: - - in: path - name: uid - schema: - type: integer - required: true - description: uid of the user to delete - responses: - '200': - description: user account deleted - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - - put: - tags: - - users - summary: update a user account - parameters: - - in: path - name: uid - schema: - type: integer - required: true - description: uid of the user to update - requestBody: - required: true - content: - application/json: - schema: - $ref: components/schemas/UserRequest.yaml#/UserRequest - responses: - '200': - description: user profile updated - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - $ref: components/schemas/UserObj.yaml#/UserObj - '401': - $ref: components/responses/401.yaml#/401 - '403': - $ref: components/responses/403.yaml#/403 - '426': - $ref: components/responses/426.yaml#/426 - '500': - $ref: components/responses/500.yaml#/500 - '/users/{uid}/password': - put: - tags: - - users - summary: change a user's password - parameters: - - in: path - name: uid - schema: - type: integer - required: true - description: uid of the user to update - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - currentPassword: - type: string - description: test - example: oldp455word - newPassword: - type: string - example: s3cre7password - required: - - newPassword - responses: - '200': - description: user profile updated - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - '/users/{uid}/follow': - post: - tags: - - users - summary: follow a user - parameters: - - in: path - name: uid - schema: - type: integer - required: true - description: uid of the user to follow - responses: - '200': - description: successfully followed user - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - delete: - tags: - - users - summary: unfollows a user - parameters: - - in: path - name: uid - schema: - type: integer - required: true - description: uid of the user to unfollow - responses: - '200': - description: successfully unfollowed user - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - '/users/{uid}/ban': - put: - tags: - - users - summary: ban a user - parameters: - - in: path - name: uid - schema: - type: integer - required: true - description: uid of the user to ban - requestBody: - content: - application/json: - schema: - type: object - properties: - until: - type: number - description: UNIX timestamp of the ban expiry - example: 1585775608076 - reason: - type: string - example: the reason for the ban - responses: - '200': - description: successfully banned user - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - delete: - tags: - - users - summary: unbans a user - parameters: - - in: path - name: uid - schema: - type: integer - required: true - description: uid of the user to unban - responses: - '200': - description: successfully unbanned user - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - '/users/{uid}/tokens': - post: - tags: - - users - summary: generate a user token - description: This route can only be used to generate tokens for the same user. In other words, you cannot use this route to generate a token for a different user than the one you are authenticated as. - responses: - '200': - description: successfully generated a user token - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - delete: - tags: - - users - summary: delete user token - parameters: - - in: path - name: token - schema: - type: string - required: true - description: a valid API token - responses: - '200': - description: successfully deleted user token - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object + $ref: 'write/users.yaml' /categories/: - post: - tags: - - categories - summary: create a category - description: This operation creates a new category - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - name: - type: string - description: - type: string - parentCid: - type: number - cloneFromCid: - type: number - icon: - type: string - description: A ForkAwesome icon without the `fa-` prefix - bgColor: - type: string - color: - type: string - link: - type: string - class: - type: string - backgroundImage: - type: string - required: - - name - example: - name: My New Category - description: Lorem ipsum, dolor sit amet - parentCid: 0 - cloneFromCid: 0 - icon: bullhorn - bgColor: '#ffffff' - color: '#000000' - link: 'https://example.org' - class: 'col-md-3 col-xs-6' - backgroundImage: '/assets/relative/path/to/image' - responses: - '200': - description: category successfully created - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - $ref: components/schemas/CategoryObj.yaml#/CategoryObj + $ref: 'write/categories.yaml' /groups/: - post: - tags: - - groups - summary: create a new group - description: This operation creates a new group - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - name: - type: string - timestamp: - type: number - disableJoinRequests: - type: number - enum: [0, 1] - disableLeave: - type: number - enum: [0, 1] - hidden: - type: number - enum: [0, 1] - ownerUid: - type: number - private: - type: number - enum: [0, 1] - description: - type: string - userTitleEnabled: - type: number - enum: [0, 1] - createtime: - type: number - required: - - name - example: - name: 'My Test Group' - hidden: 1 - responses: - '200': - description: group successfully created - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - $ref: components/schemas/GroupObject.yaml#/GroupDataObject - delete: - tags: - - groups - summary: Delete an existing group - description: This operation deletes an existing group, all members within this group will cease to be members after the group is deleted. - responses: - '200': - description: group successfully deleted - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/groups.yaml' /groups/{slug}/membership/{uid}: - put: - tags: - - groups - summary: join a group - description: This operation joins an existing group, or causes another user to join a group. If the group is private and you are not an administrator, this method will cause that user to request membership, instead. For user _invitations_, you'll want to call `PUT /groups/{slug}/invites/{uid}`. - responses: - '200': - description: group successfully joined, or membership requested - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/groups/slug/membership/uid.yaml' /topics: - post: - tags: - - topics - summary: create a new topic - description: This operation creates a new topic with a post. Topic creation without a post is not allowed via the Write API as it is an internal-only method. - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - cid: - type: number - title: - type: string - content: - type: string - tags: - type: array - items: - type: string - required: - - cid - - title - - content - example: - cid: 1 - title: Test topic - content: This is the test topic's content - responses: - '200': - description: topic successfully created - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - $ref: components/schemas/TopicObject.yaml#/TopicObject + $ref: 'write/topics.yaml' /topics/{tid}: - post: - tags: - - topics - summary: peply to a topic - description: This operation creates a new reply to an existing topic. - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - content: - type: string - timestamp: - type: number - toPid: - type: number - required: - - content - example: - content: This is a test reply - responses: - '200': - description: post successfully created - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - $ref: components/schemas/PostsObject.yaml#/PostsObject - delete: - tags: - - topics - summary: delete a topic - description: This operation purges a topic and all of its posts (careful, there is no confirmation!) - responses: - '200': - description: Topic successfully purged - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/topics/tid.yaml' /topics/{tid}/state: - delete: - tags: - - topics - summary: delete a topic - description: This operation deletes an existing topic. - responses: - '200': - description: Topic successfully deleted - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} - put: - tags: - - topics - summary: restore a topic - description: This operation restores a topic. - responses: - '200': - description: Topic successfully restored - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/topics/tid/state.yaml' /topics/{tid}/lock: - put: - tags: - - topics - summary: lock a topic - description: This operation locks an existing topic. - responses: - '200': - description: Topic successfully locked - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} - delete: - tags: - - topics - summary: unlock a topic - description: This operation unlocks a topic. - responses: - '200': - description: Topic successfully unlocked - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/topics/tid/lock.yaml' /topics/{tid}/pin: - put: - tags: - - topics - summary: pin a topic - description: This operation pins an existing topic. - responses: - '200': - description: Topic successfully pinned - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} - delete: - tags: - - topics - summary: unpin a topic - description: This operation unpins a topic. - responses: - '200': - description: Topic successfully unpinned - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/topics/tid/pin.yaml' /topics/{tid}/follow: - put: - tags: - - topics - summary: follow a topic - description: This operation follows (or watches) a topic. - responses: - '200': - description: Topic successfully followed - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} - delete: - tags: - - topics - summary: unfollow a topic - description: This operation unfollows (or unwatches) a topic. - responses: - '200': - description: Topic successfully unwatched - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/topics/tid/follow.yaml' /topics/{tid}/ignore: - put: - tags: - - topics - summary: ignore a topic - description: This operation ignores (or watches) a topic. - responses: - '200': - description: Topic successfully ignored - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} - delete: - tags: - - topics - summary: unignore a topic - description: This operation unignores (or unfollows/unwatches) a topic. It is functionally identical to `DEL /topics/{tid}/follow`. - responses: - '200': - description: Topic successfully unignored/unwatched - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/topics/tid/ignore.yaml' /topics/{tid}/tags: - put: - tags: - - topics - summary: adds tags to a topic - description: This operation adds tags to a topic - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - tags: - type: array - description: 'An array of tags' - items: - type: string - example: - tags: - - test - - foobar - responses: - '200': - description: Topic tags successfully added - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} - delete: - tags: - - topics - summary: Removes all tags from a topic - description: This operation removed all tags associated with a topic. - responses: - '200': - description: Topic tags successfully removed. - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/topics/tid/tags.yaml' /posts/{pid}: - put: - tags: - - posts - summary: edit a post - description: This operation edits a post - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - content: - type: string - description: New post content - title: - type: string - description: Topic title, only accepted for main posts - required: - - content - example: - content: 'New post content' - title: 'New title' - responses: - '200': - description: Post successfully edited - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - $ref: components/schemas/PostsObject.yaml#/PostsObject - delete: - tags: - - posts - summary: purge a post - description: This operation purges a post. - responses: - '200': - description: Post successfully purged - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/posts/pid.yaml' /posts/{pid}/state: - put: - tags: - - posts - summary: restore a post - description: This operation restores a post. - responses: - '200': - description: Topic successfully restored - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} - delete: - tags: - - posts - summary: deletes a post - description: This operation soft deletes a post. - responses: - '200': - description: Post successfully deleted - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/posts/pid/state.yaml' /posts/{pid}/vote: - put: - tags: - - posts - summary: vote on a post - description: This operation casts a vote on a post. - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - delta: - type: number - description: Positive integer for upvote, negative integer for downvote (0 to unvote.) - example: - delta: 1 - responses: - '200': - description: Post successfully upvoted - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} - delete: - tags: - - posts - summary: unvote a post - description: This operation removes a pre-cast vote on a post. - responses: - '200': - description: Post successfully unvoted - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/posts/pid/vote.yaml' /posts/{pid}/bookmark: - put: - tags: - - posts - summary: bookmark a post - description: This operation bookmarks a post. - responses: - '200': - description: Post successfully bookmarked - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} - delete: - tags: - - posts - summary: unbookmark a post - description: This operation unbookmarks a post. - responses: - '200': - description: Post successfully unbookmarked - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/posts/pid/bookmark.yaml' /admin/settings/{setting}: - put: - tags: - - admin - summary: update configuration setting - description: This operation updates a configuration setting in the backend. The calling user must have the `admin:settings` privilege (or be a superadmin) in order for this call to proceed. - parameters: - - in: path - name: setting - schema: - type: string - required: true - description: backend id of the setting to update - responses: - '200': - description: Admin setting updated - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} + $ref: 'write/admin/settings/setting.yaml' /files: - delete: - tags: - - files - summary: delete uploaded file - description: This operation deletes a file uploaded to NodeBB - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - path: - type: string - description: Path to the file (relative to the configured `upload_path`) - required: - - path - example: - path: files/uploaded_file.jpg - responses: - '200': - description: File deleted - content: - application/json: - schema: - type: object - properties: - status: - $ref: components/schemas/Status.yaml#/Status - response: - type: object - properties: {} \ No newline at end of file + $ref: 'write/files.yaml' \ No newline at end of file diff --git a/public/openapi/write/admin/settings/setting.yaml b/public/openapi/write/admin/settings/setting.yaml new file mode 100644 index 000000000000..3b1aeecde019 --- /dev/null +++ b/public/openapi/write/admin/settings/setting.yaml @@ -0,0 +1,25 @@ +put: + tags: + - admin + summary: update configuration setting + description: This operation updates a configuration setting in the backend. The calling user must have the `admin:settings` privilege (or be a superadmin) in order for this call to proceed. + parameters: + - in: path + name: setting + schema: + type: string + required: true + description: backend id of the setting to update + responses: + '200': + description: Admin setting updated + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/categories.yaml b/public/openapi/write/categories.yaml new file mode 100644 index 000000000000..833c9066025f --- /dev/null +++ b/public/openapi/write/categories.yaml @@ -0,0 +1,58 @@ +post: + tags: + - categories + summary: create a category + description: This operation creates a new category + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: + type: string + parentCid: + type: number + cloneFromCid: + type: number + icon: + type: string + description: A ForkAwesome icon without the `fa-` prefix + bgColor: + type: string + color: + type: string + link: + type: string + class: + type: string + backgroundImage: + type: string + required: + - name + example: + name: My New Category + description: Lorem ipsum, dolor sit amet + parentCid: 0 + cloneFromCid: 0 + icon: bullhorn + bgColor: '#ffffff' + color: '#000000' + link: 'https://example.org' + class: 'col-md-3 col-xs-6' + backgroundImage: '/assets/relative/path/to/image' + responses: + '200': + description: category successfully created + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + $ref: ../components/schemas/CategoryObj.yaml#/CategoryObj \ No newline at end of file diff --git a/public/openapi/write/files.yaml b/public/openapi/write/files.yaml new file mode 100644 index 000000000000..b4cbaabbaf56 --- /dev/null +++ b/public/openapi/write/files.yaml @@ -0,0 +1,32 @@ +delete: + tags: + - files + summary: delete uploaded file + description: This operation deletes a file uploaded to NodeBB + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + path: + type: string + description: Path to the file (relative to the configured `upload_path`) + required: + - path + example: + path: files/uploaded_file.jpg + responses: + '200': + description: File deleted + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/groups.yaml b/public/openapi/write/groups.yaml new file mode 100644 index 000000000000..411620104568 --- /dev/null +++ b/public/openapi/write/groups.yaml @@ -0,0 +1,72 @@ +post: + tags: + - groups + summary: create a new group + description: This operation creates a new group + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + timestamp: + type: number + disableJoinRequests: + type: number + enum: [0, 1] + disableLeave: + type: number + enum: [0, 1] + hidden: + type: number + enum: [0, 1] + ownerUid: + type: number + private: + type: number + enum: [0, 1] + description: + type: string + userTitleEnabled: + type: number + enum: [0, 1] + createtime: + type: number + required: + - name + example: + name: 'My Test Group' + hidden: 1 + responses: + '200': + description: group successfully created + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + $ref: ../components/schemas/GroupObject.yaml#/GroupDataObject +delete: + tags: + - groups + summary: Delete an existing group + description: This operation deletes an existing group, all members within this group will cease to be members after the group is deleted. + responses: + '200': + description: group successfully deleted + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/groups/slug/membership/uid.yaml b/public/openapi/write/groups/slug/membership/uid.yaml new file mode 100644 index 000000000000..fd7222a3a033 --- /dev/null +++ b/public/openapi/write/groups/slug/membership/uid.yaml @@ -0,0 +1,18 @@ +put: + tags: + - groups + summary: join a group + description: This operation joins an existing group, or causes another user to join a group. If the group is private and you are not an administrator, this method will cause that user to request membership, instead. For user _invitations_, you'll want to call `PUT /groups/{slug}/invites/{uid}`. + responses: + '200': + description: group successfully joined, or membership requested + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/posts/pid.yaml b/public/openapi/write/posts/pid.yaml new file mode 100644 index 000000000000..0942b10bd45b --- /dev/null +++ b/public/openapi/write/posts/pid.yaml @@ -0,0 +1,53 @@ +put: + tags: + - posts + summary: edit a post + description: This operation edits a post + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + content: + type: string + description: New post content + title: + type: string + description: Topic title, only accepted for main posts + required: + - content + example: + content: 'New post content' + title: 'New title' + responses: + '200': + description: Post successfully edited + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../components/schemas/Status.yaml#/Status + response: + $ref: ../../components/schemas/PostsObject.yaml#/PostsObject +delete: + tags: + - posts + summary: purge a post + description: This operation purges a post. + responses: + '200': + description: Post successfully purged + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/posts/pid/bookmark.yaml b/public/openapi/write/posts/pid/bookmark.yaml new file mode 100644 index 000000000000..66421a511199 --- /dev/null +++ b/public/openapi/write/posts/pid/bookmark.yaml @@ -0,0 +1,36 @@ +put: + tags: + - posts + summary: bookmark a post + description: This operation bookmarks a post. + responses: + '200': + description: Post successfully bookmarked + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} +delete: + tags: + - posts + summary: unbookmark a post + description: This operation unbookmarks a post. + responses: + '200': + description: Post successfully unbookmarked + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/posts/pid/state.yaml b/public/openapi/write/posts/pid/state.yaml new file mode 100644 index 000000000000..c2f958d94e74 --- /dev/null +++ b/public/openapi/write/posts/pid/state.yaml @@ -0,0 +1,36 @@ +put: + tags: + - posts + summary: restore a post + description: This operation restores a post. + responses: + '200': + description: Topic successfully restored + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} +delete: + tags: + - posts + summary: deletes a post + description: This operation soft deletes a post. + responses: + '200': + description: Post successfully deleted + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/posts/pid/vote.yaml b/public/openapi/write/posts/pid/vote.yaml new file mode 100644 index 000000000000..e93dd6f149b3 --- /dev/null +++ b/public/openapi/write/posts/pid/vote.yaml @@ -0,0 +1,48 @@ +put: + tags: + - posts + summary: vote on a post + description: This operation casts a vote on a post. + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + delta: + type: number + description: Positive integer for upvote, negative integer for downvote (0 to unvote.) + example: + delta: 1 + responses: + '200': + description: Post successfully upvoted + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} +delete: + tags: + - posts + summary: unvote a post + description: This operation removes a pre-cast vote on a post. + responses: + '200': + description: Post successfully unvoted + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/topics.yaml b/public/openapi/write/topics.yaml new file mode 100644 index 000000000000..5ba1a9809d65 --- /dev/null +++ b/public/openapi/write/topics.yaml @@ -0,0 +1,42 @@ +post: + tags: + - topics + summary: create a new topic + description: This operation creates a new topic with a post. Topic creation without a post is not allowed via the Write API as it is an internal-only method. + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + cid: + type: number + title: + type: string + content: + type: string + tags: + type: array + items: + type: string + required: + - cid + - title + - content + example: + cid: 1 + title: Test topic + content: This is the test topic's content + responses: + '200': + description: topic successfully created + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + $ref: ../components/schemas/TopicObject.yaml#/TopicObject \ No newline at end of file diff --git a/public/openapi/write/topics/tid.yaml b/public/openapi/write/topics/tid.yaml new file mode 100644 index 000000000000..692bfd51aa21 --- /dev/null +++ b/public/openapi/write/topics/tid.yaml @@ -0,0 +1,52 @@ +post: + tags: + - topics + summary: peply to a topic + description: This operation creates a new reply to an existing topic. + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + content: + type: string + timestamp: + type: number + toPid: + type: number + required: + - content + example: + content: This is a test reply + responses: + '200': + description: post successfully created + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../components/schemas/Status.yaml#/Status + response: + $ref: ../../components/schemas/PostsObject.yaml#/PostsObject +delete: + tags: + - topics + summary: delete a topic + description: This operation purges a topic and all of its posts (careful, there is no confirmation!) + responses: + '200': + description: Topic successfully purged + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/topics/tid/follow.yaml b/public/openapi/write/topics/tid/follow.yaml new file mode 100644 index 000000000000..6d3a28d6ad0e --- /dev/null +++ b/public/openapi/write/topics/tid/follow.yaml @@ -0,0 +1,36 @@ +put: + tags: + - topics + summary: follow a topic + description: This operation follows (or watches) a topic. + responses: + '200': + description: Topic successfully followed + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} +delete: + tags: + - topics + summary: unfollow a topic + description: This operation unfollows (or unwatches) a topic. + responses: + '200': + description: Topic successfully unwatched + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/topics/tid/ignore.yaml b/public/openapi/write/topics/tid/ignore.yaml new file mode 100644 index 000000000000..8c264ac8dc62 --- /dev/null +++ b/public/openapi/write/topics/tid/ignore.yaml @@ -0,0 +1,36 @@ +put: + tags: + - topics + summary: ignore a topic + description: This operation ignores (or watches) a topic. + responses: + '200': + description: Topic successfully ignored + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} +delete: + tags: + - topics + summary: unignore a topic + description: This operation unignores (or unfollows/unwatches) a topic. It is functionally identical to `DEL /topics/{tid}/follow`. + responses: + '200': + description: Topic successfully unignored/unwatched + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/topics/tid/lock.yaml b/public/openapi/write/topics/tid/lock.yaml new file mode 100644 index 000000000000..51ac90c997f4 --- /dev/null +++ b/public/openapi/write/topics/tid/lock.yaml @@ -0,0 +1,36 @@ +put: + tags: + - topics + summary: lock a topic + description: This operation locks an existing topic. + responses: + '200': + description: Topic successfully locked + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} +delete: + tags: + - topics + summary: unlock a topic + description: This operation unlocks a topic. + responses: + '200': + description: Topic successfully unlocked + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/topics/tid/pin.yaml b/public/openapi/write/topics/tid/pin.yaml new file mode 100644 index 000000000000..d49a31598020 --- /dev/null +++ b/public/openapi/write/topics/tid/pin.yaml @@ -0,0 +1,36 @@ +put: + tags: + - topics + summary: pin a topic + description: This operation pins an existing topic. + responses: + '200': + description: Topic successfully pinned + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} +delete: + tags: + - topics + summary: unpin a topic + description: This operation unpins a topic. + responses: + '200': + description: Topic successfully unpinned + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/topics/tid/state.yaml b/public/openapi/write/topics/tid/state.yaml new file mode 100644 index 000000000000..7f147646b990 --- /dev/null +++ b/public/openapi/write/topics/tid/state.yaml @@ -0,0 +1,36 @@ +delete: + tags: + - topics + summary: delete a topic + description: This operation deletes an existing topic. + responses: + '200': + description: Topic successfully deleted + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} +put: + tags: + - topics + summary: restore a topic + description: This operation restores a topic. + responses: + '200': + description: Topic successfully restored + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/topics/tid/tags.yaml b/public/openapi/write/topics/tid/tags.yaml new file mode 100644 index 000000000000..c333c50133f4 --- /dev/null +++ b/public/openapi/write/topics/tid/tags.yaml @@ -0,0 +1,52 @@ +put: + tags: + - topics + summary: adds tags to a topic + description: This operation adds tags to a topic + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + tags: + type: array + description: 'An array of tags' + items: + type: string + example: + tags: + - test + - foobar + responses: + '200': + description: Topic tags successfully added + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} +delete: + tags: + - topics + summary: Removes all tags from a topic + description: This operation removed all tags associated with a topic. + responses: + '200': + description: Topic tags successfully removed. + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/openapi/write/users.yaml b/public/openapi/write/users.yaml new file mode 100644 index 000000000000..c21bf89157f0 --- /dev/null +++ b/public/openapi/write/users.yaml @@ -0,0 +1,330 @@ +post: + tags: + - users + summary: create a user + description: This operation creates a new user account + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + username: + type: string + description: 'If the username is taken, a number will be appended' + password: + type: string + email: + type: string + required: + - username + example: + username: Dragon Fruit + password: s3cre7password + email: dragonfruit@example.org + responses: + '200': + description: user successfully created + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + $ref: ../components/schemas/UserObj.yaml#/UserObj + '400': + $ref: ../components/responses/400.yaml#/400 + '401': + $ref: ../components/responses/401.yaml#/401 + '403': + $ref: ../components/responses/403.yaml#/403 + '426': + $ref: ../components/responses/426.yaml#/426 + '500': + $ref: ../components/responses/500.yaml#/500 +delete: + tags: + - users + summary: delete one or more users + description: This operation deletes one or many user accounts, including their contributions (posts, topics, etc.) + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + uids: + type: array + description: A collection of uids + items: + type: number + example: + uids: + - 1 + - 2 + - 3 + responses: + '200': + description: user account(s) deleted + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + type: object + '/users/{uid}': + delete: + tags: + - users + summary: delete a single user account + parameters: + - in: path + name: uid + schema: + type: integer + required: true + description: uid of the user to delete + responses: + '200': + description: user account deleted + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + type: object + put: + tags: + - users + summary: update a user account + parameters: + - in: path + name: uid + schema: + type: integer + required: true + description: uid of the user to update + requestBody: + required: true + content: + application/json: + schema: + $ref: ../components/schemas/UserRequest.yaml#/UserRequest + responses: + '200': + description: user profile updated + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + $ref: ../components/schemas/UserObj.yaml#/UserObj + '401': + $ref: ../components/responses/401.yaml#/401 + '403': + $ref: ../components/responses/403.yaml#/403 + '426': + $ref: ../components/responses/426.yaml#/426 + '500': + $ref: ../components/responses/500.yaml#/500 + '/users/{uid}/password': + put: + tags: + - users + summary: change a user's password + parameters: + - in: path + name: uid + schema: + type: integer + required: true + description: uid of the user to update + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + currentPassword: + type: string + description: test + example: oldp455word + newPassword: + type: string + example: s3cre7password + required: + - newPassword + responses: + '200': + description: user profile updated + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + type: object + '/users/{uid}/follow': + post: + tags: + - users + summary: follow a user + parameters: + - in: path + name: uid + schema: + type: integer + required: true + description: uid of the user to follow + responses: + '200': + description: successfully followed user + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + type: object + delete: + tags: + - users + summary: unfollows a user + parameters: + - in: path + name: uid + schema: + type: integer + required: true + description: uid of the user to unfollow + responses: + '200': + description: successfully unfollowed user + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + type: object + '/users/{uid}/ban': + put: + tags: + - users + summary: ban a user + parameters: + - in: path + name: uid + schema: + type: integer + required: true + description: uid of the user to ban + requestBody: + content: + application/json: + schema: + type: object + properties: + until: + type: number + description: UNIX timestamp of the ban expiry + example: 1585775608076 + reason: + type: string + example: the reason for the ban + responses: + '200': + description: successfully banned user + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + type: object + delete: + tags: + - users + summary: unbans a user + parameters: + - in: path + name: uid + schema: + type: integer + required: true + description: uid of the user to unban + responses: + '200': + description: successfully unbanned user + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + type: object + '/users/{uid}/tokens': + post: + tags: + - users + summary: generate a user token + description: This route can only be used to generate tokens for the same user. In other words, you cannot use this route to generate a token for a different user than the one you are authenticated as. + responses: + '200': + description: successfully generated a user token + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + type: object + delete: + tags: + - users + summary: delete user token + parameters: + - in: path + name: token + schema: + type: string + required: true + description: a valid API token + responses: + '200': + description: successfully deleted user token + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../components/schemas/Status.yaml#/Status + response: + type: object \ No newline at end of file