diff options
author | Freya Murphy <freya@freyacat.org> | 2024-04-01 11:09:25 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2024-04-01 11:09:25 -0400 |
commit | 3a82baec9d793edf81ac2b151b0f4d4159641375 (patch) | |
tree | f9d50c296b078ac48c2a2391c172c3ccf37edb3f /db/rest/util | |
parent | refactor asset dir, refactor oberver in lib (diff) | |
download | xssbook2-3a82baec9d793edf81ac2b151b0f4d4159641375.tar.gz xssbook2-3a82baec9d793edf81ac2b151b0f4d4159641375.tar.bz2 xssbook2-3a82baec9d793edf81ac2b151b0f4d4159641375.zip |
login and register, liking on homepage
Diffstat (limited to 'db/rest/util')
-rw-r--r-- | db/rest/util/_api_get_user_id.sql | 11 | ||||
-rw-r--r-- | db/rest/util/_api_raise.sql | 50 | ||||
-rw-r--r-- | db/rest/util/_api_raise_deny.sql | 16 | ||||
-rw-r--r-- | db/rest/util/_api_raise_null.sql | 18 | ||||
-rw-r--r-- | db/rest/util/_api_raise_unique.sql | 18 | ||||
-rw-r--r-- | db/rest/util/_api_serve_media.sql | 41 | ||||
-rw-r--r-- | db/rest/util/_api_trim.sql | 25 | ||||
-rw-r--r-- | db/rest/util/_api_validate_text.sql | 53 |
8 files changed, 0 insertions, 232 deletions
diff --git a/db/rest/util/_api_get_user_id.sql b/db/rest/util/_api_get_user_id.sql deleted file mode 100644 index 23eb160..0000000 --- a/db/rest/util/_api_get_user_id.sql +++ /dev/null @@ -1,11 +0,0 @@ -CREATE FUNCTION _api.get_user_id() -RETURNS INTEGER -LANGUAGE plpgsql VOLATILE -AS $BODY$ -BEGIN - RETURN CURRENT_SETTING( - 'request.jwt.claims', - TRUE - )::JSON->>'user_id'; -END -$BODY$; diff --git a/db/rest/util/_api_raise.sql b/db/rest/util/_api_raise.sql deleted file mode 100644 index 5c740c6..0000000 --- a/db/rest/util/_api_raise.sql +++ /dev/null @@ -1,50 +0,0 @@ -CREATE TABLE _api.err_map ( - err INTEGER, - pg_err TEXT -); - -ALTER TABLE _api.err_map OWNER TO xssbook; - -ALTER TABLE ONLY _api.err_map - ADD CONSTRAINT err_map_pkey PRIMARY KEY (err); - -INSERT INTO _api.err_map (err, pg_err) -VALUES - (400, 'P0001'), - (401, '42501'), - (403, '42501'), - (404, '42883'), - (409, '23505'), - (500, 'XX001'); - -CREATE FUNCTION _api.raise( - _msg TEXT DEFAULT '', - _detail TEXT DEFAULT '', - _hint TEXT DEFAULT '', - _err INTEGER DEFAULT 400 -) -RETURNS BOOLEAN -LANGUAGE plpgsql VOLATILE -AS $BODY$ -DECLARE - _pg_err TEXT; -BEGIN - - SELECT pg_err INTO _pg_err - FROM _api.err_map - WHERE err = _err; - - RAISE EXCEPTION USING - MESSAGE := _msg, - DETAIL := _detail, - HINT := _hint, - ERRCODE := _pg_err; - - RETURN FALSE; -END -$BODY$; - -GRANT SELECT ON TABLE _api.err_map - TO rest_anon, rest_user; -GRANT EXECUTE ON FUNCTION _api.raise(TEXT, TEXT, TEXT, INTEGER) - TO rest_anon, rest_user; diff --git a/db/rest/util/_api_raise_deny.sql b/db/rest/util/_api_raise_deny.sql deleted file mode 100644 index 17406b7..0000000 --- a/db/rest/util/_api_raise_deny.sql +++ /dev/null @@ -1,16 +0,0 @@ -CREATE FUNCTION _api.raise_deny() -RETURNS BOOLEAN -LANGUAGE plpgsql VOLATILE -AS $BODY$ -BEGIN - PERFORM _api.raise( - _msg => 'api_denied', - _err => 403 - ); - - RETURN TRUE; -END -$BODY$; - -GRANT EXECUTE ON FUNCTION _api.raise_null(TEXT) - TO rest_anon, rest_user; diff --git a/db/rest/util/_api_raise_null.sql b/db/rest/util/_api_raise_null.sql deleted file mode 100644 index be6ee29..0000000 --- a/db/rest/util/_api_raise_null.sql +++ /dev/null @@ -1,18 +0,0 @@ -CREATE FUNCTION _api.raise_null( - _column TEXT DEFAULT '' -) -RETURNS BOOLEAN -LANGUAGE plpgsql VOLATILE -AS $BODY$ -BEGIN - PERFORM _api.raise( - _msg => 'api_null_value', - _detail => _column - ); - - RETURN TRUE; -END -$BODY$; - -GRANT EXECUTE ON FUNCTION _api.raise_null(TEXT) - TO rest_anon, rest_user; diff --git a/db/rest/util/_api_raise_unique.sql b/db/rest/util/_api_raise_unique.sql deleted file mode 100644 index a18d960..0000000 --- a/db/rest/util/_api_raise_unique.sql +++ /dev/null @@ -1,18 +0,0 @@ -CREATE FUNCTION _api.raise_unique( - _column TEXT DEFAULT '' -) -RETURNS BOOLEAN -LANGUAGE plpgsql VOLATILE -AS $BODY$ -BEGIN - PERFORM _api.raise( - _msg => 'api_unique_value', - _detail => _column - ); - - RETURN TRUE; -END -$BODY$; - -GRANT EXECUTE ON FUNCTION _api.raise_unique(TEXT) - TO rest_anon, rest_user; diff --git a/db/rest/util/_api_serve_media.sql b/db/rest/util/_api_serve_media.sql deleted file mode 100644 index 8b0f0b8..0000000 --- a/db/rest/util/_api_serve_media.sql +++ /dev/null @@ -1,41 +0,0 @@ -CREATE FUNCTION _api.serve_media( - _name TEXT -) -RETURNS sys."*/*" -LANGUAGE plpgsql VOLATILE -AS $BODY$ -DECLARE - _headers TEXT; - _data BYTEA; -BEGIN - - SELECT FORMAT( - '[{"Content-Type": "%s"},' - '{"Content-Disposition": "inline; filename=\"%s\""},' - '{"Cache-Control": "max-age=259200"}]' - , m.type, m.name) - FROM admin.media m - WHERE m.name = _name INTO _headers; - - PERFORM SET_CONFIG('response.headers', _headers, true); - - SELECT m.content - FROM admin.media m - WHERE m.name = _name - INTO _data; - - IF FOUND THEN - RETURN(_data); - ELSE - PERFORM _api.raise( - _msg => 'api_not_found', - _err => 404 - ); - END IF; -END -$BODY$; - -GRANT EXECUTE ON FUNCTION _api.serve_media(TEXT) - TO rest_anon, rest_user; -GRANT SELECT ON TABLE admin.media - TO rest_anon, rest_user; diff --git a/db/rest/util/_api_trim.sql b/db/rest/util/_api_trim.sql deleted file mode 100644 index c972282..0000000 --- a/db/rest/util/_api_trim.sql +++ /dev/null @@ -1,25 +0,0 @@ -CREATE FUNCTION _api.trim( - _text TEXT -) -RETURNS TEXT -LANGUAGE plpgsql VOLATILE -AS $BODY$ -DECLARE - _new TEXT; -BEGIN - - IF _text IS NULL THEN - RETURN NULL; - END IF; - - _new = _text; - _new = TRIM(_new); - _new = REGEXP_REPLACE(_new, '^(?: |\r|\n)*', ''); - _new = REGEXP_REPLACE(_new, '(?: |\r|\n)*$', ''); - - RETURN _new; -END -$BODY$; - -GRANT EXECUTE ON FUNCTION _api.trim(TEXT) - TO rest_anon, rest_user; diff --git a/db/rest/util/_api_validate_text.sql b/db/rest/util/_api_validate_text.sql deleted file mode 100644 index ff3a227..0000000 --- a/db/rest/util/_api_validate_text.sql +++ /dev/null @@ -1,53 +0,0 @@ -CREATE FUNCTION _api.validate_text( - _column TEXT DEFAULT '', - _text TEXT DEFAULT NULL, - _min INTEGER DEFAULT NULL, - _max INTEGER DEFAULT NULL, - _nullable BOOLEAN DEFAULT FALSE -) -RETURNS BOOLEAN -LANGUAGE plpgsql VOLATILE -AS $BODY$ -DECLARE - _length INTEGER; -BEGIN - - -- make sure that text can only be null - -- when we allow it - IF _text IS NULL AND NOT _nullable THEN - PERFORM _api.raise( - _msg => 'api_null_value', - _detail => _column - ); - END IF; - - IF _text IS NULL THEN - RETURN TRUE; - END IF; - - _length = LENGTH(_text); - - IF _min IS NOT NULL AND _length < _min THEN - PERFORM _api.raise( - _msg => 'api_min_value', - _detail => _column, - _hint => _min || '' - ); - RETURN FALSE; - END IF; - - IF _max IS NOT NULL AND _length > _max THEN - PERFORM _api.raise( - _msg => 'api_max_value', - _detail => _column, - _hint => _max || '' - ); - RETURN FALSE; - END IF; - - RETURN TRUE; -END -$BODY$; - -GRANT EXECUTE ON FUNCTION _api.validate_text(TEXT, TEXT, INTEGER, INTEGER, BOOLEAN) - TO rest_anon, rest_user; |