From 42480e6e1c748255fee1103ffb72629f699c0f6c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Kudela?= <kudmich@syncad.com>
Date: Tue, 24 Sep 2024 09:22:22 +0200
Subject: [PATCH] Delete deprecated hivemind_helpers schema and itd associated
 functions

---
 hive/db/schema.py                             |  17 -
 hive/db/sql_scripts/common_sql/helpers.sql    | 664 ------------------
 .../database_api_sql/database_api.sql         | 149 ----
 hive/db/sql_scripts/hive_api_sql/common.sql   |  27 -
 hive/db/sql_scripts/hive_api_sql/notify.sql   | 106 ---
 5 files changed, 963 deletions(-)
 delete mode 100644 hive/db/sql_scripts/common_sql/helpers.sql
 delete mode 100644 hive/db/sql_scripts/database_api_sql/database_api.sql
 delete mode 100644 hive/db/sql_scripts/hive_api_sql/common.sql
 delete mode 100644 hive/db/sql_scripts/hive_api_sql/notify.sql

diff --git a/hive/db/schema.py b/hive/db/schema.py
index 7666c924d..476c54293 100644
--- a/hive/db/schema.py
+++ b/hive/db/schema.py
@@ -528,7 +528,6 @@ def setup(db, admin_db):
 
     # create schema and aux functions
     admin_db.query(f'CREATE SCHEMA IF NOT EXISTS {SCHEMA_NAME} AUTHORIZATION {SCHEMA_OWNER_NAME};')
-    admin_db.query(f'CREATE SCHEMA IF NOT EXISTS hivemind_helpers AUTHORIZATION {SCHEMA_OWNER_NAME};')
     admin_db.query(f'CREATE SCHEMA IF NOT EXISTS hivemind_endpoints AUTHORIZATION {SCHEMA_OWNER_NAME};')
     admin_db.query(f'CREATE SCHEMA IF NOT EXISTS hivemind_postgrest_utilities AUTHORIZATION {SCHEMA_OWNER_NAME};')
 
@@ -551,22 +550,6 @@ def setup(db, admin_db):
 
     context_detach(db=db)
 
-    sqls = [
-        f"DROP TYPE IF EXISTS hivemind_helpers.unit_type CASCADE",
-        f"CREATE TYPE hivemind_helpers.unit_type AS ENUM( 'HBD', 'HIVE', 'VESTS')",
-        f"""
-          CREATE TABLE IF NOT EXISTS hivemind_helpers.nai_map 
-          (
-            name hivemind_helpers.unit_type NOT NULL,
-            nai TEXT NOT NULL,
-            precision INT NOT NULL
-          )    
-        """,
-        f"INSERT INTO hivemind_helpers.nai_map VALUES ('HBD','@@000000013', 3), ('HIVE','@@000000021', 3), ('VESTS','@@000000037', 3)",
-    ]
-    for sql in sqls:
-        db.query(sql)
-
     # default rows
     sqls = [
         f"INSERT INTO {SCHEMA_NAME}.hive_state (last_completed_block_num, db_version) VALUES (1, 0)",
diff --git a/hive/db/sql_scripts/common_sql/helpers.sql b/hive/db/sql_scripts/common_sql/helpers.sql
deleted file mode 100644
index 64fd61574..000000000
--- a/hive/db/sql_scripts/common_sql/helpers.sql
+++ /dev/null
@@ -1,664 +0,0 @@
-DROP FUNCTION IF EXISTS hivemind_helpers.valid_account;
-CREATE OR REPLACE FUNCTION hivemind_helpers.valid_account(  
-  _name TEXT, 
-  allow_empty BOOLEAN DEFAULT FALSE
-)
-  RETURNS TEXT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-DECLARE
-  name_segment TEXT := '[a-z][a-z0-9\-]+[a-z0-9]';
-BEGIN
-  IF _name IS NULL OR _name = '' THEN
-    IF NOT allow_empty THEN
-      RAISE EXCEPTION 'invalid account (not specified)';
-    END IF;
-
-    RETURN _name;
-  END IF;
-
-  IF LENGTH(_name) < 3 OR LENGTH(_name) > 16 THEN
-      RAISE EXCEPTION 'invalid account name length: ''%''', _name;
-  END IF;
-
-  IF SUBSTRING(_name FROM 1 FOR 1) = '@' THEN
-    RAISE EXCEPTION 'invalid account name char ''@''';
-  END IF;
-
-  IF _name ~ ('^'|| name_segment ||'(?:\.'|| name_segment ||')*$') THEN
-    RETURN _name;
-  ELSE
-    RAISE EXCEPTION 'invalid account char';
-  END IF;
-
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.valid_permlink;
-CREATE OR REPLACE FUNCTION hivemind_helpers.valid_permlink(  
-  _permlink TEXT, 
-  allow_empty BOOLEAN DEFAULT FALSE
-)
-  RETURNS TEXT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-BEGIN
-  IF _permlink IS NULL OR _permlink = '' THEN
-    IF NOT allow_empty THEN
-      RAISE EXCEPTION 'permlink cannot be blank';
-    END IF;
-
-    RETURN _permlink;
-  END IF;
-
-  IF LENGTH(_permlink) <= 256 THEN
-    RETURN _permlink;
-  ELSE
-    RAISE EXCEPTION 'invalid permlink length';
-  END IF;
-
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.valid_sort;
-CREATE OR REPLACE FUNCTION hivemind_helpers.valid_sort(  
-  _sort TEXT, 
-  allow_empty BOOLEAN DEFAULT FALSE
-)
-  RETURNS TEXT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-DECLARE
-    valid_sorts TEXT[] := ARRAY['trending', 'promoted', 'hot', 'created', 'payout', 'payout_comments', 'muted'];
-BEGIN
-  IF _sort IS NULL OR _sort = '' THEN
-    IF NOT allow_empty THEN
-      RAISE EXCEPTION 'sort must be specified';
-    END IF;
-
-    RETURN _sort;
-  END IF;
-
-  IF NOT _sort = ANY(valid_sorts) THEN
-    RAISE EXCEPTION 'Invalid sort ''%''', _sort;
-  END IF;
-
-  RETURN _sort;
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.valid_tag;
-CREATE OR REPLACE FUNCTION hivemind_helpers.valid_tag(  
-  _tag TEXT, 
-  allow_empty BOOLEAN DEFAULT FALSE
-)
-  RETURNS TEXT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-BEGIN
-  IF _tag IS NULL OR _tag = '' THEN
-    IF NOT allow_empty THEN
-      RAISE EXCEPTION 'tag was blank';
-    END IF;
-    RETURN _tag;
-  END IF;
-
-  IF NOT _tag ~ '^[a-z0-9-_]+$' THEN
-      RAISE EXCEPTION 'Invalid tag ''%''', _tag;
-  END IF;
-
-  RETURN _tag;
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.valid_number;
-CREATE OR REPLACE FUNCTION hivemind_helpers.valid_number(  
-  _num NUMERIC, 
-  default_num INT, 
-  _name TEXT DEFAULT 'integer value', 
-  lbound INT DEFAULT NULL, 
-  ubound INT DEFAULT NULL
-)
-  RETURNS INT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-DECLARE
-  validated_num INT;
-BEGIN
-  IF _num IS NULL THEN
-    IF default_num IS NULL THEN
-        RAISE EXCEPTION '% must be provided', _name;
-    ELSE
-        RETURN default_num;
-    END IF;
-  END IF;
-
-  validated_num := _num::INT;
-
-/*
-  -- i dont know if its necessary after rewriting
-  BEGIN
-      validated_num := _num::INT;
-  EXCEPTION
-      WHEN OTHERS THEN
-          RAISE EXCEPTION '%', SQLERRM;
-  END;
-*/
-
-  IF lbound IS NOT NULL AND ubound IS NOT NULL THEN
-    IF NOT (lbound <= validated_num AND validated_num <= ubound) THEN
-        RAISE EXCEPTION '% = % outside valid range [%:%]', _name, validated_num, lbound, ubound;
-    END IF;
-  END IF;
-
-  RETURN validated_num;
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.get_hive_accounts_info_view_query_string;
-CREATE OR REPLACE FUNCTION hivemind_helpers.get_hive_accounts_info_view_query_string(
-  _names TEXT[], 
-  lite BOOLEAN DEFAULT FALSE
-)
-  RETURNS SETOF hivemind_app.hive_accounts_info_view
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-BEGIN
-
-IF lite THEN
-  RETURN QUERY (
-  SELECT 
-    ha.id,
-    ha.name,
-    ha.post_count,
-    ha.created_at,
-    NULL::timestamp without time zone as active_at,   
-    ha.reputation,
-    ha.rank,
-    ha.following,
-    ha.followers,
-    ha.lastread_at,
-    ha.posting_json_metadata,
-    ha.json_metadata
-  FROM hivemind_app.hive_accounts_info_view_lite ha
-  WHERE ha.name = ANY(_names)
-  );
-
-ELSE
-  RETURN QUERY (
-  SELECT 
-    ha.id,
-    ha.name,
-    ha.post_count,
-    ha.created_at,
-    ha.active_at,  
-    ha.reputation,
-    ha.rank,
-    ha.following,
-    ha.followers,
-    ha.lastread_at,
-    ha.posting_json_metadata,
-    ha.json_metadata
-  FROM hivemind_app.hive_accounts_info_view ha
-  WHERE ha.name = ANY(_names)
-  );
-
-END IF;
-
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.valid_score;
-CREATE OR REPLACE FUNCTION hivemind_helpers.valid_score(  
-  _score NUMERIC, 
-  ubound INT,
-  default_num INT
-)
-  RETURNS INT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-BEGIN
-  RETURN hivemind_helpers.valid_number(_score, default_num, 'score', 0, ubound);
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.valid_truncate;
-CREATE OR REPLACE FUNCTION hivemind_helpers.valid_truncate(  
-  _truncate_body NUMERIC, 
-  ubound INT,
-  default_num INT
-)
-  RETURNS INT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-BEGIN
-  RETURN hivemind_helpers.valid_number(_truncate_body, 0, 'truncate_body');
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.valid_offset;
-CREATE OR REPLACE FUNCTION hivemind_helpers.valid_offset(  
-  _offset NUMERIC, 
-  ubound INT
-)
-  RETURNS INT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-DECLARE
-  __offset INT := _offset::INT;
-BEGIN
-  IF __offset >= -1 THEN
-    IF ubound IS NOT NULL AND NOT (__offset <= ubound) THEN
-      RAISE EXCEPTION 'offset too large';
-    END IF;
-
-    RETURN __offset;
-  ELSE
-    RAISE EXCEPTION 'offset cannot be negative';
-  END IF;
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.valid_follow_type;
-CREATE OR REPLACE FUNCTION hivemind_helpers.valid_follow_type(_follow_type TEXT)
-  RETURNS INT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-BEGIN
-  CASE
-      WHEN _follow_type = 'blog' THEN
-          RETURN 1;
-      WHEN _follow_type = 'ignore' THEN
-          RETURN 2;
-      ELSE
-          RAISE EXCEPTION 'Unsupported follow type, valid types: blog, ignore';
-  END CASE;
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.valid_date;
-CREATE OR REPLACE FUNCTION hivemind_helpers.valid_date(
-  _date TEXT, 
-  _allow_empty BOOLEAN DEFAULT FALSE
-) 
-  RETURNS void
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-BEGIN
-  IF _date IS NULL OR _date = '' THEN
-    IF NOT _allow_empty THEN
-      RAISE EXCEPTION 'Date is blank';
-    END IF;
-  ELSE
-    BEGIN
-      PERFORM to_timestamp(_date, 'YYYY-MM-DD HH24:MI:SS');
-      RETURN;
-      EXCEPTION WHEN others THEN
-      NULL; -- Suppress the exception, continue to the next format check
-    END;
-
-    BEGIN
-      PERFORM to_timestamp(_date, 'YYYY-MM-DD"T"HH24:MI:SS');
-      RETURN;
-        EXCEPTION WHEN others THEN
-      RAISE EXCEPTION 'Date should be in format Y-m-d H:M:S or Y-m-dTH:M:S';
-    END;
-  END IF;
-END;
-$BODY$
-;
-
---If i see correctly to_nai and parse_amount are used only in case when 'value' is '1.001 HIVE' etc - so i skip the nai parsing.
-DROP FUNCTION IF EXISTS hivemind_helpers.to_nai;
-CREATE OR REPLACE FUNCTION hivemind_helpers.to_nai(_dec_amount NUMERIC, unit hivemind_helpers.unit_type) 
-RETURNS JSONB
-LANGUAGE plpgsql
-STABLE
-AS
-$BODY$
-BEGIN
-
-RETURN (
-WITH calculate_nai_type AS 
-(
-  SELECT ROUND(_dec_amount * (10^(nm.precision))) as amount, nm.nai, nm.precision
-  FROM hivemind_helpers.nai_map nm
-  WHERE nm.name = unit
-
-)
-  SELECT jsonb_build_object(
-    'amount', cnt.amount,
-    'nai', cnt.nai,
-    'precision', cnt.precision)
-  FROM calculate_nai_type cnt);
-
-END;
-$BODY$
-;
-
-DROP TYPE IF EXISTS hivemind_helpers.parse_amount_type CASCADE;
-CREATE TYPE hivemind_helpers.parse_amount_type AS (
-  dec_amount NUMERIC, 
-  unit hivemind_helpers.unit_type
-
-);
-
---SELECT * FROM hivemind_helpers.parse_amount('1.001 HBD')
-DROP FUNCTION IF EXISTS hivemind_helpers.parse_amount;
-CREATE OR REPLACE FUNCTION hivemind_helpers.parse_amount(
-  _value VARCHAR(30)
-) 
-RETURNS hivemind_helpers.parse_amount_type
-LANGUAGE plpgsql
-STABLE
-AS
-$BODY$
-DECLARE
-  unit VARCHAR(5) := split_part(_value, ' ', 2);
-  dec_amount NUMERIC;
-BEGIN
-  IF unit = 'SBD' THEN
-      unit := 'HBD';
-  ELSIF unit = 'STEEM' THEN
-      unit := 'HIVE';
-  END IF;
-  unit := unit::hivemind_helpers.unit_type;
-  dec_amount := split_part(_value, ' ', 1)::NUMERIC;
-
-  RETURN (dec_amount, unit)::hivemind_helpers.parse_amount_type;
-
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.database_post_object;
-CREATE OR REPLACE FUNCTION hivemind_helpers.database_post_object(
-  _row hivemind_app.database_api_post, 
-  _truncate_body INT DEFAULT 0
-)     
-RETURNS JSONB
-LANGUAGE plpgsql
-STABLE
-AS
-$BODY$
-DECLARE
-  post JSONB;
-  curator_payout hivemind_helpers.parse_amount_type := hivemind_helpers.parse_amount(_row.curator_payout_value);
-  max_accepted hivemind_helpers.parse_amount_type := hivemind_helpers.parse_amount(_row.max_accepted_payout);
-BEGIN
-
-  post := jsonb_build_object(
-      'author_rewards', _row.author_rewards,
-      'id', _row.id,
-      'author', _row.author,
-      'permlink', _row.permlink,
-      'category', COALESCE(_row.category, 'undefined'),
-      'title', _row.title,
-      'body', CASE WHEN _truncate_body > 0 THEN LEFT(_row.body, _truncate_body) ELSE _row.body END,
-      'json_metadata', _row.json,
-      'created', hivemind_helpers.json_date(_row.created_at),
-      'last_update', hivemind_helpers.json_date(_row.updated_at),
-      'depth', (_row.depth)::INT,
-      'children', (_row.children)::INT,
-      'last_payout', hivemind_helpers.json_date(_row.last_payout_at),
-      'cashout_time', hivemind_helpers.json_date(_row.cashout_time),
-      'max_cashout_time', hivemind_helpers.json_date(NULL),
-      'curator_payout_value', hivemind_helpers.to_nai(curator_payout.dec_amount, curator_payout.unit),
-      'total_payout_value', hivemind_helpers.to_nai((_row.payout - curator_payout.dec_amount), 'HBD'),
-      'reward_weight', 10000,
-      'root_author', _row.root_author,
-      'root_permlink', _row.root_permlink,
-      'allow_replies', (_row.allow_replies)::BOOLEAN,
-      'allow_votes', (_row.allow_votes)::BOOLEAN,
-      'allow_curation_rewards', (_row.allow_curation_rewards)::BOOLEAN,
-      'parent_author', _row.parent_author,
-      'parent_permlink', _row.parent_permlink_or_category,
-      'beneficiaries', _row.beneficiaries, 
-      'max_accepted_payout', hivemind_helpers.to_nai(max_accepted.dec_amount, max_accepted.unit),
-      'percent_hbd', (_row.percent_hbd)::INT,
-      'net_votes', (_row.net_votes)::INT
-  );
-
-  IF _row.is_paidout::BOOLEAN THEN
-      post := post || jsonb_build_object(
-          'total_vote_weight', 0,
-          'vote_rshares', 0,
-          'net_rshares', 0,
-          'abs_rshares', 0,
-          'children_abs_rshares', 0
-      );
-  ELSE
-      post := post || jsonb_build_object(
-          'total_vote_weight', (_row.total_vote_weight)::BIGINT,
-          'vote_rshares', ((_row.rshares)::BIGINT + (_row.abs_rshares)::BIGINT) / 2,
-          'net_rshares', (_row.rshares)::BIGINT,
-          'abs_rshares', (_row.abs_rshares)::BIGINT,
-          'children_abs_rshares', 0
-      );
-  END IF;
-
-  RETURN post;
-    
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.notify_type;
-CREATE OR REPLACE FUNCTION hivemind_helpers.notify_type(IN _type SMALLINT)
-  RETURNS TEXT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-DECLARE
-BEGIN
-  CASE
-      WHEN _type = 1 THEN
-          RETURN 'new_community';
-      WHEN _type = 2 THEN
-          RETURN 'set_role';
-      WHEN _type = 3 THEN
-          RETURN 'set_props';
-      WHEN _type = 4 THEN
-          RETURN 'set_label';
-      WHEN _type = 5 THEN
-          RETURN 'mute_post';
-      WHEN _type = 6 THEN
-          RETURN 'unmute_post';
-      WHEN _type = 7 THEN
-          RETURN 'pin_post';
-      WHEN _type = 8 THEN
-          RETURN 'unpin_post';
-      WHEN _type = 9 THEN
-          RETURN 'flag_post';
-      WHEN _type = 10 THEN
-          RETURN 'error';
-      WHEN _type = 11 THEN
-          RETURN 'subscribe';
-      WHEN _type = 12 THEN
-          RETURN 'reply';
-      WHEN _type = 13 THEN
-          RETURN 'reply_comment';
-      WHEN _type = 14 THEN
-          RETURN 'reblog';
-      WHEN _type = 15 THEN
-          RETURN 'follow';
-      WHEN _type = 16 THEN
-          RETURN 'mention';
-      WHEN _type = 17 THEN
-          RETURN 'vote';
-      ELSE
-  END CASE;
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.render_msg;
-CREATE OR REPLACE FUNCTION hivemind_helpers.render_msg(IN _row hivemind_app.notification)
-  RETURNS TEXT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-DECLARE
-BEGIN
-  CASE
-      WHEN _row.type_id = 1 THEN
-          RETURN format('%s was created',
-           '@' || _row.dst);
-      WHEN _row.type_id = 2 THEN
-          RETURN format('%s set %s %s',
-           '@' || _row.src, 
-           '@' || _row.dst, 
-           (CASE WHEN _row.payload IS NULL THEN 'null' ELSE _row.payload END));
-      WHEN _row.type_id = 3 THEN
-          RETURN format('%s set properties %s',
-           '@' || _row.src, 
-           (CASE WHEN _row.payload IS NULL THEN 'null' ELSE _row.payload END));
-      WHEN _row.type_id = 4 THEN
-          RETURN format('%s label %s %s',
-           '@' || _row.src, 
-           '@' || _row.dst, 
-           (CASE WHEN _row.payload IS NULL THEN 'null' ELSE _row.payload END));
-      WHEN _row.type_id = 5 THEN
-          RETURN format('%s mute %s - %s',
-           '@' || _row.src, 
-           '@' || _row.author || '/' || _row.permlink, 
-           (CASE WHEN _row.payload IS NULL THEN 'null' ELSE _row.payload END));
-      WHEN _row.type_id = 6 THEN
-          RETURN format('%s unmute %s - %s',
-           '@' || _row.src, 
-           '@' || _row.author || '/' || _row.permlink, 
-           (CASE WHEN _row.payload IS NULL THEN 'null' ELSE _row.payload END));
-      WHEN _row.type_id = 7 THEN
-          RETURN format('%s pin %s',
-           '@' || _row.src, 
-           '@' || _row.author || '/' || _row.permlink);
-      WHEN _row.type_id = 8 THEN
-          RETURN format('%s unpin %s',
-           '@' || _row.src, 
-           '@' || _row.author || '/' || _row.permlink);
-      WHEN _row.type_id = 9 THEN
-          RETURN format('%s flag %s - %s',
-           '@' || _row.src, 
-           '@' || _row.author || '/' || _row.permlink, 
-           (CASE WHEN _row.payload IS NULL THEN 'null' ELSE _row.payload END));
-      WHEN _row.type_id = 10 THEN
-          RETURN format('error: %s',
-           (CASE WHEN _row.payload IS NULL THEN 'null' ELSE _row.payload END));
-      WHEN _row.type_id = 11 THEN
-          RETURN format('%s subscribed to %s',
-           '@' || _row.src, 
-           _row.community_title);
-      WHEN _row.type_id = 12 THEN
-          RETURN format('%s replied to your post',
-           '@' || _row.src);
-      WHEN _row.type_id = 13 THEN
-          RETURN format('%s replied to your comment',
-           '@' || _row.src);
-      WHEN _row.type_id = 14 THEN
-          RETURN format('%s reblogged your post',
-           '@' || _row.src);
-      WHEN _row.type_id = 15 THEN
-          RETURN format('%s followed you',
-           '@' || _row.src);
-      WHEN _row.type_id = 16 THEN
-          RETURN format('%s mentioned you and %s others',
-           '@' || _row.src, 
-           _row.number_of_mentions - 1);
-      WHEN _row.type_id = 17 THEN
-          RETURN format('%s voted on your post %s',
-           '@' || _row.src, 
-           (CASE WHEN _row.payload IS NULL THEN 'null' ELSE _row.payload END));
-      ELSE
-  END CASE;
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.render_url;
-CREATE OR REPLACE FUNCTION hivemind_helpers.render_url(IN _row hivemind_app.notification)
-  RETURNS TEXT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-DECLARE
-BEGIN
-  IF _row.permlink IS NOT NULL AND _row.permlink::TEXT != '' THEN
-    RETURN '@' || _row.author || '/' || _row.permlink;
-  END IF;
-  
-  IF _row.community IS NOT NULL AND _row.community::TEXT != '' THEN
-    RETURN 'trending/' || _row.community;
-  END IF;
-  
-  IF _row.src IS NOT NULL AND _row.src::TEXT != '' THEN
-    RETURN '@' || _row.src;
-  END IF;
-
-  IF _row.dst IS NOT NULL AND _row.dst::TEXT != '' THEN
-    RETURN '@' || _row.dst;
-  END IF;
-
-  RETURN NULL::TEXT;
-END;
-$BODY$
-;
-
-DROP FUNCTION IF EXISTS hivemind_helpers.parse_argument;
-CREATE FUNCTION hivemind_helpers.parse_argument(_params JSON, _json_type TEXT, _arg_name TEXT, _arg_number INT, _is_bool BOOLEAN = FALSE)
-RETURNS TEXT
-LANGUAGE 'plpgsql'
-AS
-$$
-DECLARE
-  __param TEXT;
-BEGIN
-  SELECT CASE WHEN _json_type = 'object' THEN
-    _params->>_arg_name
-  ELSE
-    _params->>_arg_number
-  END INTO __param;
-
-  -- TODO: this is done to replicate behaviour of HAfAH python, might remove
-  IF _is_bool IS TRUE AND __param ~ '([A-Z].+)' THEN
-    RAISE invalid_text_representation;
-  ELSE
-    RETURN __param;
-  END IF;
-END
-$$
-;
diff --git a/hive/db/sql_scripts/database_api_sql/database_api.sql b/hive/db/sql_scripts/database_api_sql/database_api.sql
deleted file mode 100644
index ca46729ff..000000000
--- a/hive/db/sql_scripts/database_api_sql/database_api.sql
+++ /dev/null
@@ -1,149 +0,0 @@
--- database_api work in progress, started doing hive_api - list_comments probably soon deprecated due to removal of unused api calls
-CREATE OR REPLACE FUNCTION hivemind_helpers.list_comments(
-  IN _start TEXT[],
-  IN _limit INT,
-  IN _order TEXT
-)
-    RETURNS JSONB
-    LANGUAGE plpgsql
-    STABLE
-AS
-$BODY$
-DECLARE
-  _supported_order_list TEXT[] = ARRAY['by_cashout_time','by_permlink','by_root','by_parent','by_last_update', 'by_author_last_update'];
-  __limit INT := hivemind_helpers.valid_limit(_limit,1000,1000);
-
-  _valid_time timestamp without time zone;
-  _author TEXT;
-  _permlink TEXT;
-  _start_post_author TEXT;
-  _start_post_permlink TEXT;
-BEGIN
-IF _order = 'by_cashout_time' THEN
-  ASSERT array_length(_start,1) = 3, 'Expecting three arguments in `_start` array: cashout time, optional page _start author and permlink';
-  PERFORM hivemind_helpers.valid_date(_start[1]);
-
-  IF SUBSTRING(_start[1] FROM 1 FOR 4) = '1969' THEN
-    _valid_time = 'infinity'::timestamp without time zone;
-  ELSE
-    _valid_time = _start[1]::timestamp without time zone;
-  END IF;
-
-  _author = hivemind_helpers.valid_account(_start[2], True);
-  _permlink = hivemind_helpers.valid_permlink(_start[3], True);
-
-  RETURN (
-    SELECT json_build_object('comments',
-      (SELECT (array_agg(row)) FROM (
-        SELECT (SELECT * FROM hivemind_helpers.database_post_object((lc.*)::hivemind_app.database_api_post)) FROM hivemind_app.list_comments_by_cashout_time(_valid_time, _author, _permlink, __limit) lc
-     ) row)));
-ELSIF _order = 'by_permlink' THEN
-  ASSERT array_length(_start,1) = 2, 'Expecting two arguments in `start` array: author and permlink';
-
-  _author = _start[1];
-  _permlink = _start[2];
-
-  RETURN (
-    SELECT json_build_object('comments',
-      (SELECT (array_agg(row)) FROM (
-        WITH comments AS
-        (
-          SELECT (lc.*)::hivemind_app.database_api_post AS database_api_post FROM hivemind_app.list_comments_by_permlink(_author, _permlink, __limit) lc
-        )
-          SELECT hivemind_helpers.database_post_object(database_api_post) FROM comments
-     ) row)));
-ELSIF _order = 'by_root' THEN
-  ASSERT array_length(_start,1) = 4, 'Expecting 4 arguments in `start` array: discussion root author and permlink, optional page _start author and permlink';
-  _author = hivemind_helpers.valid_account(_start[1]);
-  _permlink = hivemind_helpers.valid_permlink(_start[2]);
-  _start_post_author = hivemind_helpers.valid_account(_start[3], True);
-  _start_post_permlink = hivemind_helpers.valid_permlink(_start[4], True);
-  RETURN (
-    SELECT json_build_object('comments',
-      (SELECT (array_agg(row)) FROM (
-        WITH comments AS
-        (
-          SELECT (lc.*)::hivemind_app.database_api_post AS database_api_post FROM hivemind_app.list_comments_by_root(_author, _permlink, _start_post_author, _start_post_permlink, __limit) lc
-        )
-          SELECT * FROM comments c,
-          LATERAL hivemind_helpers.database_post_object(c.database_api_post) lc
-     ) row)));
-ELSIF _order = 'by_parent' THEN
-  ASSERT array_length(_start,1) = 4, 'Expecting 4 arguments in `start` array: parent post author and permlink, optional page _start author and permlink';
-  _author = hivemind_helpers.valid_account(_start[1]);
-  _permlink = hivemind_helpers.valid_permlink(_start[2]);
-  _start_post_author = hivemind_helpers.valid_account(_start[3], True);
-  _start_post_permlink = hivemind_helpers.valid_permlink(_start[4], True);
-  RETURN (
-    SELECT json_build_object('comments',
-      (SELECT (array_agg(row)) FROM (
-        WITH comments AS
-        (
-          SELECT (lc.*)::hivemind_app.database_api_post AS database_api_post FROM hivemind_app.list_comments_by_parent(_author, _permlink, _start_post_author, _start_post_permlink, __limit) lc
-        )
-          SELECT * FROM comments c,
-          LATERAL hivemind_helpers.database_post_object(c.database_api_post) lc
-     ) row)));
-ELSIF _order = 'by_last_update' THEN
-  ASSERT array_length(_start,1) = 4, 'Expecting 4 arguments in `start` array: parent author, update time, optional page _start author and permlink';
-  _author = hivemind_helpers.valid_account(_start[1]);
-  PERFORM hivemind_helpers.valid_date(_start[2]);
-  _valid_time = _start[2]::timestamp without time zone;
-  _start_post_author = hivemind_helpers.valid_account(_start[3], True);
-  _start_post_permlink = hivemind_helpers.valid_permlink(_start[4], True);
-  RETURN (
-    SELECT json_build_object('comments',
-      (SELECT (array_agg(row)) FROM (
-        WITH comments AS
-        (
-          SELECT (lc.*)::hivemind_app.database_api_post AS database_api_post FROM hivemind_app.list_comments_by_last_update(_author, _valid_time, _start_post_author, _start_post_permlink, __limit) lc
-        )
-          SELECT hivemind_helpers.database_post_object(database_api_post) FROM comments
-     ) row)));
-ELSIF _order = 'by_author_last_update' THEN
-  ASSERT array_length(_start,1) = 4, 'Expecting 4 arguments in `start` array: author, update time, optional page _start author and permlink';
-  _author = hivemind_helpers.valid_account(_start[1]);
-  PERFORM hivemind_helpers.valid_date(_start[2]);
-  _valid_time = _start[2]::timestamp without time zone;
-  _start_post_author = hivemind_helpers.valid_account(_start[3], True);
-  _start_post_permlink = hivemind_helpers.valid_permlink(_start[4], True);
-  RETURN (
-    SELECT json_build_object('comments',
-      (SELECT (array_agg(row)) FROM (
-        WITH comments AS
-        (
-          SELECT (lc.*)::hivemind_app.database_api_post AS database_api_post FROM hivemind_app.list_comments_by_author_last_update(_author, _valid_time, _start_post_author, _start_post_permlink, __limit) lc
-        )
-          SELECT hivemind_helpers.database_post_object(database_api_post) FROM comments
-     ) row)));
-ELSE
-  RAISE EXCEPTION 'Unsupported order, valid orders: `%`', _supported_order_list;
-END IF;
-
-END;
-$BODY$
-;
-
-/*
-  SELECT * FROM comments c,
-  LATERAL hivemind_helpers.database_post_object(c.database_api_post) lc
-
-  doesnt help - i cant get rid of object in object 
-*/
-
-
-/*
-
-curl -s --data '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["1970-01-01T00:00:00","",""], "limit":10, "order":"by_cashout_time"}, "id":1}' https://api.hive.blog
-
-curl -s --data '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["",""], "limit":10, "order":"by_permlink"}, "id":1}' https://api.hive.blog
-
-curl -s --data '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["hiveio","announcing-the-launch-of-hive-blockchain","",""], "limit":10, "order":"by_root"}, "id":1}' https://api.hive.blog
-
-curl -s --data '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["hiveio","announcing-the-launch-of-hive-blockchain","",""], "limit":10, "order":"by_parent"}, "id":1}' https://api.hive.blog
-
-curl -s --data '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["hiveio","1970-01-01T00:00:00","",""], "limit":10, "order":"by_last_update"}, "id":1}' https://api.hive.blog
-
-curl -s --data '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["hiveio","1970-01-01T00:00:00","",""], "limit":10, "order":"by_author_last_update"}, "id":1}' https://api.hive.blog
-
-*/
diff --git a/hive/db/sql_scripts/hive_api_sql/common.sql b/hive/db/sql_scripts/hive_api_sql/common.sql
deleted file mode 100644
index 76fbbe69f..000000000
--- a/hive/db/sql_scripts/hive_api_sql/common.sql
+++ /dev/null
@@ -1,27 +0,0 @@
-DROP FUNCTION IF EXISTS hivemind_helpers.get_community_id;
-CREATE OR REPLACE FUNCTION hivemind_helpers.get_community_id(IN name TEXT)
-  RETURNS INT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-BEGIN
-  RETURN hivemind_app.find_community_id(name, TRUE);
-END;
-$BODY$
-;
-
---SELECT * FROM hivemind_helpers.get_account_id('blocktrades') --HAF 440 Hivemind 441
---SELECT * FROM hivemind_helpers.get_account_id('gtg') --HAF 14007 Hivemind 14008
-DROP FUNCTION IF EXISTS hivemind_helpers.get_account_id;
-CREATE OR REPLACE FUNCTION hivemind_helpers.get_account_id(IN name TEXT)
-  RETURNS INT
-  LANGUAGE plpgsql
-  STABLE
-AS
-$BODY$
-BEGIN
-  RETURN hivemind_app.find_account_id(name, TRUE);
-END;
-$BODY$
-;
diff --git a/hive/db/sql_scripts/hive_api_sql/notify.sql b/hive/db/sql_scripts/hive_api_sql/notify.sql
deleted file mode 100644
index 386d507ff..000000000
--- a/hive/db/sql_scripts/hive_api_sql/notify.sql
+++ /dev/null
@@ -1,106 +0,0 @@
-DROP TYPE IF EXISTS hivemind_helpers.unread_notifications_type CASCADE;
-CREATE TYPE hivemind_helpers.unread_notifications_type AS (
-  lastread_at timestamp without time zone, 
-  unread INT
-);
-
---SELECT * FROM hivemind_helpers.unread_notifications('gtg')
-DROP FUNCTION IF EXISTS hivemind_helpers.unread_notifications;
-CREATE OR REPLACE FUNCTION hivemind_helpers.unread_notifications(
-  IN account TEXT,
-  IN min_score INT DEFAULT 25
-)
-    RETURNS hivemind_helpers.unread_notifications_type
-    LANGUAGE plpgsql
-    STABLE
-AS
-$BODY$
-DECLARE
-  _author TEXT = hivemind_helpers.valid_account(account);
-  _min_score SMALLINT = hivemind_helpers.valid_score(min_score, 100, 25)::SMALLINT;
-BEGIN
-  RETURN (lastread_at, unread)::hivemind_helpers.unread_notifications_type
-  FROM hivemind_app.get_number_of_unread_notifications(_author, _min_score);
-END;
-$BODY$
-;
-
-DROP TYPE IF EXISTS hivemind_helpers.account_notifications_type CASCADE;
-CREATE TYPE hivemind_helpers.account_notifications_type AS (
-  date TEXT, 
-  id BIGINT, 
-  msg TEXT, 
-  score SMALLINT, 
-  type TEXT, 
-  url TEXT
-);
-
---SELECT * FROM hivemind_helpers.account_notifications('blocktrades')
-DROP FUNCTION IF EXISTS hivemind_helpers.account_notifications;
-CREATE OR REPLACE FUNCTION hivemind_helpers.account_notifications(
-  IN account TEXT,
-  IN min_score INT DEFAULT 25,
-  IN last_id BIGINT DEFAULT NULL,
-  IN "limit" INT DEFAULT 100
-)
-    RETURNS SETOF hivemind_helpers.account_notifications_type
-    LANGUAGE plpgsql
-    STABLE
-AS
-$BODY$
-DECLARE
-  _author TEXT = hivemind_helpers.valid_account(account);
-  _min_score SMALLINT = hivemind_helpers.valid_score(min_score, 100, 25)::SMALLINT;
-  _last_id BIGINT = hivemind_helpers.valid_number(last_id, 0, 'last_id')::BIGINT;
-  __limit SMALLINT = hivemind_helpers.valid_limit("limit", 100, 100)::SMALLINT;
-BEGIN
-  RETURN QUERY (
-    SELECT 
-      hivemind_helpers.json_date(an.created_at::TIMESTAMPTZ),
-      an.id,
-      hivemind_helpers.render_msg((an.*)::hivemind_app.notification),
-      an.score,
-      hivemind_helpers.notify_type(an.type_id),
-      hivemind_helpers.render_url((an.*)::hivemind_app.notification)
-    FROM hivemind_app.account_notifications(_author, _min_score, _last_id, __limit) an
-);
-
-END;
-$BODY$
-;
-
---SELECT * FROM hivemind_helpers.post_notifications('blocktrades','2nd-update-of-2024-releasing-the-new-haf-based-stack-for-hive-api-nodes')
-DROP FUNCTION IF EXISTS hivemind_helpers.post_notifications;
-CREATE OR REPLACE FUNCTION hivemind_helpers.post_notifications(
-  IN author TEXT,
-  IN permlink TEXT,
-  IN min_score INT DEFAULT 25,
-  IN last_id BIGINT DEFAULT NULL,
-  IN "limit" INT DEFAULT 100
-)
-    RETURNS SETOF hivemind_helpers.account_notifications_type
-    LANGUAGE plpgsql
-    STABLE
-AS
-$BODY$
-DECLARE
-  _author TEXT = hivemind_helpers.valid_account(author);
-  _permlink TEXT = hivemind_helpers.valid_permlink(permlink);
-  _min_score SMALLINT = hivemind_helpers.valid_score(min_score, 100, 25)::SMALLINT;
-  _last_id BIGINT = hivemind_helpers.valid_number(last_id, 0, 'last_id')::BIGINT;
-  __limit SMALLINT = hivemind_helpers.valid_limit("limit", 100, 100)::SMALLINT;
-BEGIN
-  RETURN QUERY (
-    SELECT 
-      an.id,
-      hivemind_helpers.notify_type(an.type_id),
-      an.score,
-      hivemind_helpers.json_date(an.created_at::TIMESTAMPTZ),
-      hivemind_helpers.render_msg((an.*)::hivemind_app.notification),
-      hivemind_helpers.render_url((an.*)::hivemind_app.notification)
-    FROM hivemind_app.post_notifications(_author, _permlink, _min_score, _last_id, __limit) an
-);
-
-END;
-$BODY$
-;
-- 
GitLab