Skip to content
Snippets Groups Projects
Commit 42d4e661 authored by syuilo's avatar syuilo
Browse files

移行

parent 4179685b
No related branches found
No related tags found
No related merge requests found
......@@ -3,22 +3,40 @@ import Note from '../../../../../models/note';
import create from '../../../../../services/note/reaction/create';
import { validateReaction } from '../../../../../models/note-reaction';
import { ILocalUser } from '../../../../../models/user';
import getParams from '../../../get-params';
export const meta = {
name: 'notes/reactions/create',
desc: {
ja: '投稿にリアクションします。'
},
params: {
noteId: $.type(ID).note({
desc: {
ja: '対象の投稿'
}
}),
reaction: $.str.pipe(validateReaction.ok).note({
desc: {
ja: 'リアクションの種類'
}
})
}
};
/**
* React to a note
*/
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param');
// Get 'reaction' parameter
const [reaction, reactionErr] = $.str.pipe(validateReaction.ok).get(params.reaction);
if (reactionErr) return rej('invalid reaction param');
const [ps, psErr] = getParams(meta, params);
if (psErr) return rej(psErr);
// Fetch reactee
const note = await Note.findOne({
_id: noteId
_id: ps.noteId
});
if (note === null) {
......@@ -26,7 +44,7 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) =
}
try {
await create(user, note, reaction);
await create(user, note, ps.reaction);
} catch (e) {
rej(e);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment