rf/moves ListSessions from sql.account to sql.session

This commit is contained in:
itsscb 2023-10-09 00:39:43 +02:00
parent dcc5c4d76d
commit e400134a93
4 changed files with 44 additions and 43 deletions

View File

@ -80,8 +80,4 @@ RETURNING *;
-- name: DeleteAccount :exec
DELETE FROM accounts
WHERE "id" = $1;
-- name: ListSessions :many
SELECT * FROM sessions
WHERE email = sqlc.arg(email) AND is_blocked = false AND expires_at > now();
WHERE "id" = $1;

View File

@ -19,4 +19,9 @@ WHERE id = $1 LIMIT 1;
UPDATE sessions
SET
"is_blocked" = true
WHERE "id" = sqlc.arg(id);
WHERE "id" = sqlc.arg(id);
-- name: ListSessions :many
SELECT * FROM sessions
WHERE email = sqlc.arg(email) AND is_blocked = false AND expires_at > now();

View File

@ -259,43 +259,6 @@ func (q *Queries) ListAccounts(ctx context.Context, arg ListAccountsParams) ([]A
return items, nil
}
const listSessions = `-- name: ListSessions :many
SELECT id, email, user_agent, client_ip, refresh_token, is_blocked, expires_at, created_at FROM sessions
WHERE email = $1 AND is_blocked = false AND expires_at > now()
`
func (q *Queries) ListSessions(ctx context.Context, email string) ([]Session, error) {
rows, err := q.db.QueryContext(ctx, listSessions, email)
if err != nil {
return nil, err
}
defer rows.Close()
items := []Session{}
for rows.Next() {
var i Session
if err := rows.Scan(
&i.ID,
&i.Email,
&i.UserAgent,
&i.ClientIp,
&i.RefreshToken,
&i.IsBlocked,
&i.ExpiresAt,
&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 updateAccount = `-- name: UpdateAccount :one
UPDATE accounts
SET

View File

@ -92,3 +92,40 @@ func (q *Queries) GetSession(ctx context.Context, id uuid.UUID) (Session, error)
)
return i, err
}
const listSessions = `-- name: ListSessions :many
SELECT id, email, user_agent, client_ip, refresh_token, is_blocked, expires_at, created_at FROM sessions
WHERE email = $1 AND is_blocked = false AND expires_at > now()
`
func (q *Queries) ListSessions(ctx context.Context, email string) ([]Session, error) {
rows, err := q.db.QueryContext(ctx, listSessions, email)
if err != nil {
return nil, err
}
defer rows.Close()
items := []Session{}
for rows.Next() {
var i Session
if err := rows.Scan(
&i.ID,
&i.Email,
&i.UserAgent,
&i.ClientIp,
&i.RefreshToken,
&i.IsBlocked,
&i.ExpiresAt,
&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
}