mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-29 10:06:13 +01:00
docs: openapi schema for user/group exist check, session deletion
This commit is contained in:
@@ -42,6 +42,8 @@ paths:
|
|||||||
$ref: 'write/users/uid/ban.yaml'
|
$ref: 'write/users/uid/ban.yaml'
|
||||||
/users/{uid}/tokens/{token}:
|
/users/{uid}/tokens/{token}:
|
||||||
$ref: 'write/users/uid/tokens/token.yaml'
|
$ref: 'write/users/uid/tokens/token.yaml'
|
||||||
|
/users/{uid}/sessions/{uuid}:
|
||||||
|
$ref: 'write/users/uid/sessions/uuid.yaml'
|
||||||
/categories/:
|
/categories/:
|
||||||
$ref: 'write/categories.yaml'
|
$ref: 'write/categories.yaml'
|
||||||
/groups/:
|
/groups/:
|
||||||
|
|||||||
@@ -1,3 +1,20 @@
|
|||||||
|
head:
|
||||||
|
tags:
|
||||||
|
- groups
|
||||||
|
summary: check if a group exists
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: slug
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
description: group slug (that also acts as its identifier) to check
|
||||||
|
example: my-test-group
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: group found
|
||||||
|
'404':
|
||||||
|
description: group not found
|
||||||
delete:
|
delete:
|
||||||
tags:
|
tags:
|
||||||
- groups
|
- groups
|
||||||
|
|||||||
@@ -1,3 +1,20 @@
|
|||||||
|
head:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: check if a user exists
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: uid
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
required: true
|
||||||
|
description: uid of the user to check
|
||||||
|
example: 3
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: user found
|
||||||
|
'404':
|
||||||
|
description: user not found
|
||||||
delete:
|
delete:
|
||||||
tags:
|
tags:
|
||||||
- users
|
- users
|
||||||
|
|||||||
31
public/openapi/write/users/uid/sessions/uuid.yaml
Normal file
31
public/openapi/write/users/uid/sessions/uuid.yaml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
delete:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: revoke a user session
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: uid
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
required: true
|
||||||
|
description: uid of the user's session
|
||||||
|
example: 3
|
||||||
|
- in: path
|
||||||
|
name: uuid
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
description: uuid of the user's session
|
||||||
|
example: 7c1a66b3-90e1-41f4-9f74-2b2edaebf917
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: user session revoked
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
status:
|
||||||
|
$ref: ../../../../components/schemas/Status.yaml#/Status
|
||||||
|
response:
|
||||||
|
type: object
|
||||||
@@ -10,8 +10,8 @@ const setupApiRoute = routeHelpers.setupApiRoute;
|
|||||||
module.exports = function () {
|
module.exports = function () {
|
||||||
const middlewares = [middleware.authenticate];
|
const middlewares = [middleware.authenticate];
|
||||||
|
|
||||||
setupApiRoute(router, 'head', '/:slug', [middleware.assert.group], controllers.write.groups.exists);
|
|
||||||
setupApiRoute(router, 'post', '/', [...middlewares, middleware.checkRequired.bind(null, ['name'])], controllers.write.groups.create);
|
setupApiRoute(router, 'post', '/', [...middlewares, middleware.checkRequired.bind(null, ['name'])], controllers.write.groups.create);
|
||||||
|
setupApiRoute(router, 'head', '/:slug', [middleware.assert.group], controllers.write.groups.exists);
|
||||||
setupApiRoute(router, 'delete', '/:slug', [...middlewares, middleware.assert.group], controllers.write.groups.delete);
|
setupApiRoute(router, 'delete', '/:slug', [...middlewares, middleware.assert.group], controllers.write.groups.delete);
|
||||||
setupApiRoute(router, 'put', '/:slug/membership/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.join);
|
setupApiRoute(router, 'put', '/:slug/membership/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.join);
|
||||||
setupApiRoute(router, 'delete', '/:slug/membership/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.leave);
|
setupApiRoute(router, 'delete', '/:slug/membership/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.leave);
|
||||||
|
|||||||
14
test/api.js
14
test/api.js
@@ -49,6 +49,18 @@ describe('API', async () => {
|
|||||||
example: utils.generateUUID(),
|
example: utils.generateUUID(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
'/users/{uid}/sessions/{uuid}': [
|
||||||
|
{
|
||||||
|
in: 'path',
|
||||||
|
name: 'uid',
|
||||||
|
example: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
in: 'path',
|
||||||
|
name: 'uuid',
|
||||||
|
example: '', // to be defined below...
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -120,7 +132,7 @@ describe('API', async () => {
|
|||||||
await socketUser.exportPosts({ uid: adminUid }, { uid: adminUid });
|
await socketUser.exportPosts({ uid: adminUid }, { uid: adminUid });
|
||||||
await socketUser.exportUploads({ uid: adminUid }, { uid: adminUid });
|
await socketUser.exportUploads({ uid: adminUid }, { uid: adminUid });
|
||||||
// wait for export child process to complete
|
// wait for export child process to complete
|
||||||
await wait(5000);
|
// await wait(5000);
|
||||||
|
|
||||||
// Attach a search hook so /api/search is enabled
|
// Attach a search hook so /api/search is enabled
|
||||||
plugins.registerHook('core', {
|
plugins.registerHook('core', {
|
||||||
|
|||||||
Reference in New Issue
Block a user