Distinguish auth/lookup failures, make votes idempotent on visible questions, bound shutdown, page admin users, LRU throttle, trusted-proxy CIDRs, avatar cleanup, versioned migrations, and session cleanup logging.
83 lines
1.9 KiB
Go
83 lines
1.9 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.31.1
|
|
// source: votes.sql
|
|
|
|
package sqlc
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
const deleteVote = `-- name: DeleteVote :exec
|
|
DELETE FROM votes
|
|
WHERE user_id = $1 AND question_id = $2
|
|
`
|
|
|
|
type DeleteVoteParams struct {
|
|
UserID string
|
|
QuestionID string
|
|
}
|
|
|
|
func (q *Queries) DeleteVote(ctx context.Context, arg DeleteVoteParams) error {
|
|
_, err := q.db.ExecContext(ctx, deleteVote, arg.UserID, arg.QuestionID)
|
|
return err
|
|
}
|
|
|
|
const getVote = `-- name: GetVote :one
|
|
SELECT value
|
|
FROM votes
|
|
WHERE user_id = $1 AND question_id = $2
|
|
`
|
|
|
|
type GetVoteParams struct {
|
|
UserID string
|
|
QuestionID string
|
|
}
|
|
|
|
func (q *Queries) GetVote(ctx context.Context, arg GetVoteParams) (int32, error) {
|
|
row := q.db.QueryRowContext(ctx, getVote, arg.UserID, arg.QuestionID)
|
|
var value int32
|
|
err := row.Scan(&value)
|
|
return value, err
|
|
}
|
|
|
|
const questionIsVisible = `-- name: QuestionIsVisible :one
|
|
SELECT EXISTS(
|
|
SELECT 1 FROM questions WHERE id = $1 AND hidden = 0
|
|
)::bool
|
|
`
|
|
|
|
func (q *Queries) QuestionIsVisible(ctx context.Context, id string) (bool, error) {
|
|
row := q.db.QueryRowContext(ctx, questionIsVisible, id)
|
|
var column_1 bool
|
|
err := row.Scan(&column_1)
|
|
return column_1, err
|
|
}
|
|
|
|
const upsertVoteOnVisible = `-- name: UpsertVoteOnVisible :execrows
|
|
INSERT INTO votes (user_id, question_id, value)
|
|
SELECT $1, $2, $3
|
|
FROM questions q
|
|
WHERE q.id = $2 AND q.hidden = 0
|
|
ON CONFLICT (user_id, question_id) DO UPDATE
|
|
SET value = excluded.value
|
|
WHERE EXISTS (
|
|
SELECT 1 FROM questions q2 WHERE q2.id = excluded.question_id AND q2.hidden = 0
|
|
)
|
|
`
|
|
|
|
type UpsertVoteOnVisibleParams struct {
|
|
UserID string
|
|
QuestionID string
|
|
Value int32
|
|
}
|
|
|
|
func (q *Queries) UpsertVoteOnVisible(ctx context.Context, arg UpsertVoteOnVisibleParams) (int64, error) {
|
|
result, err := q.db.ExecContext(ctx, upsertVoteOnVisible, arg.UserID, arg.QuestionID, arg.Value)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return result.RowsAffected()
|
|
}
|