1
0
go-rss-aggregator/internal/database/feeds.sql.go

177 lines
3.5 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.21.0
// source: feeds.sql
package database
import (
"context"
"time"
)
const createFeed = `-- name: CreateFeed :one
INSERT INTO feeds (created_at, updated_at, name, url, user_id)
VALUES (?, ?, ?, ?, ?)
RETURNING id, created_at, updated_at, name, url, user_id, last_fetched_at
`
type CreateFeedParams struct {
CreatedAt time.Time
UpdatedAt time.Time
Name string
Url string
UserID int64
}
func (q *Queries) CreateFeed(ctx context.Context, arg CreateFeedParams) (Feed, error) {
row := q.db.QueryRowContext(ctx, createFeed,
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 getFeeds = `-- name: GetFeeds :many
SELECT id, created_at, updated_at, name, url, user_id, last_fetched_at FROM feeds
`
func (q *Queries) GetFeeds(ctx context.Context) ([]Feed, error) {
rows, err := q.db.QueryContext(ctx, getFeeds)
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 getFeedsByUser = `-- name: GetFeedsByUser :many
SELECT id, created_at, updated_at, name, url, user_id, last_fetched_at FROM feeds WHERE user_id = ?
`
func (q *Queries) GetFeedsByUser(ctx context.Context, userID int64) ([]Feed, error) {
rows, err := q.db.QueryContext(ctx, getFeedsByUser, userID)
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 getNextFeedToFetch = `-- name: GetNextFeedToFetch :many
SELECT id, created_at, updated_at, name, url, user_id, last_fetched_at FROM feeds
ORDER BY last_fetched_at ASC NULLS FIRST
LIMIT ?
`
func (q *Queries) GetNextFeedToFetch(ctx context.Context, limit int64) ([]Feed, error) {
rows, err := q.db.QueryContext(ctx, getNextFeedToFetch, limit)
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 markFeedAsFetched = `-- name: MarkFeedAsFetched :one
UPDATE feeds
SET last_fetched_at = date('nowj'),
updated_at = date('now')
WHERE id = ?
RETURNING id, created_at, updated_at, name, url, user_id, last_fetched_at
`
func (q *Queries) MarkFeedAsFetched(ctx context.Context, id int64) (Feed, error) {
row := q.db.QueryRowContext(ctx, markFeedAsFetched, id)
var i Feed
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.Name,
&i.Url,
&i.UserID,
&i.LastFetchedAt,
)
return i, err
}