From d035ce3f64734ab2791c64ccff0c5f4e74a4ff30 Mon Sep 17 00:00:00 2001 From: tenzap Date: Tue, 20 Jun 2023 12:35:39 +0200 Subject: [PATCH] add SQL CREATE TABLE queries for PostgreSQL --- src/rest.php | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/src/rest.php b/src/rest.php index d58d7ce1..b4cc7984 100644 --- a/src/rest.php +++ b/src/rest.php @@ -322,6 +322,19 @@ | PRIMARY KEY (`id`) | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | +| For PostgreSQL +| CREATE TABLE keys ( +| id SERIAL, +| user_id INT NOT NULL, +| key VARCHAR(40) NOT NULL, +| level INT NOT NULL, +| ignore_limits SMALLINT NOT NULL DEFAULT '0', +| is_private_key SMALLINT NOT NULL DEFAULT '0', +| ip_addresses TEXT NULL DEFAULT NULL, +| date_created INT NOT NULL, +| PRIMARY KEY (id) +| ) ; +| | */ $config['rest_enable_keys'] = false; @@ -402,6 +415,20 @@ | PRIMARY KEY (`id`) | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | +| For PostgreSQL +| CREATE TABLE logs ( +| id SERIAL, +| uri VARCHAR(255) NOT NULL, +| method VARCHAR(6) NOT NULL, +| params TEXT DEFAULT NULL, +| api_key VARCHAR(40) NOT NULL, +| ip_address VARCHAR(45) NOT NULL, +| time INT NOT NULL, +| rtime DOUBLE PRECISION DEFAULT NULL, +| authorized boolean NOT NULL, +| response_code smallint DEFAULT '0', +| PRIMARY KEY (id) +| ) ; */ $config['rest_enable_logging'] = false; @@ -435,6 +462,31 @@ | PRIMARY KEY (`id`) | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | +| For PostgreSQL +| CREATE TABLE access ( +| id SERIAL, +| key VARCHAR(40) NOT NULL DEFAULT '', +| all_access SMALLINT NOT NULL DEFAULT '0', +| controller VARCHAR(50) NOT NULL DEFAULT '', +| date_created TIMESTAMP(0) DEFAULT NULL, +| date_modified TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, +| PRIMARY KEY (id) +| ) ; +| CREATE OR REPLACE FUNCTION upd_timestamp() RETURNS TRIGGER +| LANGUAGE plpgsql +| AS +| $$ +| BEGIN +| NEW.modified = CURRENT_TIMESTAMP; +| RETURN NEW; +| END; +| $$; +| CREATE TRIGGER trigger_access +| BEFORE UPDATE +| ON access +| FOR EACH ROW +| EXECUTE PROCEDURE upd_timestamp(); +| */ $config['rest_enable_access'] = false; @@ -479,6 +531,16 @@ | PRIMARY KEY (`id`) | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | +| For PostgreSQL +| CREATE TABLE limits ( +| id SERIAL, +| uri VARCHAR(255) NOT NULL, +| count INT NOT NULL, +| hour_started INT NOT NULL, +| api_key VARCHAR(40) NOT NULL, +| PRIMARY KEY (id) +| ) ; +| | To specify the limits within the controller's __construct() method, add per-method | limits with: |