aboutsummaryrefslogtreecommitdiff
path: root/services/feed/feed.hooks.ts
diff options
context:
space:
mode:
authoreug-vs <eug-vs@keemail.me>2020-06-27 01:17:42 +0300
committereug-vs <eug-vs@keemail.me>2020-06-27 01:17:42 +0300
commit7c2d12b4f809563cc08e86229359251674b745ce (patch)
tree23f56b89509c46d04621822d82c16638fe2e332e /services/feed/feed.hooks.ts
parent0a78ac48ed5ae37f88e5f36194953424a5bc18a0 (diff)
downloadwhich-api-7c2d12b4f809563cc08e86229359251674b745ce.tar.gz
refactor: improve Feed service
Diffstat (limited to 'services/feed/feed.hooks.ts')
-rw-r--r--services/feed/feed.hooks.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/services/feed/feed.hooks.ts b/services/feed/feed.hooks.ts
new file mode 100644
index 0000000..0e201db
--- /dev/null
+++ b/services/feed/feed.hooks.ts
@@ -0,0 +1,28 @@
+import _ from 'lodash';
+import { HookContext } from '@feathersjs/feathers';
+
+
+const raiseNewVerifedPolls = async (context: HookContext): Promise<HookContext> => {
+ // Raise unseen verified polls to the very top
+ context.result = _.sortBy(
+ context.result,
+ poll => !(poll.author.verified && !poll.userChoice)
+ );
+ return context;
+};
+
+const lowerOldPolls = async (context: HookContext): Promise<HookContext> => {
+ // Move all seen polls down
+ context.result = _.sortBy(
+ context.result,
+ poll => !!poll.userChoice
+ );
+ return context;
+};
+
+export default {
+ after: {
+ find: [raiseNewVerifedPolls, lowerOldPolls]
+ }
+};
+