gator/internal/database/feed_follows.sql.go

122 lines
2.6 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: feed_follows.sql
package database
import (
"context"
"time"
"github.com/google/uuid"
)
const createFeedFollow = `-- name: CreateFeedFollow :one
WITH inserted_feed_follow AS (
INSERT INTO feed_follows (
id,
created_at,
updated_at,
user_id,
feed_id
)
VALUES (
$1,
$2,
$3,
$4,
$5
)
RETURNING id, created_at, updated_at, user_id, feed_id
)
SELECT inserted_feed_follow.id, inserted_feed_follow.created_at, inserted_feed_follow.updated_at, inserted_feed_follow.user_id, inserted_feed_follow.feed_id, feeds.name AS feed_name, users.name AS user_name
FROM inserted_feed_follow
INNER JOIN users ON users.id = inserted_feed_follow.user_id
INNER JOIN feeds ON feeds.id = inserted_feed_follow.feed_id
`
type CreateFeedFollowParams struct {
ID uuid.UUID
CreatedAt time.Time
UpdatedAt time.Time
UserID uuid.UUID
FeedID uuid.UUID
}
type CreateFeedFollowRow struct {
ID uuid.UUID
CreatedAt time.Time
UpdatedAt time.Time
UserID uuid.UUID
FeedID uuid.UUID
FeedName string
UserName string
}
func (q *Queries) CreateFeedFollow(ctx context.Context, arg CreateFeedFollowParams) (CreateFeedFollowRow, error) {
row := q.db.QueryRowContext(ctx, createFeedFollow,
arg.ID,
arg.CreatedAt,
arg.UpdatedAt,
arg.UserID,
arg.FeedID,
)
var i CreateFeedFollowRow
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.UserID,
&i.FeedID,
&i.FeedName,
&i.UserName,
)
return i, err
}
const deleteFeedFollow = `-- name: DeleteFeedFollow :exec
DELETE FROM feed_follows
WHERE user_id = $1 AND feed_id = $2
`
type DeleteFeedFollowParams struct {
UserID uuid.UUID
FeedID uuid.UUID
}
func (q *Queries) DeleteFeedFollow(ctx context.Context, arg DeleteFeedFollowParams) error {
_, err := q.db.ExecContext(ctx, deleteFeedFollow, arg.UserID, arg.FeedID)
return err
}
const getFeedFollowsForUser = `-- name: GetFeedFollowsForUser :many
SELECT feeds.name as feeds_name
FROM feed_follows
INNER JOIN feeds ON feed_follows.feed_id = feeds.id
WHERE feed_follows.user_id = $1
`
func (q *Queries) GetFeedFollowsForUser(ctx context.Context, userID uuid.UUID) ([]string, error) {
rows, err := q.db.QueryContext(ctx, getFeedFollowsForUser, userID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []string
for rows.Next() {
var feeds_name string
if err := rows.Scan(&feeds_name); err != nil {
return nil, err
}
items = append(items, feeds_name)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}