Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions Db/database queries.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@




CREATE TABLE public.user_info
(
id integer NOT NULL DEFAULT nextval('user_info_id_seq'::regclass),
first_name character varying(20) COLLATE pg_catalog."default" NOT NULL,
middle_name character varying(20) COLLATE pg_catalog."default",
last_name character varying(20) COLLATE pg_catalog."default" NOT NULL,
email character varying(50) COLLATE pg_catalog."default" NOT NULL,
phone character varying(15) COLLATE pg_catalog."default" NOT NULL,
role integer NOT NULL,
address character varying(100) COLLATE pg_catalog."default",
CONSTRAINT user_info_pkey PRIMARY KEY (id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.user_info
OWNER to postgres;

-- Trigger: valid_trigger

-- DROP TRIGGER valid_trigger ON public.user_info;

CREATE TRIGGER valid_trigger
BEFORE INSERT OR UPDATE
ON public.user_info
FOR EACH ROW
EXECUTE PROCEDURE public.validate();





















CREATE FUNCTION public.validate()
RETURNS trigger
LANGUAGE 'plpgsql'
COST 100
VOLATILE NOT LEAKPROOF
AS $BODY$BEGIN
IF(NEW.first_name !~'^[A-z]{1,20}$')
THEN RAISE EXCEPTION 'INVALID first name';
END IF;
IF(NEW.last_name !~ '^[A-z]{1,20}$')
THEN RAISE EXCEPTION 'INVALID last name';
END IF;
IF(NEW.email !~'^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$')
THEN RAISE EXCEPTION 'INVALID Email';
END IF;
IF(NEW.phone !~ '^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$')
THEN RAISE EXCEPTION 'INVALID Phone Number';
END IF;
RETURN NEW;
END;$BODY$;

ALTER FUNCTION public.validate()
OWNER TO postgres;
22 changes: 22 additions & 0 deletions Db/db.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[
{
"id": 0,
"firstName": "",
"middleName": "",
"lastName": "",
"email": "",
"phone": "",
"role": 0,
"address": ""
},
{
"id": 1,
"firstName": "",
"middleName": "",
"lastName": "",
"email": "",
"phone": "",
"role": 0,
"address": ""
}
]
Empty file added Db/interface.js
Empty file.
11 changes: 11 additions & 0 deletions Db/interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
export interface DataTypeOfUser{
id:number;
first_name : string;
middle_name:string;
last_name:string;
phone:string;
email:string;
address:string;
role:number;

}
Loading