-
Notifications
You must be signed in to change notification settings - Fork 54
Expand file tree
/
Copy pathsessions.sql.go
More file actions
98 lines (84 loc) · 2.17 KB
/
sessions.sql.go
File metadata and controls
98 lines (84 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: sessions.sql
package database
import (
"context"
"time"
)
const createSession = `-- name: CreateSession :one
INSERT INTO sessions (user_id, token, expires_at, created_at)
VALUES ($1, $2, $3, NOW())
RETURNING id, user_id, token, expires_at, created_at
`
type CreateSessionParams struct {
UserID int32
Token string
ExpiresAt time.Time
}
func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error) {
row := q.db.QueryRowContext(ctx, createSession, arg.UserID, arg.Token, arg.ExpiresAt)
var i Session
err := row.Scan(
&i.ID,
&i.UserID,
&i.Token,
&i.ExpiresAt,
&i.CreatedAt,
)
return i, err
}
const deleteExpiredSessions = `-- name: DeleteExpiredSessions :exec
DELETE FROM sessions
WHERE expires_at <= NOW()
`
func (q *Queries) DeleteExpiredSessions(ctx context.Context) error {
_, err := q.db.ExecContext(ctx, deleteExpiredSessions)
return err
}
const deleteSession = `-- name: DeleteSession :exec
DELETE FROM sessions
WHERE token = $1
`
func (q *Queries) DeleteSession(ctx context.Context, token string) error {
_, err := q.db.ExecContext(ctx, deleteSession, token)
return err
}
const deleteUserSessions = `-- name: DeleteUserSessions :exec
DELETE FROM sessions
WHERE user_id = $1
`
func (q *Queries) DeleteUserSessions(ctx context.Context, userID int32) error {
_, err := q.db.ExecContext(ctx, deleteUserSessions, userID)
return err
}
const getSessionByToken = `-- name: GetSessionByToken :one
SELECT s.id, s.user_id, s.token, s.expires_at, s.created_at, u.username, u.role
FROM sessions s
JOIN users u ON s.user_id = u.id
WHERE s.token = $1 AND s.expires_at > NOW()
`
type GetSessionByTokenRow struct {
ID int32
UserID int32
Token string
ExpiresAt time.Time
CreatedAt time.Time
Username string
Role string
}
func (q *Queries) GetSessionByToken(ctx context.Context, token string) (GetSessionByTokenRow, error) {
row := q.db.QueryRowContext(ctx, getSessionByToken, token)
var i GetSessionByTokenRow
err := row.Scan(
&i.ID,
&i.UserID,
&i.Token,
&i.ExpiresAt,
&i.CreatedAt,
&i.Username,
&i.Role,
)
return i, err
}