浏览代码

Moved annoy function out of the route

Fela Maslen 7 年之前
父节点
当前提交
e79a3666ff
共有 2 个文件被更改,包括 25 次插入20 次删除
  1. 23 18
      src/server/routes/annoy.js
  2. 2 2
      src/server/routes/index.js

+ 23 - 18
src/server/routes/annoy.js

@@ -29,33 +29,37 @@ function getPreviousWeekPeriod(now) {
     return { start, end };
 }
 
-function annoyUsers(config, db, logger) {
+async function annoyUsers(config, db, logger) {
     const userCrud = makeUserCrud();
     const phraseCrud = makePhraseCrud();
 
-    return async (req, res) => {
-        const now = moment();
+    const now = moment();
+
+    const range = getPreviousWeekPeriod(now);
 
-        const range = getPreviousWeekPeriod(now);
+    const validUsers = await userCrud.getDocs(db);
+    const phrases = await phraseCrud.getDocs(db);
 
-        const validUsers = await userCrud.getDocs(db);
-        const phrases = await phraseCrud.getDocs(db);
+    const validUserEmails = validUsers.map(({ email }) => email.toLowerCase());
 
-        const validUserEmails = validUsers.map(({ email }) => email.toLowerCase());
+    const [slackUsers, usersOnHoliday] = await Promise.all([
+        getAllSlackUsersWithNames(config, logger),
+        getAllUsersOnHoliday(config, logger, now)
+    ]);
 
-        const [slackUsers, usersOnHoliday] = await Promise.all([
-            getAllSlackUsersWithNames(config, logger),
-            getAllUsersOnHoliday(config, logger, now)
-        ]);
+    const users = slackUsers.filter(({ email }) =>
+        validUserEmails.includes(email) &&
+        !usersOnHoliday.includes(email)
+    );
 
-        const users = slackUsers.filter(({ email }) =>
-            validUserEmails.includes(email) &&
-            !usersOnHoliday.includes(email)
-        );
+    const usersMissingTimesheet = await getUsersWithMissingTimesheets(config, logger, range, users);
 
-        const usersMissingTimesheet = await getUsersWithMissingTimesheets(config, logger, range, users);
+    await annoySlackUsers(config, logger, now, usersMissingTimesheet, phrases);
+}
 
-        await annoySlackUsers(config, logger, now, usersMissingTimesheet, phrases);
+function annoyUsersRoute(config, db, logger) {
+    return async (req, res) => {
+        await annoyUsers(config, db, logger);
 
         res.json({ ok: true });
     };
@@ -63,6 +67,7 @@ function annoyUsers(config, db, logger) {
 
 module.exports = {
     getPreviousWeekPeriod,
-    annoyUsers
+    annoyUsers,
+    annoyUsersRoute
 };
 

+ 2 - 2
src/server/routes/index.js

@@ -5,7 +5,7 @@ const { makeCrudRoutes } = require('server/modules/crud');
 const { makeUserCrud } = require('server/modules/users');
 const { makePhraseCrud } = require('server/modules/phrases');
 
-const { annoyUsers } = require('server/routes/annoy');
+const { annoyUsersRoute } = require('server/routes/annoy');
 
 function apiRoutes(config, db, logger) {
     const router = new Router();
@@ -18,7 +18,7 @@ function apiRoutes(config, db, logger) {
 
     makeCrudRoutes(config, db, 'phrases', router, makePhraseCrud());
 
-    router.post('/annoy', annoyUsers(config, db, logger));
+    router.post('/annoy', annoyUsersRoute(config, db, logger));
 
     // eslint-disable-next-line no-unused-vars
     router.use((err, req, res, next) => {