diff options
Diffstat (limited to 'src/server/activitypub/featured.ts')
| -rw-r--r-- | src/server/activitypub/featured.ts | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/src/server/activitypub/featured.ts b/src/server/activitypub/featured.ts index fc6150902b..f43312d79a 100644 --- a/src/server/activitypub/featured.ts +++ b/src/server/activitypub/featured.ts @@ -1,35 +1,28 @@ -import { ObjectID } from 'mongodb'; import * as Router from 'koa-router'; import config from '../../config'; -import User from '../../models/user'; import { renderActivity } from '../../remote/activitypub/renderer'; import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection'; import { setResponseType } from '../activitypub'; -import Note from '../../models/note'; import renderNote from '../../remote/activitypub/renderer/note'; +import { Users, Notes, UserNotePinings } from '../../models'; export default async (ctx: Router.IRouterContext) => { - if (!ObjectID.isValid(ctx.params.user)) { - ctx.status = 404; - return; - } - - const userId = new ObjectID(ctx.params.user); + const userId = ctx.params.user; // Verify user - const user = await User.findOne({ - _id: userId, + const user = await Users.findOne({ + id: userId, host: null }); - if (user === null) { + if (user == null) { ctx.status = 404; return; } - const pinnedNoteIds = user.pinnedNoteIds || []; + const pinings = await UserNotePinings.find({ userId: user.id }); - const pinnedNotes = await Promise.all(pinnedNoteIds.filter(ObjectID.isValid).map(id => Note.findOne({ _id: id }))); + const pinnedNotes = await Promise.all(pinings.map(pining => Notes.findOne(pining.noteId))); const renderedNotes = await Promise.all(pinnedNotes.map(note => renderNote(note))); |