paricafe/src/remote/activitypub/kernel/like.ts

22 lines
633 B
TypeScript
Raw Normal View History

2018-04-18 00:09:55 -05:00
import * as mongo from 'mongodb';
2018-04-07 12:30:37 -05:00
import Note from '../../../models/note';
2018-04-07 03:05:14 -05:00
import { IRemoteUser } from '../../../models/user';
import { ILike } from '../type';
2018-04-07 12:30:37 -05:00
import create from '../../../services/note/reaction/create';
2018-04-04 05:29:06 -05:00
2018-04-07 03:05:14 -05:00
export default async (actor: IRemoteUser, activity: ILike) => {
const id = typeof activity.object == 'string' ? activity.object : activity.object.id;
2018-04-04 05:29:06 -05:00
// Transform:
2018-04-07 16:55:26 -05:00
// https://misskey.ex/notes/xxxx to
2018-04-04 05:29:06 -05:00
// xxxx
2018-04-18 00:09:55 -05:00
const noteId = new mongo.ObjectID(id.split('/').pop());
2018-04-04 05:29:06 -05:00
2018-04-07 12:30:37 -05:00
const note = await Note.findOne({ _id: noteId });
if (note === null) {
2018-04-04 05:29:06 -05:00
throw new Error();
}
2018-04-07 12:30:37 -05:00
await create(actor, note, 'pudding');
2018-04-04 05:29:06 -05:00
};