From 40c84f86e9d7326bb0020c9210e0689179b1102c Mon Sep 17 00:00:00 2001
From: Masaya Tojo <masaya@tojo.tokyo>
Date: Sun, 12 Mar 2023 16:45:59 +0900
Subject: Add function to add new item.

---
 deploy/insert_item.sql | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 deploy/insert_item.sql

(limited to 'deploy/insert_item.sql')

diff --git a/deploy/insert_item.sql b/deploy/insert_item.sql
new file mode 100644
index 0000000..9f4e050
--- /dev/null
+++ b/deploy/insert_item.sql
@@ -0,0 +1,25 @@
+-- Deploy kakeibo:insert_item to pg
+-- requires: schema
+-- requires: items
+
+BEGIN;
+
+CREATE OR REPLACE FUNCTION kakeibo.insert_item(
+  p_transaction_id INTEGER,
+  p_category TEXT,
+  p_subcategory TEXT,
+  p_amount INTEGER,
+  p_note TEXT
+) RETURNS INTEGER AS $$
+  DECLARE
+    inserted_id INTEGER;
+  BEGIN
+    INSERT INTO kakeibo.items (transaction_id, category, subcategory, amount, note)
+    VALUES (p_transaction_id, p_category, p_subcategory, p_amount, p_note)
+           RETURNING id INTO inserted_id;
+
+    RETURN inserted_id;
+  END;
+$$ LANGUAGE plpgsql SECURITY DEFINER;
+
+COMMIT;
-- 
cgit v1.2.3

