auth/internal/driver/db/login_events.sql.go

89 lines
1.9 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: login_events.sql
package db
import (
"context"
"net/netip"
"github.com/jackc/pgx/v5/pgtype"
)
const createLoginEvent = `-- name: CreateLoginEvent :one
INSERT INTO login_events (user_id, provider, success, ip, user_agent)
VALUES ($1, $2, $3, $4, $5)
RETURNING id, user_id, provider, success, ip, user_agent, created_at
`
type CreateLoginEventParams struct {
UserID pgtype.UUID `json:"user_id"`
Provider pgtype.Text `json:"provider"`
Success bool `json:"success"`
Ip *netip.Addr `json:"ip"`
UserAgent pgtype.Text `json:"user_agent"`
}
func (q *Queries) CreateLoginEvent(ctx context.Context, arg CreateLoginEventParams) (LoginEvent, error) {
row := q.db.QueryRow(ctx, createLoginEvent,
arg.UserID,
arg.Provider,
arg.Success,
arg.Ip,
arg.UserAgent,
)
var i LoginEvent
err := row.Scan(
&i.ID,
&i.UserID,
&i.Provider,
&i.Success,
&i.Ip,
&i.UserAgent,
&i.CreatedAt,
)
return i, err
}
const listLoginEventsForUser = `-- name: ListLoginEventsForUser :many
SELECT id, user_id, provider, success, ip, user_agent, created_at
FROM login_events
WHERE user_id = $1
ORDER BY created_at DESC
LIMIT $2
`
type ListLoginEventsForUserParams struct {
UserID pgtype.UUID `json:"user_id"`
Limit int32 `json:"limit"`
}
func (q *Queries) ListLoginEventsForUser(ctx context.Context, arg ListLoginEventsForUserParams) ([]LoginEvent, error) {
rows, err := q.db.Query(ctx, listLoginEventsForUser, arg.UserID, arg.Limit)
if err != nil {
return nil, err
}
defer rows.Close()
var items []LoginEvent
for rows.Next() {
var i LoginEvent
if err := rows.Scan(
&i.ID,
&i.UserID,
&i.Provider,
&i.Success,
&i.Ip,
&i.UserAgent,
&i.CreatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}