queries

package
v1.16.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 12, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package queries runs the app's SQL queries, typed from its schema (see docs/sql.md).

Index

Constants

This section is empty.

Variables

View Source
var ErrNotFound = errors.New("queries: not found")

ErrNotFound is returned by a :one query that finds no row.

Functions

This section is empty.

Types

type AddLinkParams

type AddLinkParams struct {
	ID     int64
	UserID int64
	URL    string
	Title  string
	Note   *string
}

AddLinkParams are the parameters of AddLink.

type DB

type DB interface {
	ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)
	QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)
	QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row
}

DB is what queries run on: a *sql.DB, a *sql.Tx or a *sql.Conn.

type Link struct {
	ID      int64     `json:"id"`
	URL     string    `json:"url"`
	Title   string    `json:"title"`
	Note    *string   `json:"note"`
	Read    bool      `json:"read"`
	AddedAt time.Time `json:"addedAt"`
}

Link is a row of AddLink.

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

Queries runs the queries on a database.

func New

func New(db *sql.DB) (*Queries, error)

New returns the queries for db, a SQLite or PostgreSQL database.

func (q *Queries) AddLink(ctx context.Context, in AddLinkParams) (Link, error)

AddLink runs queries/links.sql:1.

func (*Queries) AddUser

func (q *Queries) AddUser(ctx context.Context, id int64, email string, name *string) (int64, error)

AddUser runs queries/users.sql:1.

func (q *Queries) CountLinks(ctx context.Context, userID int64) (int64, error)

CountLinks runs queries/links.sql:14.

func (q *Queries) DeleteLinks(ctx context.Context, userID int64) error

DeleteLinks runs queries/links.sql:23.

func (*Queries) LinksOf

func (q *Queries) LinksOf(ctx context.Context, userID int64, show string, limit int64) ([]Link, error)

LinksOf runs queries/links.sql:7.

A user's links, newest first; show is "read", "unread" or "all".

func (*Queries) MarkRead

func (q *Queries) MarkRead(ctx context.Context, read bool, id int64, userID int64) (int64, error)

MarkRead runs queries/links.sql:20.

func (*Queries) Titles

func (q *Queries) Titles(ctx context.Context, userID int64, pattern string) ([]string, error)

Titles runs queries/links.sql:17.

func (*Queries) UserByEmail

func (q *Queries) UserByEmail(ctx context.Context, email string) (UserByEmailRow, error)

UserByEmail runs queries/users.sql:6.

The user with an email address.

func (*Queries) WithTx

func (q *Queries) WithTx(tx *sql.Tx) *Queries

WithTx returns the queries running in tx.

type UserByEmailRow

type UserByEmailRow struct {
	ID    int64   `json:"id"`
	Email string  `json:"email"`
	Name  *string `json:"name"`
}

UserByEmailRow is a row of UserByEmail.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL