tijl.dev-core/modules/database/sessions.sql.go

161 lines
3.6 KiB
Go
Raw Normal View History

2024-08-21 01:08:47 +02:00
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
// source: sessions.sql
2024-08-21 15:43:24 +02:00
package database
2024-08-21 01:08:47 +02:00
import (
"context"
)
const createSession = `-- name: CreateSession :exec
2024-08-21 17:31:03 +02:00
INSERT INTO sessions (uid, token, last_activity) VALUES ($1, $2, CURRENT_TIMESTAMP)
2024-08-21 01:08:47 +02:00
`
type CreateSessionParams struct {
2024-08-21 17:31:03 +02:00
Uid string
Token string
2024-08-21 01:08:47 +02:00
}
func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) error {
2024-08-21 17:31:03 +02:00
_, err := q.db.ExecContext(ctx, createSession, arg.Uid, arg.Token)
2024-08-21 01:08:47 +02:00
return err
}
const expireSession = `-- name: ExpireSession :exec
2024-08-21 17:31:03 +02:00
UPDATE sessions SET expires = 1 WHERE token = $1
2024-08-21 01:08:47 +02:00
`
2024-08-21 17:31:03 +02:00
func (q *Queries) ExpireSession(ctx context.Context, token string) error {
_, err := q.db.ExecContext(ctx, expireSession, token)
2024-08-21 01:08:47 +02:00
return err
}
const getActiveSessions = `-- name: GetActiveSessions :many
2024-08-21 17:31:03 +02:00
SELECT id, uid, token, expires, last_activity, created_at FROM sessions WHERE uid = $1 AND (expires > CURRENT_TIMESTAMP OR expires IS NULL) ORDER BY $2
2024-08-21 01:08:47 +02:00
`
type GetActiveSessionsParams struct {
2024-08-21 17:31:03 +02:00
Uid string
2024-08-21 01:08:47 +02:00
Column2 interface{}
}
func (q *Queries) GetActiveSessions(ctx context.Context, arg GetActiveSessionsParams) ([]Session, error) {
2024-08-21 17:31:03 +02:00
rows, err := q.db.QueryContext(ctx, getActiveSessions, arg.Uid, arg.Column2)
2024-08-21 01:08:47 +02:00
if err != nil {
return nil, err
}
defer rows.Close()
var items []Session
for rows.Next() {
var i Session
if err := rows.Scan(
&i.ID,
2024-08-21 17:31:03 +02:00
&i.Uid,
2024-08-21 01:08:47 +02:00
&i.Token,
&i.Expires,
2024-08-21 17:31:03 +02:00
&i.LastActivity,
2024-08-21 01:08:47 +02:00
&i.CreatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
2024-08-21 17:31:03 +02:00
const getSession = `-- name: GetSession :one
SELECT id, uid, token, expires, last_activity, created_at FROM sessions WHERE token = $1
`
func (q *Queries) GetSession(ctx context.Context, token string) (Session, error) {
row := q.db.QueryRowContext(ctx, getSession, token)
var i Session
err := row.Scan(
&i.ID,
&i.Uid,
&i.Token,
&i.Expires,
&i.LastActivity,
&i.CreatedAt,
)
return i, err
}
2024-08-21 01:08:47 +02:00
const getSessions = `-- name: GetSessions :many
2024-08-21 17:31:03 +02:00
SELECT id, uid, token, expires, last_activity, created_at FROM sessions WHERE uid = $1 ORDER BY $2
2024-08-21 01:08:47 +02:00
`
type GetSessionsParams struct {
2024-08-21 17:31:03 +02:00
Uid string
2024-08-21 01:08:47 +02:00
Column2 interface{}
}
func (q *Queries) GetSessions(ctx context.Context, arg GetSessionsParams) ([]Session, error) {
2024-08-21 17:31:03 +02:00
rows, err := q.db.QueryContext(ctx, getSessions, arg.Uid, arg.Column2)
2024-08-21 01:08:47 +02:00
if err != nil {
return nil, err
}
defer rows.Close()
var items []Session
for rows.Next() {
var i Session
if err := rows.Scan(
&i.ID,
2024-08-21 17:31:03 +02:00
&i.Uid,
2024-08-21 01:08:47 +02:00
&i.Token,
&i.Expires,
2024-08-21 17:31:03 +02:00
&i.LastActivity,
2024-08-21 01:08:47 +02:00
&i.CreatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
2024-08-21 17:31:03 +02:00
const quickUpdateSession = `-- name: QuickUpdateSession :exec
WITH updated_session AS (
UPDATE sessions
SET last_activity = CURRENT_TIMESTAMP
WHERE token = $1
RETURNING id
)
INSERT INTO session_ips (session_id, ip_address, agent, access_time)
VALUES (
(SELECT id FROM updated_session),
$2,
$3,
CURRENT_TIMESTAMP
)
ON CONFLICT (session_id, ip_address)
DO UPDATE SET
agent = EXCLUDED.agent,
access_time = CURRENT_TIMESTAMP
2024-08-21 01:08:47 +02:00
`
2024-08-21 17:31:03 +02:00
type QuickUpdateSessionParams struct {
Token string
IpAddress string
Agent string
2024-08-21 01:08:47 +02:00
}
2024-08-21 17:31:03 +02:00
func (q *Queries) QuickUpdateSession(ctx context.Context, arg QuickUpdateSessionParams) error {
_, err := q.db.ExecContext(ctx, quickUpdateSession, arg.Token, arg.IpAddress, arg.Agent)
2024-08-21 01:08:47 +02:00
return err
}