@@ -25,6 +25,9 @@ await load({ export: true });
2525
2626const HTTP_ONLY = ( Deno . env . get ( "HTTP_ONLY" ) ?? "" ) . toLowerCase ( ) === "1" ||
2727 ( Deno . env . get ( "HTTP_ONLY" ) ?? "" ) . toLowerCase ( ) === "true" ;
28+ const ENABLE_SCHEDULES =
29+ ( Deno . env . get ( "ENABLE_SCHEDULES" ) ?? "" ) . toLowerCase ( ) === "1" ||
30+ ( Deno . env . get ( "ENABLE_SCHEDULES" ) ?? "" ) . toLowerCase ( ) === "true" ;
2831
2932const appToken = Deno . env . get ( "SLACK_APP_TOKEN" ) ;
3033const botToken = Deno . env . get ( "SLACK_BOT_TOKEN" ) ;
@@ -154,7 +157,19 @@ if (!HTTP_ONLY) {
154157 }
155158 case "join" : {
156159 if ( args [ 1 ] === "every" ) {
157- await application . joinSchedule ( { weekday : args [ 2 ] , user, channel } ) ;
160+ if ( ENABLE_SCHEDULES ) {
161+ await application . joinSchedule ( {
162+ weekday : args [ 2 ] ,
163+ user,
164+ channel,
165+ } ) ;
166+ } else {
167+ await webClient . chat . postEphemeral ( {
168+ user : body . user_id ,
169+ channel,
170+ text : "Stop being a :sloth: and join the session at 9 AM!" ,
171+ } ) ;
172+ }
158173 break ;
159174 }
160175 await application . joinSession ( { dateString : args [ 1 ] , user, channel } ) ;
@@ -225,6 +240,17 @@ if (!HTTP_ONLY) {
225240 await socketModeClient ! . start ( ) ;
226241}
227242
243+ // Purge existing schedules only when schedules are disabled
244+ if ( ! ENABLE_SCHEDULES ) {
245+ const schedules = await level . scheduleRepository . loadAllSchedules ( ) ;
246+ if ( schedules . length > 0 ) {
247+ for ( const s of schedules ) {
248+ await level . scheduleRepository . deleteSchedule ( s . user ) ;
249+ }
250+ expressLogger . info ( `Purged ${ schedules . length } existing schedules` ) ;
251+ }
252+ }
253+
228254await application . start ( ) ;
229255
230256const logger = new Logger ( "Express" ) ;
0 commit comments