package tenant import ( "context" "database/sql" "time" ) func (q *Queries) GetPage(ctx context.Context, path string) ([]byte, string, error) { var html []byte var etag sql.NullString err := q.db.QueryRowContext(ctx, `SELECT html, etag FROM pages WHERE path = ?`, path).Scan(&html, &etag) if err == sql.ErrNoRows { return nil, "", nil } if err != nil { return nil, "", err } return html, etag.String, nil } func (q *Queries) SetPage(ctx context.Context, path string, html []byte, etag string) error { now := time.Now().UTC().Format(time.RFC3339) _, err := q.db.ExecContext(ctx, `INSERT INTO pages (path, html, etag, built_at) VALUES (?, ?, ?, ?) ON CONFLICT(path) DO UPDATE SET html = excluded.html, etag = excluded.etag, built_at = excluded.built_at`, path, html, nullStr(etag), now) return err } func (q *Queries) DeleteAllPages(ctx context.Context) error { _, err := q.db.ExecContext(ctx, `DELETE FROM pages`) return err } func (q *Queries) DeletePage(ctx context.Context, path string) error { _, err := q.db.ExecContext(ctx, `DELETE FROM pages WHERE path = ?`, path) return err }