gator/internal/database/feeds.sql.go

161 lines
2.9 KiB
Go
Raw Permalink Normal View History

2024-10-01 01:12:12 +01:00
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
// source: feeds.sql
package database
import (
"context"
"database/sql"
"time"
"github.com/google/uuid"
)
const createFeed = `-- name: CreateFeed :one
INSERT INTO feeds(
id,
created_at,
updated_at,
name,
url,
user_id
)
VALUES (
$1,
$2,
$3,
$4,
$5,
$6
)
RETURNING id, created_at, updated_at, name, url, user_id, last_fetched_at
`
type CreateFeedParams struct {
ID uuid.UUID
CreatedAt time.Time
UpdatedAt time.Time
Name string
Url string
UserID uuid.UUID
}
func (q *Queries) CreateFeed(ctx context.Context, arg CreateFeedParams) (Feed, error) {
row := q.db.QueryRowContext(ctx, createFeed,
arg.ID,
arg.CreatedAt,
arg.UpdatedAt,
arg.Name,
arg.Url,
arg.UserID,
)
var i Feed
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.Name,
&i.Url,
&i.UserID,
&i.LastFetchedAt,
)
return i, err
}
const getAllFeeds = `-- name: GetAllFeeds :many
SELECT id, created_at, updated_at, name, url, user_id, last_fetched_at
FROM feeds
`
func (q *Queries) GetAllFeeds(ctx context.Context) ([]Feed, error) {
rows, err := q.db.QueryContext(ctx, getAllFeeds)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Feed
for rows.Next() {
var i Feed
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.Name,
&i.Url,
&i.UserID,
&i.LastFetchedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getFeedByUrl = `-- name: GetFeedByUrl :one
SELECT id, created_at, updated_at, name, url, user_id, last_fetched_at
FROM feeds
WHERE url = $1
`
func (q *Queries) GetFeedByUrl(ctx context.Context, url string) (Feed, error) {
row := q.db.QueryRowContext(ctx, getFeedByUrl, url)
var i Feed
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.Name,
&i.Url,
&i.UserID,
&i.LastFetchedAt,
)
return i, err
}
const getNextFeedToFetch = `-- name: GetNextFeedToFetch :one
SELECT id, created_at, updated_at, name, url, user_id, last_fetched_at
FROM feeds
ORDER BY last_fetched_at ASC NULLS FIRST LIMIT 1
`
func (q *Queries) GetNextFeedToFetch(ctx context.Context) (Feed, error) {
row := q.db.QueryRowContext(ctx, getNextFeedToFetch)
var i Feed
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.Name,
&i.Url,
&i.UserID,
&i.LastFetchedAt,
)
return i, err
}
const markFeedFetched = `-- name: MarkFeedFetched :exec
UPDATE feeds
SET last_fetched_at = $2, updated_at = $3
WHERE id = $1
`
type MarkFeedFetchedParams struct {
ID uuid.UUID
LastFetchedAt sql.NullTime
UpdatedAt time.Time
}
func (q *Queries) MarkFeedFetched(ctx context.Context, arg MarkFeedFetchedParams) error {
_, err := q.db.ExecContext(ctx, markFeedFetched, arg.ID, arg.LastFetchedAt, arg.UpdatedAt)
return err
}