fix nim compiler warnings and clearAllReminders() after updating sendDate

This commit is contained in:
itwrx
2025-05-17 07:10:54 -05:00
parent 55def9973a
commit 7d2583b6f0
8 changed files with 43 additions and 19 deletions

View File

@@ -3,7 +3,7 @@ This file is part of Simple Site Manager.
Simple Site Manager is released under the GNU Affero General Public License 3.0.
See COPYING or <https://www.gnu.org/licenses/> for details.]#
import std/[strutils, cgi, strtabs, cookies, sysrand, base64]
import std/[cgi, strtabs, cookies, sysrand, base64]
import guildenstern/[httpserver], sqliteral
import "../models/session", "db", "global"

View File

@@ -1,4 +1,4 @@
import std/[times, osproc, strutils], smtp
import std/[times, osproc], smtp
import ../models/reminder, ../models/user, datetime
proc setFutureSendDate(reminderId: int) =
@@ -10,24 +10,33 @@ proc setFutureSendDate(reminderId: int) =
newSendDate = now() + 1.days
reminder.sendDate = $format(newSendDate, "yyyy-MM-dd")
updateReminderSendDate(reminder)
clearAllReminders()
of "week":
newSendDate = nextWeekday(reminder.weeklyOn)
reminder.sendDate = $format(newSendDate, "yyyy-MM-dd")
updateReminderSendDate(reminder)
clearAllReminders()
of "month":
if reminder.monthlyOnDay > 0:
#create DateTime with current month and year and reminder.monthlyOnDay
newSendDate = dateTime(year(now()), month(now()), reminder.monthlyOnDay)
echo newSendDate
#add 1 month only if monthlyOnDay hasn't occured in current month yet.
echo reminder.monthlyOnDay
echo monthDay(now())
if reminder.monthlyOnDay < monthDay(now()):
newSendDate = newSendDate + 1.months
echo newSendDate
reminder.sendDate = $format(newSendDate, "yyyy-MM-dd")
echo reminder.sendDate
updateReminderSendDate(reminder)
clearAllReminders()
else:
#monthly on week number and weekday. e.g. "third thursday of every month".
newSendDate = nextMonthlyOnWeekdayOfWeek($reminder.monthlyOnWeekday, $reminder.monthlyOnWeek)
reminder.sendDate = $format(newSendDate, "yyyy-MM-dd")
updateReminderSendDate(reminder)
clearAllReminders()
of "year":
#yearly on month and day.
#string zeros (db artifacts) have a length of 1...
@@ -35,14 +44,15 @@ proc setFutureSendDate(reminderId: int) =
newSendDate = nextYearlyDate(reminder.yearlyOnMonth, reminder.yearlyOnDay)
reminder.sendDate = $format(newSendDate, "yyyy-MM-dd")
updateReminderSendDate(reminder)
clearAllReminders()
#yearly on weekday of week of month. e.g. third thursday of november of each year.
else:
newSendDate = nextYearlyOnWeekdayOfWeekOfMonth($reminder.yearlyOnWeekday, $reminder.yearlyOnWeek, $reminder.yearlyOnMonth2)
reminder.sendDate = $format(newSendDate, "yyyy-MM-dd")
updateReminderSendDate(reminder)
clearAllReminders()
else:
echo "Invalid value for reminder.repeatFreq in setFutureSendDate()"
clearAllReminders()
echo "Invalid value for reminder.repeatFreq in setFutureSendDate()"
proc sendEmail(reminderMsg: string) =
let userEmailAddress = getEmailByUserId("1")