diff options
author | eug-vs <eug-vs@keemail.me> | 2020-06-12 16:46:56 +0300 |
---|---|---|
committer | eug-vs <eug-vs@keemail.me> | 2020-06-12 16:46:56 +0300 |
commit | fb889145e2e3414925553152e8aff6a096bc0cae (patch) | |
tree | 1515af5db979994e08341bd9f8d82d8a3baee475 /services/polls/polls.hooks.ts | |
parent | c9fc9c12b452d9aa8630cdfdaf494381a5dfdd8b (diff) | |
download | which-api-fb889145e2e3414925553152e8aff6a096bc0cae.tar.gz |
refactor: move hooks to global folder
Diffstat (limited to 'services/polls/polls.hooks.ts')
-rw-r--r-- | services/polls/polls.hooks.ts | 40 |
1 files changed, 6 insertions, 34 deletions
diff --git a/services/polls/polls.hooks.ts b/services/polls/polls.hooks.ts index fc5fa45..0637320 100644 --- a/services/polls/polls.hooks.ts +++ b/services/polls/polls.hooks.ts @@ -1,40 +1,12 @@ -import { HookContext } from '@feathersjs/feathers'; -import bluebird from 'bluebird'; -import _ from 'lodash'; - -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> => { - return UserModel.findById(poll.authorId) - .lean<User>() - .exec() - .then((author: User | null): Poll | null => { - return author && _.merge(_.omit(poll, 'authorId'), { author }); - }) - .catch(err => { - console.error(err); - return err; - }); -}; - -const expandAuthorHook = async (context: HookContext): Promise<HookContext> => { - context.result = await expandAuthor(context.result); - return context; -}; - -const expandAuthorManyHook = async (context: HookContext): Promise<HookContext> => { - const polls = await bluebird.map(context.result, (poll: any) => expandAuthor(poll)); - context.result = _.compact(polls); - return context; -}; - +import { + expandAuthorHook, + expandAuthorManyHook +} from '../../hooks/expandAuthor'; export default { after: { get: [expandAuthorHook], find: [expandAuthorManyHook] } -} +}; + |