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' $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');
}); });

Loading…
Cancel
Save