Skip to content

Commit

Permalink
feat: remove table form_result_status
Browse files Browse the repository at this point in the history
  • Loading branch information
dleard committed Mar 13, 2021
1 parent d886ca9 commit 1a8406e
Show file tree
Hide file tree
Showing 7 changed files with 157 additions and 67 deletions.
55 changes: 1 addition & 54 deletions schema/deploy/tables/form_result_status.sql
Original file line number Diff line number Diff line change
Expand Up @@ -3,59 +3,6 @@

begin;

create table ggircs_portal.form_result_status (
id integer primary key generated always as identity,
application_id int not null references ggircs_portal.application(id),
form_id int not null,
form_result_status ggircs_portal.ciip_form_result_status,
created_at timestamp with time zone not null default now(),
created_by int references ggircs_portal.ciip_user,
updated_at timestamp with time zone not null default now(),
updated_by int references ggircs_portal.ciip_user,
deleted_at timestamp with time zone,
deleted_by int references ggircs_portal.ciip_user
);

create index ggircs_portal_form_result_status_foreign_key on ggircs_portal.form_result_status(application_id);

create trigger _100_timestamps
before insert or update on ggircs_portal.form_result_status
for each row
execute procedure ggircs_portal_private.update_timestamps();

do
$grant$
begin
-- Grant ciip_administrator permissions
perform ggircs_portal_private.grant_permissions('select', 'form_result_status', 'ciip_administrator');
perform ggircs_portal_private.grant_permissions('insert', 'form_result_status', 'ciip_administrator');

-- Grant ciip_analyst permissions
perform ggircs_portal_private.grant_permissions('select', 'form_result_status', 'ciip_analyst');
perform ggircs_portal_private.grant_permissions('insert', 'form_result_status', 'ciip_analyst');

-- Grant ciip_industry_user permissions
perform ggircs_portal_private.grant_permissions('select', 'form_result_status', 'ciip_industry_user');
perform ggircs_portal_private.grant_permissions('insert', 'form_result_status', 'ciip_industry_user');

-- Grant ciip_guest permissions
-- ?
end
$grant$;

-- Enable row-level security
alter table ggircs_portal.form_result_status enable row level security;

comment on table ggircs_portal.form_result_status is 'The form result status data';
comment on column ggircs_portal.form_result_status.id is 'The id used for reference and join';
comment on column ggircs_portal.form_result_status.application_id is 'The foreign key to application used for reference and join';
comment on column ggircs_portal.form_result_status.form_id is 'The form id (form_json) this status is attached to';
comment on column ggircs_portal.form_result_status.form_result_status is 'The form result status';
comment on column ggircs_portal.form_result_status.created_at is 'The date the form result status was updated';
comment on column ggircs_portal.form_result_status.created_by is 'The person who updated the form result status';
comment on column ggircs_portal.form_result_status.updated_at is 'The date the form result status was updated';
comment on column ggircs_portal.form_result_status.updated_by is 'The person who updated the form result status';
comment on column ggircs_portal.form_result_status.deleted_at is 'The date the form result status was deleted';
comment on column ggircs_portal.form_result_status.deleted_by is 'The person who deleted the form result status';
drop table ggircs_portal.form_result_status;

commit;
61 changes: 61 additions & 0 deletions schema/deploy/tables/form_result_status@v1.16.0.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
-- Deploy ggircs-portal:tables/form_result_status to pg
-- requires: tables/form_result

begin;

create table ggircs_portal.form_result_status (
id integer primary key generated always as identity,
application_id int not null references ggircs_portal.application(id),
form_id int not null,
form_result_status ggircs_portal.ciip_form_result_status,
created_at timestamp with time zone not null default now(),
created_by int references ggircs_portal.ciip_user,
updated_at timestamp with time zone not null default now(),
updated_by int references ggircs_portal.ciip_user,
deleted_at timestamp with time zone,
deleted_by int references ggircs_portal.ciip_user
);

create index ggircs_portal_form_result_status_foreign_key on ggircs_portal.form_result_status(application_id);

create trigger _100_timestamps
before insert or update on ggircs_portal.form_result_status
for each row
execute procedure ggircs_portal_private.update_timestamps();

do
$grant$
begin
-- Grant ciip_administrator permissions
perform ggircs_portal_private.grant_permissions('select', 'form_result_status', 'ciip_administrator');
perform ggircs_portal_private.grant_permissions('insert', 'form_result_status', 'ciip_administrator');

-- Grant ciip_analyst permissions
perform ggircs_portal_private.grant_permissions('select', 'form_result_status', 'ciip_analyst');
perform ggircs_portal_private.grant_permissions('insert', 'form_result_status', 'ciip_analyst');

-- Grant ciip_industry_user permissions
perform ggircs_portal_private.grant_permissions('select', 'form_result_status', 'ciip_industry_user');
perform ggircs_portal_private.grant_permissions('insert', 'form_result_status', 'ciip_industry_user');

-- Grant ciip_guest permissions
-- ?
end
$grant$;

-- Enable row-level security
alter table ggircs_portal.form_result_status enable row level security;

comment on table ggircs_portal.form_result_status is 'The form result status data';
comment on column ggircs_portal.form_result_status.id is 'The id used for reference and join';
comment on column ggircs_portal.form_result_status.application_id is 'The foreign key to application used for reference and join';
comment on column ggircs_portal.form_result_status.form_id is 'The form id (form_json) this status is attached to';
comment on column ggircs_portal.form_result_status.form_result_status is 'The form result status';
comment on column ggircs_portal.form_result_status.created_at is 'The date the form result status was updated';
comment on column ggircs_portal.form_result_status.created_by is 'The person who updated the form result status';
comment on column ggircs_portal.form_result_status.updated_at is 'The date the form result status was updated';
comment on column ggircs_portal.form_result_status.updated_by is 'The person who updated the form result status';
comment on column ggircs_portal.form_result_status.deleted_at is 'The date the form result status was deleted';
comment on column ggircs_portal.form_result_status.deleted_by is 'The person who deleted the form result status';

commit;
58 changes: 56 additions & 2 deletions schema/revert/tables/form_result_status.sql
Original file line number Diff line number Diff line change
@@ -1,7 +1,61 @@
-- Revert ggircs-portal:tables/form_result_status from pg
-- Deploy ggircs-portal:tables/form_result_status to pg
-- requires: tables/form_result

begin;

drop table ggircs_portal.form_result_status;
create table ggircs_portal.form_result_status (
id integer primary key generated always as identity,
application_id int not null references ggircs_portal.application(id),
form_id int not null,
form_result_status ggircs_portal.ciip_form_result_status,
created_at timestamp with time zone not null default now(),
created_by int references ggircs_portal.ciip_user,
updated_at timestamp with time zone not null default now(),
updated_by int references ggircs_portal.ciip_user,
deleted_at timestamp with time zone,
deleted_by int references ggircs_portal.ciip_user
);

create index ggircs_portal_form_result_status_foreign_key on ggircs_portal.form_result_status(application_id);

create trigger _100_timestamps
before insert or update on ggircs_portal.form_result_status
for each row
execute procedure ggircs_portal_private.update_timestamps();

do
$grant$
begin
-- Grant ciip_administrator permissions
perform ggircs_portal_private.grant_permissions('select', 'form_result_status', 'ciip_administrator');
perform ggircs_portal_private.grant_permissions('insert', 'form_result_status', 'ciip_administrator');

-- Grant ciip_analyst permissions
perform ggircs_portal_private.grant_permissions('select', 'form_result_status', 'ciip_analyst');
perform ggircs_portal_private.grant_permissions('insert', 'form_result_status', 'ciip_analyst');

-- Grant ciip_industry_user permissions
perform ggircs_portal_private.grant_permissions('select', 'form_result_status', 'ciip_industry_user');
perform ggircs_portal_private.grant_permissions('insert', 'form_result_status', 'ciip_industry_user');

-- Grant ciip_guest permissions
-- ?
end
$grant$;

-- Enable row-level security
alter table ggircs_portal.form_result_status enable row level security;

comment on table ggircs_portal.form_result_status is 'The form result status data';
comment on column ggircs_portal.form_result_status.id is 'The id used for reference and join';
comment on column ggircs_portal.form_result_status.application_id is 'The foreign key to application used for reference and join';
comment on column ggircs_portal.form_result_status.form_id is 'The form id (form_json) this status is attached to';
comment on column ggircs_portal.form_result_status.form_result_status is 'The form result status';
comment on column ggircs_portal.form_result_status.created_at is 'The date the form result status was updated';
comment on column ggircs_portal.form_result_status.created_by is 'The person who updated the form result status';
comment on column ggircs_portal.form_result_status.updated_at is 'The date the form result status was updated';
comment on column ggircs_portal.form_result_status.updated_by is 'The person who updated the form result status';
comment on column ggircs_portal.form_result_status.deleted_at is 'The date the form result status was deleted';
comment on column ggircs_portal.form_result_status.deleted_by is 'The person who deleted the form result status';

commit;
7 changes: 7 additions & 0 deletions schema/revert/tables/form_result_status@v1.16.0.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Revert ggircs-portal:tables/form_result_status from pg

begin;

drop table ggircs_portal.form_result_status;

commit;
1 change: 1 addition & 0 deletions schema/sqitch.plan
Original file line number Diff line number Diff line change
Expand Up @@ -255,3 +255,4 @@ mutations/create_application_revision_mutation_chain [mutations/create_applicati
mutations/create_review_comment_mutation_chain [mutations/create_review_comment_mutation_chain@v1.16.0] 2021-03-12T22:59:39Z Dylan Leard <dylan@button.is> # Migration: remove form_result_status inserts
trigger_functions/checksum_form_results [trigger_functions/checksum_form_results@v1.16.0] 2021-03-12T23:02:03Z Dylan Leard <dylan@button.is> # Migration: remove form_result_status insert
policies/form_result_status_policies [policies/form_result_status_policies@v1.16.0] 2021-03-12T23:04:17Z Dylan Leard <dylan@button.is> # Migration: drop form_result_status RLS function
tables/form_result_status [tables/form_result_status@v1.16.0] 2021-03-12T23:10:08Z Dylan Leard <dylan@button.is> # Migration: drop form_result_status table
23 changes: 12 additions & 11 deletions schema/verify/tables/form_result_status.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,19 @@

begin;

select pg_catalog.has_table_privilege('ggircs_portal.form_result_status', 'select');
do $$
begin

-- ciip_administrator Grants
select ggircs_portal_private.verify_grant('select', 'form_result_status', 'ciip_administrator');
select ggircs_portal_private.verify_grant('insert', 'form_result_status', 'ciip_administrator');
if (select exists (
select from information_schema.tables
where table_schema = 'ggircs_portal'
and table_name = 'form_result_status'
)) then
raise exception 'ggircs_portal.form_result_status exists when it should not';
else
perform true;
end if;

-- ciip_analyst Grants
select ggircs_portal_private.verify_grant('select', 'form_result_status', 'ciip_analyst');
select ggircs_portal_private.verify_grant('insert', 'form_result_status', 'ciip_analyst');

-- ciip_industry_user Grants
select ggircs_portal_private.verify_grant('select', 'form_result_status', 'ciip_industry_user');
select ggircs_portal_private.verify_grant('insert', 'form_result_status', 'ciip_industry_user');
end; $$;

rollback;
19 changes: 19 additions & 0 deletions schema/verify/tables/form_result_status@v1.16.0.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
-- Verify ggircs-portal:tables/form_result_status on pg

begin;

select pg_catalog.has_table_privilege('ggircs_portal.form_result_status', 'select');

-- ciip_administrator Grants
select ggircs_portal_private.verify_grant('select', 'form_result_status', 'ciip_administrator');
select ggircs_portal_private.verify_grant('insert', 'form_result_status', 'ciip_administrator');

-- ciip_analyst Grants
select ggircs_portal_private.verify_grant('select', 'form_result_status', 'ciip_analyst');
select ggircs_portal_private.verify_grant('insert', 'form_result_status', 'ciip_analyst');

-- ciip_industry_user Grants
select ggircs_portal_private.verify_grant('select', 'form_result_status', 'ciip_industry_user');
select ggircs_portal_private.verify_grant('insert', 'form_result_status', 'ciip_industry_user');

rollback;

0 comments on commit 1a8406e

Please sign in to comment.