diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 842de61..5cfb56c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -14,7 +14,7 @@ updates: commit-message: prefix: 'github-actions' include: 'scope' - target-branch: 'dev' + target-branch: 'main' - package-ecosystem: 'npm' directory: '/' schedule: @@ -24,4 +24,4 @@ updates: commit-message: prefix: 'npm' include: 'scope' - target-branch: 'dev' + target-branch: 'main' diff --git a/src/websiteMonitoring.js b/src/websiteMonitoring.js index a57f7f7..5c45b0e 100644 --- a/src/websiteMonitoring.js +++ b/src/websiteMonitoring.js @@ -112,6 +112,7 @@ function setupLogExtractionTrigger() { * @param {String} frequencyUnit Unit of the value of frequencyKey, i.e., minute, hour, day, or week. */ function setupTrigger_(handlerFunction, frequencyKey, frequencyUnit) { + console.info(`[setupTrigger_] Setting trigger for ${handlerFunction}...`); const ui = SpreadsheetApp.getUi(); const myEmail = Session.getActiveUser().getEmail(); const ss = SpreadsheetApp.getActiveSpreadsheet(); @@ -193,6 +194,9 @@ function setupTrigger_(handlerFunction, frequencyKey, frequencyUnit) { localMessage.replaceErrorInvalidFrequencyUnit(frequencyUnit) ); } + // Set up a trigger for monthly reminders + setupReminderTrigger(true); + console.info('[setupTrigger_] Trigger set up complete.'); ui.alert( localMessage.replaceAlertTitleCompleteTriggerSetup(handlerFunction), localMessage.replaceAlertMessageCompleteTriggerSetup( @@ -202,6 +206,7 @@ function setupTrigger_(handlerFunction, frequencyKey, frequencyUnit) { ui.ButtonSet.OK ); } catch (e) { + console.error(e.stack); ui.alert(e.stack); } } @@ -210,34 +215,53 @@ function setupTrigger_(handlerFunction, frequencyKey, frequencyUnit) { * Set time-based trigger for sending monthly reminders * of active time-based triggers set by this user in this script. * Trigger will be set for the first day of each month. + * @param {Boolean} muteUi Will not show any UI alerts when true. Defaults to false. */ -function setupReminderTrigger() { - const ui = SpreadsheetApp.getUi(); +function setupReminderTrigger(muteUi = false) { + console.info( + '[setupReminderTrigger] Setting trigger for the monthly reminder...' + ); + if (!muteUi) { + var ui = SpreadsheetApp.getUi(); + } const localMessage = new LocalizedMessage( SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetLocale() ); const handlerFunction = 'sendReminder'; - // Delete existing trigger for the same handler function. - ScriptApp.getProjectTriggers().forEach((trigger) => { - if (trigger.getHandlerFunction() === handlerFunction) { - ScriptApp.deleteTrigger(trigger); + try { + // Delete existing trigger for the same handler function. + ScriptApp.getProjectTriggers().forEach((trigger) => { + if (trigger.getHandlerFunction() === handlerFunction) { + ScriptApp.deleteTrigger(trigger); + } + }); + // Set new trigger + ScriptApp.newTrigger(handlerFunction).timeBased().onMonthDay(1).create(); + console.info('[setupReminderTrigger] Trigger set up complete.'); + if (!muteUi) { + ui.alert( + localMessage.replaceAlertTitleCompleteTriggerSetup(handlerFunction), + localMessage.replaceAlertMessageCompleteReminderTriggerSetup( + Session.getActiveUser().getEmail() + ), + ui.ButtonSet.OK + ); } - }); - // Set new trigger - ScriptApp.newTrigger(handlerFunction).timeBased().onMonthDay(1).create(); - ui.alert( - localMessage.replaceAlertTitleCompleteTriggerSetup(handlerFunction), - localMessage.replaceAlertMessageCompleteReminderTriggerSetup( - Session.getActiveUser().getEmail() - ), - ui.ButtonSet.OK - ); + } catch (e) { + console.error(e.stack); + if (!muteUi) { + ui.alert(e.stack); + } else { + throw e; + } + } } /** * Delete existing trigger(s). */ function deleteTimeBasedTriggers() { + console.info('[deleteTimeBasedTriggers] Deleting triggers...'); const ui = SpreadsheetApp.getUi(); const myEmail = Session.getActiveUser().getEmail(); const localMessage = new LocalizedMessage( @@ -256,12 +280,14 @@ function deleteTimeBasedTriggers() { ScriptApp.getProjectTriggers().forEach((trigger) => ScriptApp.deleteTrigger(trigger) ); + console.info('[deleteTimeBasedTriggers] Deleted triggers.'); ui.alert( localMessage.messageList.alertTitleComplete, localMessage.messageList.alertMessageTriggerDelete, ui.ButtonSet.OK ); } catch (e) { + console.error(e.stack); ui.alert(e.stack); } } @@ -402,7 +428,6 @@ function websiteMonitoring(triggered = false) { RESPONSE_CODE_WILDCARD, spreadsheetLocale ); - console.log(JSON.stringify(options)); ////////////////// // Get the actual HTTP response codes let dashboardStatus = []; // Array to record on the dashboard worksheet let statusChange = targetWebsites.reduce( @@ -474,7 +499,6 @@ function websiteMonitoring(triggered = false) { .shift(); latestStatusSheet.getDataRange().clearContent(); dashboardStatus = [existingStatusHeader].concat(dashboardStatus); - console.log(dashboardStatus); latestStatusSheet .getRange(1, 1, dashboardStatus.length, dashboardStatus[0].length) .setValues(dashboardStatus);