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