Initial commit.
This commit is contained in:
76
sql/30504_tri_TCG_User.sql
Normal file
76
sql/30504_tri_TCG_User.sql
Normal file
@@ -0,0 +1,76 @@
|
||||
|
||||
CREATE OR REPLACE FUNCTION tcg.public.FN_before_insert_TCG_User()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
NEW.created_on = CURRENT_TIMESTAMP;
|
||||
NEW.updated_last_on = CURRENT_TIMESTAMP;
|
||||
|
||||
IF NEW.change_set_id IS NULL THEN
|
||||
RAISE EXCEPTION 'Change Set ID must be provided.';
|
||||
END IF;
|
||||
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql
|
||||
;
|
||||
|
||||
CREATE OR REPLACE FUNCTION tcg.public.FN_before_update_TCG_User()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
NEW.updated_last_on = CURRENT_TIMESTAMP;
|
||||
|
||||
IF OLD.change_set_id IS NOT DISTINCT FROM NEW.change_set_id THEN
|
||||
RAISE EXCEPTION 'New Change Set ID must be provided.';
|
||||
END IF;
|
||||
|
||||
INSERT INTO tcg.public.TCG_User_Audit (
|
||||
user_id
|
||||
, name_field
|
||||
, value_prev
|
||||
, value_new
|
||||
, change_set_id
|
||||
)
|
||||
-- Changed user_auth0_id
|
||||
SELECT NEW.user_id, 'user_auth0_id', OLD.user_auth0_id, NEW.user_auth0_id, NEW.change_set_id
|
||||
WHERE OLD.user_auth0_id IS NOT DISTINCT FROM NEW.user_auth0_id
|
||||
UNION
|
||||
-- Changed firstname
|
||||
SELECT NEW.user_id, 'firstname', OLD.firstname, NEW.firstname, NEW.change_set_id
|
||||
WHERE OLD.firstname IS NOT DISTINCT FROM NEW.firstname
|
||||
UNION
|
||||
-- Changed surname
|
||||
SELECT NEW.user_id, 'surname', OLD.surname, NEW.surname, NEW.change_set_id
|
||||
WHERE OLD.surname IS NOT DISTINCT FROM NEW.surname
|
||||
UNION
|
||||
-- Changed email
|
||||
SELECT NEW.user_id, 'email', OLD.email, NEW.email, NEW.change_set_id
|
||||
WHERE OLD.email IS NOT DISTINCT FROM NEW.email
|
||||
UNION
|
||||
-- Changed is_email_verified
|
||||
SELECT NEW.user_id, 'is_email_verified', OLD.is_email_verified::TEXT, NEW.is_email_verified::TEXT, NEW.change_set_id
|
||||
WHERE OLD.is_email_verified IS NOT DISTINCT FROM NEW.is_email_verified
|
||||
UNION
|
||||
-- Changed is_super_user
|
||||
SELECT NEW.user_id, 'is_super_user', OLD.is_super_user::TEXT, NEW.is_super_user::TEXT, NEW.change_set_id
|
||||
WHERE OLD.is_super_user IS NOT DISTINCT FROM NEW.is_super_user
|
||||
UNION
|
||||
-- Changed active
|
||||
SELECT NEW.user_id, 'active', OLD.active::TEXT, NEW.active::TEXT, NEW.change_set_id
|
||||
WHERE OLD.active IS NOT DISTINCT FROM NEW.active
|
||||
;
|
||||
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql
|
||||
;
|
||||
|
||||
CREATE TRIGGER TRI_before_insert_TCG_User
|
||||
BEFORE INSERT ON tcg.public.TCG_User
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION tcg.public.FN_before_insert_TCG_User()
|
||||
;
|
||||
CREATE TRIGGER TRI_before_update_TCG_User
|
||||
BEFORE UPDATE ON tcg.public.TCG_User
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION tcg.public.FN_before_update_TCG_User()
|
||||
;
|
||||
Reference in New Issue
Block a user