refactor: put message api calls behind `/messages` prefix, #10097

isekai-main
Julian Lam 3 years ago
parent 207ae8cd6e
commit aaa6f752d0

@ -144,8 +144,8 @@ paths:
$ref: 'write/chats/roomId/users.yaml'
/chats/{roomId}/users/{uid}:
$ref: 'write/chats/roomId/users/uid.yaml'
/chats/{roomId}/{mid}:
$ref: 'write/chats/roomId/mid.yaml'
/chats/{roomId}/messages/{mid}:
$ref: 'write/chats/roomId/messages/mid.yaml'
/flags/:
$ref: 'write/flags.yaml'
/flags/{flagId}:

@ -27,9 +27,9 @@ get:
type: object
properties:
status:
$ref: ../../../components/schemas/Status.yaml#/Status
$ref: ../../../../components/schemas/Status.yaml#/Status
response:
$ref: ../../../components/schemas/Chats.yaml#/MessageObject
$ref: ../../../../components/schemas/Chats.yaml#/MessageObject
put:
tags:
- chats
@ -70,9 +70,9 @@ put:
type: object
properties:
status:
$ref: ../../../components/schemas/Status.yaml#/Status
$ref: ../../../../components/schemas/Status.yaml#/Status
response:
$ref: ../../../components/schemas/Chats.yaml#/MessageObject
$ref: ../../../../components/schemas/Chats.yaml#/MessageObject
delete:
tags:
- chats
@ -102,7 +102,7 @@ delete:
type: object
properties:
status:
$ref: ../../../components/schemas/Status.yaml#/Status
$ref: ../../../../components/schemas/Status.yaml#/Status
response:
type: object
properties: {}
@ -135,7 +135,7 @@ post:
type: object
properties:
status:
$ref: ../../../components/schemas/Status.yaml#/Status
$ref: ../../../../components/schemas/Status.yaml#/Status
response:
type: object
properties: {}

@ -37,7 +37,7 @@ define('forum/chats/messages', [
});
});
} else {
api.put(`/chats/${roomId}/${mid}`, { message }).catch((err) => {
api.put(`/chats/${roomId}/messages/${mid}`, { message }).catch((err) => {
inputEl.val(message);
inputEl.attr('data-mid', mid);
messages.updateRemainingLength(inputEl.parent());
@ -190,7 +190,7 @@ define('forum/chats/messages', [
return;
}
api.delete(`/chats/${roomId}/${messageId}`, {}).then(() => {
api.delete(`/chats/${roomId}/messages/${messageId}`, {}).then(() => {
components.get('chat/message', messageId).toggleClass('deleted', true);
}).catch(alerts.error);
});
@ -198,7 +198,7 @@ define('forum/chats/messages', [
};
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);
}).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/: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, 'put', '/:roomId/: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, 'delete', '/:roomId/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.delete);
setupApiRoute(router, 'get', '/:roomId/messages/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.get);
setupApiRoute(router, 'put', '/:roomId/messages/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.edit);
setupApiRoute(router, 'post', '/:roomId/messages/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.restore);
setupApiRoute(router, 'delete', '/:roomId/messages/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.delete);
return router;
};

@ -158,7 +158,7 @@ describe('Messaging Library', () => {
assert.strictEqual(messages[0].system, true);
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',
}, 'foo');
assert.strictEqual(statusCode, 400);
@ -607,33 +607,33 @@ describe('Messaging Library', () => {
});
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(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(body.status.message, await translator.translate('[[error:invalid-chat-message]]'));
});
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(body.status.message, await translator.translate('[[error:invalid-chat-message]]'));
});
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(body.status.message, await translator.translate('[[error:cant-edit-chat-message]]'));
});
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(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(body.response.content, 'message edited');
});

Loading…
Cancel
Save