26 lines
641 B
Text
26 lines
641 B
Text
CREATE OR REPLACE VIEW optimized_links AS
|
|
SELECT
|
|
l.id,
|
|
l.title,
|
|
l.date,
|
|
l.description,
|
|
l.link,
|
|
a.mastodon,
|
|
a.name,
|
|
json_build_object('name', a.name, 'url', a.url, 'mastodon', a.mastodon) AS author,
|
|
'link' AS type,
|
|
(
|
|
SELECT
|
|
array_agg(t.name)
|
|
FROM
|
|
links_tags lt
|
|
LEFT JOIN tags t ON lt.tags_id = t.id
|
|
WHERE
|
|
lt.links_id = l.id) AS tags,
|
|
json_build_object('title', CONCAT(l.title, ' via ', a.name), 'url', l.link, 'description', l.description, 'date', l.date) AS feed
|
|
FROM
|
|
links l
|
|
JOIN authors a ON l.author = a.id
|
|
ORDER BY
|
|
l.date DESC;
|
|
|