open-bounty/resources/migrations/20170613113100-username-for...

85 lines
2.6 KiB
SQL

drop view if exists claims_view cascade;
drop view if exists bounties_view cascade;
drop view if exists activity_feed_view cascade;
CREATE VIEW claims_view AS SELECT i.title AS issue_title,
i.issue_number,
r.repo AS repo_name,
r.owner AS repo_owner,
coalesce(u.name, u.login) AS user_name,
u.avatar_url AS user_avatar_url,
i.payout_receipt,
p.updated,
i.balance,
p.state AS pr_state
FROM issues i,
users u,
repositories r,
pull_requests p
WHERE r.repo_id = i.repo_id AND p.issue_id = i.issue_id AND p.user_id = u.id AND i.contract_address IS NOT NULL AND i.comment_id IS NOT NULL
ORDER BY p.updated;
create view bounties_view as
SELECT i.title AS issue_title,
i.issue_number,
r.repo AS repo_name,
r.owner AS repo_owner,
concat(r.owner, '/', r.repo)::character varying(128) AS user_name,
r.owner_avatar_url AS user_avatar_url,
i.payout_receipt,
i.balance,
i.updated
FROM issues i,
repositories r
WHERE r.repo_id = i.repo_id AND i.contract_address IS NOT NULL AND i.comment_id IS NOT NULL
ORDER BY i.updated;
create view activity_feed_view as
SELECT 'open-claim'::text AS type,
claims_view.issue_title,
claims_view.repo_name,
claims_view.repo_owner,
claims_view.issue_number,
claims_view.user_name,
claims_view.user_avatar_url,
claims_view.balance,
claims_view.updated
FROM claims_view
WHERE claims_view.pr_state = 0 AND claims_view.payout_receipt IS NULL
UNION
SELECT 'claim-payout'::text AS type,
claims_view.issue_title,
claims_view.repo_name,
claims_view.repo_owner,
claims_view.issue_number,
claims_view.user_name,
claims_view.user_avatar_url,
claims_view.balance,
claims_view.updated
FROM claims_view
WHERE claims_view.pr_state = 1 AND claims_view.payout_receipt IS NOT NULL
UNION
SELECT 'new-bounty'::text AS type,
bounties_view.issue_title,
bounties_view.repo_name,
bounties_view.repo_owner,
bounties_view.issue_number,
bounties_view.user_name,
bounties_view.user_avatar_url,
bounties_view.balance,
bounties_view.updated
FROM bounties_view
WHERE bounties_view.balance = 0::numeric AND bounties_view.payout_receipt IS NULL
UNION
SELECT 'balance-update'::text AS type,
bounties_view.issue_title,
bounties_view.repo_name,
bounties_view.repo_owner,
bounties_view.issue_number,
bounties_view.user_name,
bounties_view.user_avatar_url,
bounties_view.balance,
bounties_view.updated
FROM bounties_view
WHERE bounties_view.balance > 0::numeric AND bounties_view.payout_receipt IS NULL
ORDER BY 9 DESC;