// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.27.0 // source: sessions.sql package database 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 :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 ` type QuickUpdateSessionParams struct { Token string IpAddress string Agent string } func (q *Queries) QuickUpdateSession(ctx context.Context, arg QuickUpdateSessionParams) error { _, err := q.db.ExecContext(ctx, quickUpdateSession, arg.Token, arg.IpAddress, arg.Agent) return err }