1- import { ChangeRequest , daysBetween , Task , UserPreview , wbsPipe , calculateEndDate } from 'shared' ;
1+ import { ChangeRequest , daysBetween , Task , UserPreview , wbsPipe , WorkPackage } from 'shared' ;
22import { User } from '@prisma/client' ;
33import { editMessage , reactToMessage , replyToMessageInThread , sendMessage } from '../integrations/slack' ;
44import { getUserFullName , getUserSlackId } from './users.utils' ;
@@ -8,9 +8,6 @@ import { Change_Request, Design_Review, Team, WBS_Element } from '@prisma/client
88import { UserWithSettings } from './auth.utils' ;
99import { usersToSlackPings , userToSlackPing } from './notifications.utils' ;
1010import { addHours , meetingStartTimePipe } from './design-reviews.utils' ;
11- import { WorkPackageQueryArgs } from '../prisma-query-args/work-packages.query-args' ;
12- import { Prisma } from '@prisma/client' ;
13- import { userTransformer } from '../transformers/user.transformer' ;
1411
1512// build the "due" string for the upcoming deadlines slack message
1613const buildDueString = ( daysUntilDeadline : number ) : string => {
@@ -27,27 +24,25 @@ const buildUserString = (lead?: UserPreview, slackId?: string): string => {
2724 return '(no project lead)' ;
2825} ;
2926
30- export const sendSlackUpcomingDeadlineNotification = async (
31- workPackage : Prisma . Work_PackageGetPayload < WorkPackageQueryArgs >
32- ) : Promise < void > => {
27+ export const sendSlackUpcomingDeadlineNotification = async ( workPackage : WorkPackage ) : Promise < void > => {
3328 if ( process . env . NODE_ENV !== 'production' ) return ; // don't send msgs unless in prod
34- const endDate = calculateEndDate ( workPackage . startDate , workPackage . duration ) ;
3529
36- const { lead } = workPackage . wbsElement ;
30+ const { LEAD_CHANNEL_SLACK_ID } = process . env ;
31+ if ( ! LEAD_CHANNEL_SLACK_ID ) return ;
32+
33+ const { lead } = workPackage ;
3734 const slackId = await getUserSlackId ( lead ?. userId ) ;
38- const daysUntilDeadline = daysBetween ( endDate , new Date ( ) ) ;
35+ const daysUntilDeadline = daysBetween ( workPackage . endDate , new Date ( ) ) ;
3936
40- const userString = lead ? buildUserString ( userTransformer ( lead ) , slackId ) : 'No Lead Set' ;
37+ const userString = buildUserString ( lead , slackId ) ;
4138 const dueString = buildDueString ( daysUntilDeadline ) ;
4239
43- const wbsNumber : string = wbsPipe ( workPackage . wbsElement ) ;
40+ const wbsNumber : string = wbsPipe ( workPackage . wbsNum ) ;
4441 const wbsString = `<https://finishlinebyner.com/projects/${ wbsNumber } |${ wbsNumber } >` ;
4542
46- const fullMsg = `${ userString } ${ wbsString } : ${ workPackage . project . wbsElement . name } - ${ workPackage . wbsElement . name } ${ dueString } ` ;
43+ const fullMsg = `${ userString } ${ wbsString } : ${ workPackage . projectName } - ${ workPackage . name } ${ dueString } ` ;
4744
48- const promises = workPackage . project . teams . map ( async ( team ) => await sendMessage ( team . slackId , fullMsg ) ) ;
49-
50- await Promise . all ( promises ) ;
45+ await sendMessage ( LEAD_CHANNEL_SLACK_ID , fullMsg ) ;
5146} ;
5247
5348/**
0 commit comments