aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasaya Tojo <masaya@tojo.tokyo>2023-02-28 22:20:46 +0900
committerMasaya Tojo <masaya@tojo.tokyo>2023-03-02 09:22:36 +0900
commit438a85fd3a2ea8dd4fa48df5537c1db2c0e90878 (patch)
tree16fe9f543dc45be32c040c4183300273fde6ba45
parent58c00ca515142d27e3fb324539dedd75b8740bcf (diff)
Add function to delete item.
-rw-r--r--deploy/delete_item.sql14
-rw-r--r--deploy/insert_item.sql4
-rw-r--r--revert/delete_item.sql7
-rw-r--r--sqitch.plan1
-rw-r--r--verify/delete_item.sql7
-rw-r--r--verify/insert_item.sql2
6 files changed, 32 insertions, 3 deletions
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 <ma
delete_transaction [transactions appschema] 2023-02-28T12:00:07Z Masaya Tojo <masaya@tojo.tokyo> # Create a function to delete a transaction.
items [appschema transactions] 2023-02-28T12:08:45Z Masaya Tojo <masaya@tojo.tokyo> # Add items table for tracking individual products in transaction.
insert_item [appschema items] 2023-02-28T13:13:22Z Masaya Tojo <masaya@tojo.tokyo> # Add function to insert item.
+delete_item [appschema items] 2023-02-28T13:13:39Z Masaya Tojo <masaya@tojo.tokyo> # 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;