tijl.dev-core/internal/queries/sessions.sql.go
tijl 1d072c6cc6
Some checks failed
build / build (push) Successful in 28s
release-tag / release-image (push) Has been cancelled
general page updates
2024-08-31 17:42:51 +02:00

168 lines
3.8 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
// source: sessions.sql
package queries
import (
"context"
)
const createSession = `-- name: CreateSession :exec
INSERT INTO sessions (uid, token, last_activity) VALUES ($1, $2, CURRENT_TIMESTAMP)
`
type CreateSessionParams struct {
Uid string
Token string
}
func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) error {
_, err := q.db.ExecContext(ctx, createSession, arg.Uid, arg.Token)
return err
}
const expireSession = `-- name: ExpireSession :exec
UPDATE sessions SET expires = 1 WHERE token = $1
`
func (q *Queries) ExpireSession(ctx context.Context, token string) error {
_, err := q.db.ExecContext(ctx, expireSession, token)
return err
}
const getActiveSessions = `-- name: GetActiveSessions :many
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
`
type GetActiveSessionsParams struct {
Uid string
Column2 interface{}
}
func (q *Queries) GetActiveSessions(ctx context.Context, arg GetActiveSessionsParams) ([]Session, error) {
rows, err := q.db.QueryContext(ctx, getActiveSessions, arg.Uid, arg.Column2)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Session
for rows.Next() {
var i Session
if err := rows.Scan(
&i.ID,
&i.Uid,
&i.Token,
&i.Expires,
&i.LastActivity,
&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
}
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
}
const getSessions = `-- name: GetSessions :many
SELECT id, uid, token, expires, last_activity, created_at FROM sessions WHERE uid = $1 ORDER BY $2
`
type GetSessionsParams struct {
Uid string
Column2 interface{}
}
func (q *Queries) GetSessions(ctx context.Context, arg GetSessionsParams) ([]Session, error) {
rows, err := q.db.QueryContext(ctx, getSessions, arg.Uid, arg.Column2)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Session
for rows.Next() {
var i Session
if err := rows.Scan(
&i.ID,
&i.Uid,
&i.Token,
&i.Expires,
&i.LastActivity,
&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
}
const quickUpdateSession = `-- name: QuickUpdateSession :one
WITH updated_session AS (
UPDATE sessions
SET last_activity = CURRENT_TIMESTAMP
WHERE token = $1
RETURNING id, uid
),
inserted_or_updated AS (
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
RETURNING session_id
)
SELECT uid
FROM updated_session
`
type QuickUpdateSessionParams struct {
Token string
IpAddress string
Agent string
}
func (q *Queries) QuickUpdateSession(ctx context.Context, arg QuickUpdateSessionParams) (string, error) {
row := q.db.QueryRowContext(ctx, quickUpdateSession, arg.Token, arg.IpAddress, arg.Agent)
var uid string
err := row.Scan(&uid)
return uid, err
}