From 969b5669676d4af228018a4f03a9d38a7c41e436 Mon Sep 17 00:00:00 2001 From: Chan Woo Kim Date: Wed, 7 Mar 2018 12:03:19 +0800 Subject: [PATCH 1/4] feature #16: added functionality to generate URL shortcode for freelancers --- db/schema/setup.sql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/db/schema/setup.sql b/db/schema/setup.sql index ca58529..432718f 100644 --- a/db/schema/setup.sql +++ b/db/schema/setup.sql @@ -1219,6 +1219,7 @@ COMMENT ON COLUMN flingapp.freelancer_file_store_map.fl_fs_map_doc_type IS 'A la -- 13. core project store CREATE TABLE flingapp.project( proj_id UUID NOT NULL DEFAULT gen_random_uuid(), + proj_friendlyURL TEXT NOT NULL, proj_name TEXT NOT NULL, proj_start_date DATE NOT NULL, proj_end_date DATE NOT NULL, @@ -2140,8 +2141,6 @@ CREATE TRIGGER add_freelancer_gen_shortURL BEFORE INSERT FOR EACH ROW EXECUTE PROCEDURE flingapp_private.gen_freelancer_shortcode(); - - -- **** Privileges -- SCHEMA GRANTS From e71491fb4ea9e1a0ed1bc479334e9e5496e14131 Mon Sep 17 00:00:00 2001 From: Chan Woo Kim Date: Wed, 7 Mar 2018 12:48:51 +0800 Subject: [PATCH 2/4] issue#16: auto-generates shortcode --- db/schema/setup.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/db/schema/setup.sql b/db/schema/setup.sql index 432718f..7a6e977 100644 --- a/db/schema/setup.sql +++ b/db/schema/setup.sql @@ -1219,7 +1219,6 @@ COMMENT ON COLUMN flingapp.freelancer_file_store_map.fl_fs_map_doc_type IS 'A la -- 13. core project store CREATE TABLE flingapp.project( proj_id UUID NOT NULL DEFAULT gen_random_uuid(), - proj_friendlyURL TEXT NOT NULL, proj_name TEXT NOT NULL, proj_start_date DATE NOT NULL, proj_end_date DATE NOT NULL, @@ -1673,6 +1672,7 @@ end $$; + -- ***** AUTH ***** -- 1. REGISTER a user @@ -2141,6 +2141,7 @@ CREATE TRIGGER add_freelancer_gen_shortURL BEFORE INSERT FOR EACH ROW EXECUTE PROCEDURE flingapp_private.gen_freelancer_shortcode(); + -- **** Privileges -- SCHEMA GRANTS From 4804bb0127beaa6532ae39fab5e1c31bf574f365 Mon Sep 17 00:00:00 2001 From: Chan Woo Kim Date: Wed, 7 Mar 2018 12:50:13 +0800 Subject: [PATCH 3/4] revert --- db/schema/setup.sql | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/db/schema/setup.sql b/db/schema/setup.sql index 7a6e977..f8bcf1f 100644 --- a/db/schema/setup.sql +++ b/db/schema/setup.sql @@ -1052,7 +1052,6 @@ ALTER TABLE IF EXISTS flingapp_custom.user -- 5. core freelancer entity CREATE TABLE flingapp.freelancer( fl_id UUID NOT NULL DEFAULT gen_random_uuid(), - fl_shortcode TEXT NOT NULL, fl_first_name TEXT NOT NULL DEFAULT 'John', fl_last_name TEXT NOT NULL DEFAULT 'Doe', fl_is_native_speaker BOOLEAN NOT NULL DEFAULT true, @@ -1661,16 +1660,6 @@ $$ LANGUAGE sql IMMUTABLE; COMMENT ON FUNCTION flingapp_private.is_empty(TEXT) IS 'Find empty strings or strings containing only whitespace'; --- 4. Generate short URL from name & UUID for freelancer -CREATE OR REPLACE FUNCTION flingapp_private.gen_freelancer_shortcode() - RETURNS trigger language plpgsql AS -$$ -begin - new.fl_shortcode:= CONCAT(lower(new.fl_last_name),'-',lower(new.fl_first_name),'-',SUBSTR(CAST(new.fl_id AS varchar(50)),1,6)); - return new; -end -$$; - -- ***** AUTH ***** @@ -2136,12 +2125,8 @@ CREATE TRIGGER proj_updated_at BEFORE UPDATE EXECUTE PROCEDURE flingapp_private.set_updated_at(); -CREATE TRIGGER add_freelancer_gen_shortURL BEFORE INSERT - ON flingapp.freelancer - FOR EACH ROW - EXECUTE PROCEDURE flingapp_private.gen_freelancer_shortcode(); - + -- **** Privileges -- SCHEMA GRANTS From fa802ee56bf6a069ce716bc7bb0f196bc9e60382 Mon Sep 17 00:00:00 2001 From: Chan Woo Kim Date: Wed, 7 Mar 2018 12:57:19 +0800 Subject: [PATCH 4/4] issue#16-freelancer-shortcode --- db/schema/setup.sql | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/db/schema/setup.sql b/db/schema/setup.sql index f8bcf1f..61ebc75 100644 --- a/db/schema/setup.sql +++ b/db/schema/setup.sql @@ -1052,6 +1052,7 @@ ALTER TABLE IF EXISTS flingapp_custom.user -- 5. core freelancer entity CREATE TABLE flingapp.freelancer( fl_id UUID NOT NULL DEFAULT gen_random_uuid(), + fl_shortcode TEXT NOT NULL, fl_first_name TEXT NOT NULL DEFAULT 'John', fl_last_name TEXT NOT NULL DEFAULT 'Doe', fl_is_native_speaker BOOLEAN NOT NULL DEFAULT true, @@ -1660,6 +1661,17 @@ $$ LANGUAGE sql IMMUTABLE; COMMENT ON FUNCTION flingapp_private.is_empty(TEXT) IS 'Find empty strings or strings containing only whitespace'; +-- 4. Generate short URL from name & UUID for freelancer +CREATE OR REPLACE FUNCTION flingapp_private.gen_freelancer_shortcode() + RETURNS trigger language plpgsql AS +$$ +begin + new.fl_shortcode:= CONCAT(lower(new.fl_last_name),'-',lower(new.fl_first_name),'-',SUBSTR(CAST(new.fl_id AS varchar(50)),1,6)); + return new; +end +$$; + + -- ***** AUTH ***** @@ -2125,6 +2137,12 @@ CREATE TRIGGER proj_updated_at BEFORE UPDATE EXECUTE PROCEDURE flingapp_private.set_updated_at(); +CREATE TRIGGER add_freelancer_gen_shortURL BEFORE INSERT + ON flingapp.freelancer + FOR EACH ROW + EXECUTE PROCEDURE flingapp_private.gen_freelancer_shortcode(); + + -- **** Privileges