124 lines
2.7 KiB
Go
124 lines
2.7 KiB
Go
|
|
// Code generated by sqlc. DO NOT EDIT.
|
||
|
|
// versions:
|
||
|
|
// sqlc v1.27.0
|
||
|
|
// source: queries.sql
|
||
|
|
|
||
|
|
package db
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
)
|
||
|
|
|
||
|
|
const createSession = `-- name: CreateSession :exec
|
||
|
|
INSERT INTO sessions (user_id, session_id, expires_at)
|
||
|
|
VALUES (?, ?, ?)
|
||
|
|
`
|
||
|
|
|
||
|
|
type CreateSessionParams struct {
|
||
|
|
UserID int64
|
||
|
|
SessionID string
|
||
|
|
ExpiresAt string
|
||
|
|
}
|
||
|
|
|
||
|
|
func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) error {
|
||
|
|
_, err := q.db.ExecContext(ctx, createSession, arg.UserID, arg.SessionID, arg.ExpiresAt)
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
|
||
|
|
const createUser = `-- name: CreateUser :one
|
||
|
|
|
||
|
|
INSERT INTO user (email, password, metadata)
|
||
|
|
VALUES (?, ?, ?)
|
||
|
|
RETURNING id
|
||
|
|
`
|
||
|
|
|
||
|
|
type CreateUserParams struct {
|
||
|
|
Email string
|
||
|
|
Password string
|
||
|
|
Metadata interface{}
|
||
|
|
}
|
||
|
|
|
||
|
|
// Queries for User Management
|
||
|
|
func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (int64, error) {
|
||
|
|
row := q.db.QueryRowContext(ctx, createUser, arg.Email, arg.Password, arg.Metadata)
|
||
|
|
var id int64
|
||
|
|
err := row.Scan(&id)
|
||
|
|
return id, err
|
||
|
|
}
|
||
|
|
|
||
|
|
const getUserByEmail = `-- name: GetUserByEmail :one
|
||
|
|
SELECT id, email, password, metadata, created_at, updated_at
|
||
|
|
FROM user
|
||
|
|
WHERE email = ?
|
||
|
|
`
|
||
|
|
|
||
|
|
func (q *Queries) GetUserByEmail(ctx context.Context, email string) (User, error) {
|
||
|
|
row := q.db.QueryRowContext(ctx, getUserByEmail, email)
|
||
|
|
var i User
|
||
|
|
err := row.Scan(
|
||
|
|
&i.ID,
|
||
|
|
&i.Email,
|
||
|
|
&i.Password,
|
||
|
|
&i.Metadata,
|
||
|
|
&i.CreatedAt,
|
||
|
|
&i.UpdatedAt,
|
||
|
|
)
|
||
|
|
return i, err
|
||
|
|
}
|
||
|
|
|
||
|
|
const getUserByID = `-- name: GetUserByID :one
|
||
|
|
SELECT id, email, password, metadata, created_at, updated_at
|
||
|
|
FROM user
|
||
|
|
WHERE id = ?
|
||
|
|
`
|
||
|
|
|
||
|
|
func (q *Queries) GetUserByID(ctx context.Context, id int64) (User, error) {
|
||
|
|
row := q.db.QueryRowContext(ctx, getUserByID, id)
|
||
|
|
var i User
|
||
|
|
err := row.Scan(
|
||
|
|
&i.ID,
|
||
|
|
&i.Email,
|
||
|
|
&i.Password,
|
||
|
|
&i.Metadata,
|
||
|
|
&i.CreatedAt,
|
||
|
|
&i.UpdatedAt,
|
||
|
|
)
|
||
|
|
return i, err
|
||
|
|
}
|
||
|
|
|
||
|
|
const getUserByToken = `-- name: GetUserByToken :one
|
||
|
|
SELECT u.id, u.email, u.password, u.metadata, u.created_at, u.updated_at
|
||
|
|
FROM user u
|
||
|
|
JOIN sessions t ON u.id = t.user_id
|
||
|
|
WHERE t.session_id = ?
|
||
|
|
AND t.expires_at > datetime('now')
|
||
|
|
`
|
||
|
|
|
||
|
|
func (q *Queries) GetUserByToken(ctx context.Context, sessionID string) (User, error) {
|
||
|
|
row := q.db.QueryRowContext(ctx, getUserByToken, sessionID)
|
||
|
|
var i User
|
||
|
|
err := row.Scan(
|
||
|
|
&i.ID,
|
||
|
|
&i.Email,
|
||
|
|
&i.Password,
|
||
|
|
&i.Metadata,
|
||
|
|
&i.CreatedAt,
|
||
|
|
&i.UpdatedAt,
|
||
|
|
)
|
||
|
|
return i, err
|
||
|
|
}
|
||
|
|
|
||
|
|
const updateUserMetadata = `-- name: UpdateUserMetadata :exec
|
||
|
|
UPDATE user SET metadata = json_patch(COALESCE(metadata, '{}'), ?) WHERE id = ?
|
||
|
|
`
|
||
|
|
|
||
|
|
type UpdateUserMetadataParams struct {
|
||
|
|
JsonPatch interface{}
|
||
|
|
ID int64
|
||
|
|
}
|
||
|
|
|
||
|
|
func (q *Queries) UpdateUserMetadata(ctx context.Context, arg UpdateUserMetadataParams) error {
|
||
|
|
_, err := q.db.ExecContext(ctx, updateUserMetadata, arg.JsonPatch, arg.ID)
|
||
|
|
return err
|
||
|
|
}
|