diff options
author | ilyayudovin <ilyayudovin123@gmail.com> | 2020-06-21 13:10:05 +0300 |
---|---|---|
committer | eug-vs <eug-vs@keemail.me> | 2020-06-21 13:13:27 +0300 |
commit | f4c4f2d4789880c0cfc956d08aab10b5a93ebcb1 (patch) | |
tree | de24c4c3ede7d0df755aebbba8cadbf6169d1b0d /hooks | |
parent | 29dce80de9267a4886c6a598ec90756995821828 (diff) | |
download | which-api-f4c4f2d4789880c0cfc956d08aab10b5a93ebcb1.tar.gz |
feat: change votes type
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; }; |