-- name: add-article-to-favorites! INSERT INTO favorites (user_id, article_id) VALUES ((SELECT id FROM users WHERE username = :username), (SELECT id FROM articles WHERE slug = :slug)) ON CONFLICT DO NOTHING; -- name: remove-article-from-favorites! DELETE FROM favorites WHERE user_id = (SELECT id FROM users WHERE username = :username) AND article_id = (SELECT id FROM articles WHERE slug = :slug); -- name: is-article-in-favorites^ SELECT CASE WHEN count(user_id) > 0 THEN TRUE ELSE FALSE END AS favorited FROM favorites WHERE user_id = (SELECT id FROM users WHERE username = :username) AND article_id = (SELECT id FROM articles WHERE slug = :slug); -- name: get-favorites-count-for-article^ SELECT count(*) as favorites_count FROM favorites WHERE article_id = (SELECT id FROM articles WHERE slug = :slug); -- name: get-tags-for-article-by-slug SELECT t.tag FROM tags t INNER JOIN articles_to_tags att ON t.tag = att.tag AND att.article_id = (SELECT id FROM articles WHERE slug = :slug); -- name: get-article-by-slug^ SELECT id, slug, title, description, body, created_at, updated_at, (SELECT username FROM users WHERE id = author_id) AS author_username FROM articles WHERE slug = :slug LIMIT 1; -- name: create-new-article