generated from ITwrxOrg/EZ-Bkup
initial commit
This commit is contained in:
66
models/human_checker.nim
Normal file
66
models/human_checker.nim
Normal file
@@ -0,0 +1,66 @@
|
||||
#[Copyright 2024 ITwrx.
|
||||
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/random
|
||||
#import sqliteral, "../helpers/db"
|
||||
|
||||
type
|
||||
HumanChecker* = object
|
||||
question*: string
|
||||
id*, answer*: int
|
||||
|
||||
var humanCheckers: seq[HumanChecker]
|
||||
humanCheckers = @[
|
||||
HumanChecker(id: 1, question: "26 + four, minus 10", answer: 20),
|
||||
HumanChecker(id: 2, question: "10 minus 2, + 14", answer: 22),
|
||||
HumanChecker(id: 3, question: "15 + five, minus 3", answer: 17),
|
||||
HumanChecker(id: 4, question: "9 + nine, minus 6", answer: 12),
|
||||
HumanChecker(id: 5, question: "13 - three, plus 5", answer: 15),
|
||||
HumanChecker(id: 6, question: "7 + six, plus one", answer: 14),
|
||||
HumanChecker(id: 7, question: "22 + 8, - 2", answer: 28),
|
||||
HumanChecker(id: 8, question: "4 - four, + ten", answer: 10),
|
||||
HumanChecker(id: 9, question: "16 + four, minus three", answer: 17),
|
||||
HumanChecker(id: 10, question: "twelve minus four, plus 8", answer: 16)
|
||||
]
|
||||
|
||||
proc getHumanChecker*(): HumanChecker =
|
||||
{.gcsafe.}:
|
||||
randomize()
|
||||
return sample(humancheckers)
|
||||
|
||||
proc getHCById*(id: int): HumanChecker =
|
||||
{.gcsafe.}:
|
||||
for hc in humanCheckers:
|
||||
if hc.id == id:
|
||||
return hc
|
||||
|
||||
#for some reason we are creating the humanCheckers here and then checking them from the DB, instead of one data location or the other, like we probably should have.
|
||||
#the below was probably supposed to be a test, but then it just stayed like that.
|
||||
#[proc getHumanChecker*(): HumanChecker =
|
||||
{.gcsafe.}:
|
||||
randomize()
|
||||
var humanCheckers{.threadvar.}: seq[HumanChecker]
|
||||
humanCheckers.add(HumanChecker(id: 1, question: "26 + four, minus 10", answer: 20))
|
||||
humanCheckers.add(HumanChecker(id: 2, question: "10 minus 2, + 14", answer: 22))
|
||||
humanCheckers.add(HumanChecker(id: 3, question: "15 + five, minus 3", answer: 17))
|
||||
humanCheckers.add(HumanChecker(id: 4, question: "9 + nine, minus 6", answer: 12))
|
||||
humanCheckers.add(HumanChecker(id: 5, question: "13 - three, plus 5", answer: 15))
|
||||
humanCheckers.add(HumanChecker(id: 6, question: "7 + six, plus one", answer: 14))
|
||||
humanCheckers.add(HumanChecker(id: 7, question: "22 + 8, - 2", answer: 28))
|
||||
humanCheckers.add(HumanChecker(id: 8, question: "4 - four, + ten", answer: 10))
|
||||
humanCheckers.add(HumanChecker(id: 9, question: "16 + four, minus three", answer: 17))
|
||||
humanCheckers.add(HumanChecker(id: 10, question: "twelve minus four, plus 8", answer: 16))
|
||||
return sample(humancheckers)
|
||||
|
||||
proc getHCById*(id: int): HumanChecker =
|
||||
{.gcsafe.}:
|
||||
var hc {.threadvar.}: HumanChecker
|
||||
#prepareDb2SQL()
|
||||
for row in db2.rows(SelectHumanCheckerById, id):
|
||||
hc.id = row.getInt(0)
|
||||
hc.question = row.getString(1)
|
||||
hc.answer = row.getInt(2)
|
||||
return hc]#
|
||||
|
||||
52
models/reminder.nim
Normal file
52
models/reminder.nim
Normal file
@@ -0,0 +1,52 @@
|
||||
#[Copyright 2024 ITwrx.
|
||||
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 sqliteral, "../helpers/db", "../helpers/global.nim", sequtils
|
||||
|
||||
type
|
||||
Reminder* = object
|
||||
title*, message*, notifyVia*, repeatFreq*, sendDate*, sendTimeAmPm*, monthlyOnWeek*, yearlyOnWeek*, weeklyOn*, monthlyOnWeekday*, yearlyOnMonth*, yearlyOnWeekday*, yearlyOnMonth2*: string
|
||||
id*, repeats*, monthlyOnDay*, yearlyOnDay*, sendTimeHr*, sendTimeMin*: int
|
||||
|
||||
var allReminders: seq[Reminder]
|
||||
|
||||
proc getAllReminders*(): seq[Reminder] =
|
||||
{.gcsafe.}:
|
||||
if allReminders.len == 0:
|
||||
for row in db1.rows(SelectAllReminders):
|
||||
allReminders.add(Reminder(id: row.getInt(0), title: row.getString(1), message: row.getString(2), notifyVia: row.getString(3), repeats: row.getInt(4), repeatFreq: row.getString(5), weeklyOn: row.getString(6), monthlyOnDay: row.getInt(7), monthlyOnWeekday: row.getString(8), monthlyOnWeek: row.getString(9), yearlyOnMonth: row.getString(10), yearlyOnDay: row.getInt(11), yearlyOnWeek: row.getString(12), yearlyOnWeekday: row.getString(13), yearlyOnMonth2: row.getString(14), sendDate: row.getString(15), sendTimeHr: row.getInt(16), sendTimeMin: row.getInt(17), sendTimeAmPm: row.getString(18)))
|
||||
return allReminders
|
||||
|
||||
proc clearAllReminders*() =
|
||||
{.gcsafe.}:
|
||||
allReminders.setLen(0)
|
||||
|
||||
proc getReminderById*(id: int): Reminder =
|
||||
{.gcsafe.}:
|
||||
for reminder in getAllReminders():
|
||||
if reminder.id == id:
|
||||
return reminder
|
||||
|
||||
proc createReminder*(reminder: Reminder): int =
|
||||
{.gcsafe.}:
|
||||
var reminderId: int
|
||||
db1.transaction:
|
||||
reminderId = db1.insert(InsertReminder, reminder.title, reminder.message, reminder.notifyVia, reminder.repeats, reminder.repeatFreq, reminder.weeklyOn, reminder.monthlyOnDay, reminder.monthlyOnWeekday, reminder.monthlyOnWeek, reminder.yearlyOnMonth, reminder.yearlyOnDay, reminder.yearlyOnWeek, reminder.yearlyOnWeekday, reminder.yearlyOnMonth2, reminder.sendDate, reminder.sendTimeHr, reminder.sendTimeMin, reminder.sendTimeAmPm)
|
||||
return reminderId
|
||||
|
||||
proc updateReminder*(reminder: Reminder) =
|
||||
{.gcsafe.}:
|
||||
db1.transaction:
|
||||
db1.exec(UpdateReminder, reminder.title, reminder.message, reminder.notifyVia, reminder.repeats, reminder.repeatFreq, reminder.weeklyOn, reminder.monthlyOnDay, reminder.monthlyOnWeekday, reminder.monthlyOnWeek, reminder.yearlyOnMonth, reminder.yearlyOnDay, reminder.yearlyOnWeek, reminder.yearlyOnWeekday, reminder.yearlyOnMonth2, reminder.sendDate, reminder.sendTimeHr, reminder.sendTimeMin, reminder.sendTimeAmPm, reminder.id)
|
||||
|
||||
proc updateReminderSendDate*(reminder: Reminder) =
|
||||
{.gcsafe.}:
|
||||
db1.transaction:
|
||||
db1.exec(UpdateReminderSendDate, reminder.sendDate, reminder.id)
|
||||
|
||||
proc deleteReminder*(id: int) =
|
||||
{.gcsafe.}:
|
||||
db1.transaction:
|
||||
db1.exec(DeleteReminder, id)
|
||||
33
models/session.nim
Normal file
33
models/session.nim
Normal file
@@ -0,0 +1,33 @@
|
||||
#[Copyright 2024 ITwrx.
|
||||
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 sqliteral, "../helpers/db"
|
||||
|
||||
type
|
||||
Session* = object
|
||||
sessionId*, csrfToken*: string
|
||||
id*, userId*: int
|
||||
|
||||
proc deleteSessions*() =
|
||||
{.gcsafe.}:
|
||||
db1.transaction:
|
||||
db1.exec(DeleteSessions)
|
||||
|
||||
proc getSessionByCsrfToken*(csrfToken: string): Session =
|
||||
{.gcsafe.}:
|
||||
var session: Session
|
||||
for row in db1.rows(SelectSessionByCsrfToken, csrfToken):
|
||||
session.id = row.getInt(0)
|
||||
session.sessionId = row.getString(1)
|
||||
session.userId = row.getInt(2)
|
||||
session.csrfToken = row.getString(3)
|
||||
return session
|
||||
|
||||
proc createVisitorSession*(visitorSession: Session): int =
|
||||
{.gcsafe.}:
|
||||
var visitorSessionId: int
|
||||
db1.transaction:
|
||||
visitorSessionId = db1.insert(InsertVisitorSession, visitorSession.csrfToken)
|
||||
return visitorSessionId
|
||||
33
models/user.nim
Normal file
33
models/user.nim
Normal file
@@ -0,0 +1,33 @@
|
||||
#[Copyright 2025 ITwrx.
|
||||
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 sqliteral, "../helpers/db"
|
||||
|
||||
type
|
||||
User* = object
|
||||
email*, password*: string
|
||||
id*: int
|
||||
|
||||
proc getUserByEmail*(email: string): User =
|
||||
{.gcsafe.}:
|
||||
var user: User
|
||||
for row in db1.rows(SelectUsersByEmail, email):
|
||||
user.id = row.getInt(0)
|
||||
user.email = row.getString(1)
|
||||
user.password = row.getString(2)
|
||||
return user
|
||||
|
||||
proc getEmailByUserId*(id: string): string =
|
||||
{.gcsafe.}:
|
||||
var user: User
|
||||
for row in db1.rows(SelectUserById, id):
|
||||
user.id = row.getInt(0)
|
||||
user.email = row.getString(1)
|
||||
return user.email
|
||||
|
||||
proc createUser*(email: string, encodedHash: string) =
|
||||
{.gcsafe.}:
|
||||
db1.transaction:
|
||||
discard db1.insert(InsertUser, email, encodedHash)
|
||||
Reference in New Issue
Block a user