85 lines
2.6 KiB
MySQL
85 lines
2.6 KiB
MySQL
|
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;
|