From 438a85fd3a2ea8dd4fa48df5537c1db2c0e90878 Mon Sep 17 00:00:00 2001 From: Masaya Tojo Date: Tue, 28 Feb 2023 22:20:46 +0900 Subject: Add function to delete item. --- deploy/delete_item.sql | 14 ++++++++++++++ deploy/insert_item.sql | 4 ++-- revert/delete_item.sql | 7 +++++++ sqitch.plan | 1 + verify/delete_item.sql | 7 +++++++ verify/insert_item.sql | 2 +- 6 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 deploy/delete_item.sql create mode 100644 revert/delete_item.sql create mode 100644 verify/delete_item.sql diff --git a/deploy/delete_item.sql b/deploy/delete_item.sql new file mode 100644 index 0000000..51dbcf5 --- /dev/null +++ b/deploy/delete_item.sql @@ -0,0 +1,14 @@ +-- Deploy kakeibo:delete_item to pg +-- requires: appschema +-- requires: items + +BEGIN; + +CREATE OR REPLACE FUNCTION kakeibo.delete_item(p_id integer) + RETURNS VOID AS $$ +BEGIN + DELETE FROM kakeibo.items WHERE id = p_id; +END; +$$ LANGUAGE plpgsql SECURITY DEFINER; + +COMMIT; diff --git a/deploy/insert_item.sql b/deploy/insert_item.sql index a0a5b5c..7f62e14 100644 --- a/deploy/insert_item.sql +++ b/deploy/insert_item.sql @@ -4,8 +4,8 @@ BEGIN; -CREATE OR REPLACE FUNCTION kakeibo.insert_transaction( - p_transaction_id INTEER, +CREATE OR REPLACE FUNCTION kakeibo.insert_item( + p_transaction_id INTEGER, p_category TEXT, p_subcategory TEXT, p_amount INTEGER, diff --git a/revert/delete_item.sql b/revert/delete_item.sql new file mode 100644 index 0000000..d5bda39 --- /dev/null +++ b/revert/delete_item.sql @@ -0,0 +1,7 @@ +-- Revert kakeibo:delete_item from pg + +BEGIN; + +DROP FUNCTION kakeibo.delete_item; + +COMMIT; diff --git a/sqitch.plan b/sqitch.plan index ee84944..9247959 100644 --- a/sqitch.plan +++ b/sqitch.plan @@ -9,3 +9,4 @@ insert_transaction [appschema transactions] 2023-02-28T01:06:21Z Masaya Tojo # Create a function to delete a transaction. items [appschema transactions] 2023-02-28T12:08:45Z Masaya Tojo # Add items table for tracking individual products in transaction. insert_item [appschema items] 2023-02-28T13:13:22Z Masaya Tojo # Add function to insert item. +delete_item [appschema items] 2023-02-28T13:13:39Z Masaya Tojo # Add function to delete item. diff --git a/verify/delete_item.sql b/verify/delete_item.sql new file mode 100644 index 0000000..adc3a79 --- /dev/null +++ b/verify/delete_item.sql @@ -0,0 +1,7 @@ +-- Verify kakeibo:delete_item on pg + +BEGIN; + +SELECT has_function_privilege('kakeibo.delete_item(integer)', 'execute'); + +ROLLBACK; diff --git a/verify/insert_item.sql b/verify/insert_item.sql index dac4fba..03b6d05 100644 --- a/verify/insert_item.sql +++ b/verify/insert_item.sql @@ -2,6 +2,6 @@ BEGIN; -SELECT has_function_privilege('kakeibo.insert_item(kakeibo.transaction_type, date, text)', 'execute'); +SELECT has_function_privilege('kakeibo.insert_item(INTEGER, TEXT, TEXT, INTEGER, TEXT)', 'execute'); ROLLBACK; -- cgit v1.2.3