generated from ITwrxOrg/EZ-Bkup
34 lines
986 B
Nim
34 lines
986 B
Nim
#[Copyright 2025 ITwrx.
|
|
This file is part of Forget-Me-Not.
|
|
Forget-Me-Not 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
|