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;  };  |