diff options
Diffstat (limited to 'hooks')
-rw-r--r-- | hooks/expandAuthor.ts | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/hooks/expandAuthor.ts b/hooks/expandAuthor.ts index 3b3e3df..5993839 100644 --- a/hooks/expandAuthor.ts +++ b/hooks/expandAuthor.ts @@ -6,12 +6,25 @@ import { Poll, PollSchema } from '../models/polls/poll.schema'; import { User } from '../models/users/user.schema'; import UserModel from '../models/users/user.model'; -const expandAuthor = async (poll: PollSchema): Promise<Poll | null> => { +const convertPoll = async (poll: PollSchema): Promise<Poll | null> => { return UserModel.findById(poll.authorId) .lean<User>() .exec() .then((author: User | null): Poll | null => { - return author && _.merge(_.omit(poll, 'authorId'), { author }); + return author && { + _id: poll._id, + author, + contents: { + left: { + url: poll.contents.left.url, + votes: poll.contents.left.votes.length + }, + right: { + url: poll.contents.right.url, + votes: poll.contents.right.votes.length + } + } + }; }) .catch(err => { console.error(err); @@ -20,12 +33,12 @@ const expandAuthor = async (poll: PollSchema): Promise<Poll | null> => { }; export const expandAuthorHook = async (context: HookContext): Promise<HookContext> => { - context.result = await expandAuthor(context.result); + context.result = await convertPoll(context.result); return context; }; export const expandAuthorManyHook = async (context: HookContext): Promise<HookContext> => { - const polls = await bluebird.map(context.result, (poll: PollSchema) => expandAuthor(poll)); + const polls = await bluebird.map(context.result, (poll: PollSchema) => convertPoll(poll)); context.result = _.compact(polls); return context; }; |