Skip to content

Commit

Permalink
feat: add custom upsert mutation
Browse files Browse the repository at this point in the history
  • Loading branch information
dleard committed Mar 22, 2021
1 parent 16a6c9a commit ad267ad
Show file tree
Hide file tree
Showing 7 changed files with 38 additions and 0 deletions.
22 changes: 22 additions & 0 deletions schema/deploy/mutations/create_product_naics_mutation.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
-- Deploy ggircs-portal:mutations/create_product_naics_mutation to pg
-- requires: tables/product_naics

begin;

create or replace function ggircs_portal.create_product_naics_mutation(
product_id_input int,
naics_id_input int,
is_mandatory_input boolean
) returns void as $function$

-- Reset deleted at/by and update description on conflict
insert into ggircs_portal.product_naics(product_id, naics_id, is_mandatory)
values (product_id_input, naics_id_input, is_mandatory_input)
on conflict(product_id, naics_id) do update set is_mandatory=is_mandatory_input, deleted_at=null, deleted_by=null;

$function$ language sql volatile;

grant execute on function ggircs_portal.create_product_naics_mutation to ciip_administrator;
comment on function ggircs_portal.create_product_naics_mutation is 'This custom create mutation does an upsert on conflict of the product_id & naics_id columns, updating the is_mandatory column & setting the deleted at/by columns to null';

commit;
File renamed without changes.
7 changes: 7 additions & 0 deletions schema/revert/mutations/create_product_naics_mutation.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Revert ggircs-portal:mutations/create_product_naics_mutation from pg

BEGIN;

-- XXX Add DDLs here.

COMMIT;
File renamed without changes.
2 changes: 2 additions & 0 deletions schema/sqitch.plan
Original file line number Diff line number Diff line change
Expand Up @@ -266,3 +266,5 @@ computed_columns/application_revision_application_revision_status [computed_colu
trigger_functions/immutable_form_result [trigger_functions/immutable_form_result@v1.16.0] 2021-03-19T16:35:40Z Dylan Leard <dylan@button.is> # Migration: order by id rather than created_at
computed_columns/application_revision_is_immutable [computed_columns/application_revision_is_immutable@v1.16.0] 2021-03-19T16:58:18Z Dylan Leard <dylan@button.is> # Migration: fix comment copy paste error
tables/product-naics [tables/naics tables/product] 2021-03-19T20:00:08Z Dylan Leard <dylan@button.is> # Table contains product-naics relationships
tables/product_naics [tables/naics tables/product] 2021-03-19T20:00:08Z Dylan Leard <dylan@button.is> # Table contains product-naics relationships
mutations/create_product_naics_mutation [tables/product_naics] 2021-03-19T20:11:08Z Dylan Leard <dylan@button.is> # Custom create mutation upserts on conflict (product_id, naics_id)
7 changes: 7 additions & 0 deletions schema/verify/mutations/create_product_naics_mutation.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Verify ggircs-portal:mutations/create_product_naics_mutation on pg

BEGIN;

-- XXX Add verifications here.

ROLLBACK;
File renamed without changes.

0 comments on commit ad267ad

Please sign in to comment.