aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/db/queries/feeds.sql
blob: 094a0f864ac3735fac89cc0abafa3694e53b5e79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
-- name: GetFeed :one
SELECT id, url, title, fetched_at, is_subscribed, user_id
FROM feeds
WHERE id = ?;

-- name: GetFeeds :many
SELECT id, url, title, fetched_at, is_subscribed, user_id
FROM feeds
WHERE is_subscribed = 1 AND user_id = ?
ORDER BY id;

-- name: CreateFeed :one
INSERT INTO feeds (url, title, fetched_at, user_id)
VALUES (?, ?, ?, ?)
RETURNING *;

-- name: UpdateFeedMetadata :exec
UPDATE feeds
SET title = ?, fetched_at = ?
WHERE id = ?;

-- name: DeleteFeed :exec
DELETE FROM feeds
WHERE id = ?;

-- name: GetFeedByURL :one
SELECT id, url, title, fetched_at, is_subscribed, user_id
FROM feeds
WHERE url = ? AND user_id = ?;

-- name: GetFeedsToFetch :many
SELECT id, url, fetched_at, user_id
FROM feeds
WHERE is_subscribed = 1;

-- name: UnsubscribeFeed :exec
UPDATE feeds
SET is_subscribed = 0
WHERE id = ?;

-- name: GetFeedUnreadCounts :many
SELECT f.id as feed_id, COUNT(a.id) as unread_count
FROM feeds AS f
LEFT JOIN articles AS a ON f.id = a.feed_id AND a.is_read = 0
WHERE f.is_subscribed = 1 AND f.user_id = ?
GROUP BY f.id;