From 28458fd8ca81824eecc842e40d0a4dfecfab3778 Mon Sep 17 00:00:00 2001 From: Charlie Garrett-Jones <32178098+cgarrettjones@users.noreply.github.com> Date: Mon, 19 Apr 2021 16:40:24 -0700 Subject: [PATCH] BHBC-714 Delete a project (#243) * - added procedure api_delete_project * - added procedure api_delete_project * Update database/src/migrations/release.0.11/api_delete_project.sql Co-authored-by: charlie garrett-jones Co-authored-by: Shreyas Devalapurkar --- .../20210225205948_biohub_release_0.11.ts | 2 + .../release.0.11/api_delete_project.sql | 38 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 database/src/migrations/release.0.11/api_delete_project.sql diff --git a/database/src/migrations/20210225205948_biohub_release_0.11.ts b/database/src/migrations/20210225205948_biohub_release_0.11.ts index 70eb03ee52..bccf59f762 100644 --- a/database/src/migrations/20210225205948_biohub_release_0.11.ts +++ b/database/src/migrations/20210225205948_biohub_release_0.11.ts @@ -31,6 +31,7 @@ export async function up(knex: Knex): Promise { const tr_project_funding_source = fs.readFileSync( path.join(__dirname, 'release.0.11', 'tr_project_funding_source.sql') ); + const api_delete_project = fs.readFileSync(path.join(__dirname, 'release.0.11', 'api_delete_project.sql')); const populate_first_nations = fs.readFileSync(path.join(__dirname, 'release.0.11', 'populate_first_nations.sql')); const populate_climate_change_initiatives = fs.readFileSync( @@ -76,6 +77,7 @@ export async function up(knex: Knex): Promise { ${tr_journal_trigger} ${project_journal_triggers} ${tr_project_funding_source} + ${api_delete_project} -- populate look up tables set search_path = biohub; diff --git a/database/src/migrations/release.0.11/api_delete_project.sql b/database/src/migrations/release.0.11/api_delete_project.sql new file mode 100644 index 0000000000..cdf44d24b0 --- /dev/null +++ b/database/src/migrations/release.0.11/api_delete_project.sql @@ -0,0 +1,38 @@ +-- api_delete_project.sql +drop procedure if exists api_delete_project; + +create or replace procedure api_delete_project(__project_id project.id%type) +language plpgsql +security definer +as +$$ +-- ******************************************************************* +-- Procedure: api_delete_project +-- Purpose: deletes a project and dependencies +-- +-- MODIFICATION HISTORY +-- Person Date Comments +-- ---------------- ----------- -------------------------------------- +-- charlie.garrettjones@quartech.com +-- 2021-04-19 initial release +-- ******************************************************************* +declare + +begin + delete from focal_species where p_id = __project_id; + delete from ancillary_species where p_id = __project_id; + delete from stakeholder_partnership where p_id = __project_id; + delete from project_activity where p_id = __project_id; + delete from project_climate_initiative where p_id = __project_id; + delete from project_region where p_id = __project_id; + delete from project_permit where p_id = __project_id; + delete from project_management_actions where p_id = __project_id; + delete from project_funding_source where p_id = __project_id; + delete from project_iucn_action_classification where p_id = __project_id; + delete from project_attachment where p_id = __project_id; + delete from project_first_nation where p_id = __project_id; + delete from project_participation where p_id = __project_id; + delete from project where id = __project_id; + +end; +$$;