mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-27 17:16:14 +01:00
refactor: put message api calls behind /messages prefix, #10097
This commit is contained in:
@@ -144,8 +144,8 @@ paths:
|
|||||||
$ref: 'write/chats/roomId/users.yaml'
|
$ref: 'write/chats/roomId/users.yaml'
|
||||||
/chats/{roomId}/users/{uid}:
|
/chats/{roomId}/users/{uid}:
|
||||||
$ref: 'write/chats/roomId/users/uid.yaml'
|
$ref: 'write/chats/roomId/users/uid.yaml'
|
||||||
/chats/{roomId}/{mid}:
|
/chats/{roomId}/messages/{mid}:
|
||||||
$ref: 'write/chats/roomId/mid.yaml'
|
$ref: 'write/chats/roomId/messages/mid.yaml'
|
||||||
/flags/:
|
/flags/:
|
||||||
$ref: 'write/flags.yaml'
|
$ref: 'write/flags.yaml'
|
||||||
/flags/{flagId}:
|
/flags/{flagId}:
|
||||||
|
|||||||
@@ -27,9 +27,9 @@ get:
|
|||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
status:
|
status:
|
||||||
$ref: ../../../components/schemas/Status.yaml#/Status
|
$ref: ../../../../components/schemas/Status.yaml#/Status
|
||||||
response:
|
response:
|
||||||
$ref: ../../../components/schemas/Chats.yaml#/MessageObject
|
$ref: ../../../../components/schemas/Chats.yaml#/MessageObject
|
||||||
put:
|
put:
|
||||||
tags:
|
tags:
|
||||||
- chats
|
- chats
|
||||||
@@ -70,9 +70,9 @@ put:
|
|||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
status:
|
status:
|
||||||
$ref: ../../../components/schemas/Status.yaml#/Status
|
$ref: ../../../../components/schemas/Status.yaml#/Status
|
||||||
response:
|
response:
|
||||||
$ref: ../../../components/schemas/Chats.yaml#/MessageObject
|
$ref: ../../../../components/schemas/Chats.yaml#/MessageObject
|
||||||
delete:
|
delete:
|
||||||
tags:
|
tags:
|
||||||
- chats
|
- chats
|
||||||
@@ -102,7 +102,7 @@ delete:
|
|||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
status:
|
status:
|
||||||
$ref: ../../../components/schemas/Status.yaml#/Status
|
$ref: ../../../../components/schemas/Status.yaml#/Status
|
||||||
response:
|
response:
|
||||||
type: object
|
type: object
|
||||||
properties: {}
|
properties: {}
|
||||||
@@ -135,7 +135,7 @@ post:
|
|||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
status:
|
status:
|
||||||
$ref: ../../../components/schemas/Status.yaml#/Status
|
$ref: ../../../../components/schemas/Status.yaml#/Status
|
||||||
response:
|
response:
|
||||||
type: object
|
type: object
|
||||||
properties: {}
|
properties: {}
|
||||||
@@ -37,7 +37,7 @@ define('forum/chats/messages', [
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
api.put(`/chats/${roomId}/${mid}`, { message }).catch((err) => {
|
api.put(`/chats/${roomId}/messages/${mid}`, { message }).catch((err) => {
|
||||||
inputEl.val(message);
|
inputEl.val(message);
|
||||||
inputEl.attr('data-mid', mid);
|
inputEl.attr('data-mid', mid);
|
||||||
messages.updateRemainingLength(inputEl.parent());
|
messages.updateRemainingLength(inputEl.parent());
|
||||||
@@ -190,7 +190,7 @@ define('forum/chats/messages', [
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
api.delete(`/chats/${roomId}/${messageId}`, {}).then(() => {
|
api.delete(`/chats/${roomId}/messages/${messageId}`, {}).then(() => {
|
||||||
components.get('chat/message', messageId).toggleClass('deleted', true);
|
components.get('chat/message', messageId).toggleClass('deleted', true);
|
||||||
}).catch(alerts.error);
|
}).catch(alerts.error);
|
||||||
});
|
});
|
||||||
@@ -198,7 +198,7 @@ define('forum/chats/messages', [
|
|||||||
};
|
};
|
||||||
|
|
||||||
messages.restore = function (messageId, roomId) {
|
messages.restore = function (messageId, roomId) {
|
||||||
api.post(`/chats/${roomId}/${messageId}`, {}).then(() => {
|
api.post(`/chats/${roomId}/messages/${messageId}`, {}).then(() => {
|
||||||
components.get('chat/message', messageId).toggleClass('deleted', false);
|
components.get('chat/message', messageId).toggleClass('deleted', false);
|
||||||
}).catch(alerts.error);
|
}).catch(alerts.error);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -24,10 +24,10 @@ module.exports = function () {
|
|||||||
setupApiRoute(router, 'delete', '/:roomId/users', [...middlewares, middleware.assert.room, middleware.checkRequired.bind(null, ['uids'])], controllers.write.chats.kick);
|
setupApiRoute(router, 'delete', '/:roomId/users', [...middlewares, middleware.assert.room, middleware.checkRequired.bind(null, ['uids'])], controllers.write.chats.kick);
|
||||||
setupApiRoute(router, 'delete', '/:roomId/users/:uid', [...middlewares, middleware.assert.room, middleware.assert.user], controllers.write.chats.kickUser);
|
setupApiRoute(router, 'delete', '/:roomId/users/:uid', [...middlewares, middleware.assert.room, middleware.assert.user], controllers.write.chats.kickUser);
|
||||||
|
|
||||||
setupApiRoute(router, 'get', '/:roomId/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.get);
|
setupApiRoute(router, 'get', '/:roomId/messages/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.get);
|
||||||
setupApiRoute(router, 'put', '/:roomId/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.edit);
|
setupApiRoute(router, 'put', '/:roomId/messages/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.edit);
|
||||||
setupApiRoute(router, 'post', '/:roomId/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.restore);
|
setupApiRoute(router, 'post', '/:roomId/messages/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.restore);
|
||||||
setupApiRoute(router, 'delete', '/:roomId/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.delete);
|
setupApiRoute(router, 'delete', '/:roomId/messages/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.delete);
|
||||||
|
|
||||||
return router;
|
return router;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ describe('Messaging Library', () => {
|
|||||||
assert.strictEqual(messages[0].system, true);
|
assert.strictEqual(messages[0].system, true);
|
||||||
assert.strictEqual(messages[0].content, 'user-join');
|
assert.strictEqual(messages[0].content, 'user-join');
|
||||||
|
|
||||||
const { statusCode, body: body2 } = await callv3API('put', `/chats/${roomId}/${messages[0].messageId}`, {
|
const { statusCode, body: body2 } = await callv3API('put', `/chats/${roomId}/messages/${messages[0].messageId}`, {
|
||||||
message: 'test',
|
message: 'test',
|
||||||
}, 'foo');
|
}, 'foo');
|
||||||
assert.strictEqual(statusCode, 400);
|
assert.strictEqual(statusCode, 400);
|
||||||
@@ -607,33 +607,33 @@ describe('Messaging Library', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should fail to edit message with invalid data', async () => {
|
it('should fail to edit message with invalid data', async () => {
|
||||||
let { statusCode, body } = await callv3API('put', `/chats/1/10000`, { message: 'foo' }, 'foo');
|
let { statusCode, body } = await callv3API('put', `/chats/1/messages/10000`, { message: 'foo' }, 'foo');
|
||||||
assert.strictEqual(statusCode, 400);
|
assert.strictEqual(statusCode, 400);
|
||||||
assert.strictEqual(body.status.message, await translator.translate('[[error:invalid-mid]]'));
|
assert.strictEqual(body.status.message, await translator.translate('[[error:invalid-mid]]'));
|
||||||
|
|
||||||
({ statusCode, body } = await callv3API('put', `/chats/${roomId}/${mid}`, {}, 'foo'));
|
({ statusCode, body } = await callv3API('put', `/chats/${roomId}/messages/${mid}`, {}, 'foo'));
|
||||||
assert.strictEqual(statusCode, 400);
|
assert.strictEqual(statusCode, 400);
|
||||||
assert.strictEqual(body.status.message, await translator.translate('[[error:invalid-chat-message]]'));
|
assert.strictEqual(body.status.message, await translator.translate('[[error:invalid-chat-message]]'));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should fail to edit message if new content is empty string', async () => {
|
it('should fail to edit message if new content is empty string', async () => {
|
||||||
const { statusCode, body } = await callv3API('put', `/chats/${roomId}/${mid}`, { message: ' ' }, 'foo');
|
const { statusCode, body } = await callv3API('put', `/chats/${roomId}/messages/${mid}`, { message: ' ' }, 'foo');
|
||||||
assert.strictEqual(statusCode, 400);
|
assert.strictEqual(statusCode, 400);
|
||||||
assert.strictEqual(body.status.message, await translator.translate('[[error:invalid-chat-message]]'));
|
assert.strictEqual(body.status.message, await translator.translate('[[error:invalid-chat-message]]'));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should fail to edit message if not own message', async () => {
|
it('should fail to edit message if not own message', async () => {
|
||||||
const { statusCode, body } = await callv3API('put', `/chats/${roomId}/${mid}`, { message: 'message edited' }, 'herp');
|
const { statusCode, body } = await callv3API('put', `/chats/${roomId}/messages/${mid}`, { message: 'message edited' }, 'herp');
|
||||||
assert.strictEqual(statusCode, 400);
|
assert.strictEqual(statusCode, 400);
|
||||||
assert.strictEqual(body.status.message, await translator.translate('[[error:cant-edit-chat-message]]'));
|
assert.strictEqual(body.status.message, await translator.translate('[[error:cant-edit-chat-message]]'));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should edit message', async () => {
|
it('should edit message', async () => {
|
||||||
let { statusCode, body } = await callv3API('put', `/chats/${roomId}/${mid}`, { message: 'message edited' }, 'foo');
|
let { statusCode, body } = await callv3API('put', `/chats/${roomId}/messages/${mid}`, { message: 'message edited' }, 'foo');
|
||||||
assert.strictEqual(statusCode, 200);
|
assert.strictEqual(statusCode, 200);
|
||||||
assert.strictEqual(body.response.content, 'message edited');
|
assert.strictEqual(body.response.content, 'message edited');
|
||||||
|
|
||||||
({ statusCode, body } = await callv3API('get', `/chats/${roomId}/${mid}`, {}, 'foo'));
|
({ statusCode, body } = await callv3API('get', `/chats/${roomId}/messages/${mid}`, {}, 'foo'));
|
||||||
assert.strictEqual(statusCode, 200);
|
assert.strictEqual(statusCode, 200);
|
||||||
assert.strictEqual(body.response.content, 'message edited');
|
assert.strictEqual(body.response.content, 'message edited');
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user