add email to citizen table

This commit is contained in:
2019-10-08 14:13:31 +02:00
parent afb7f7a1a6
commit ebc552a431
10 changed files with 30 additions and 18 deletions

View File

@@ -2,7 +2,7 @@ do
$$
begin
delete from citizen;
insert into citizen (id, name, birthday, user_id, vote_anonymous, follow_anonymous)
insert into citizen (id, name, birthday, user_id, vote_anonymous, follow_anonymous, email)
select
uuid_in(md5('citizen'||row_number() over ()::text)::cstring),
jsonb_build_object(
@@ -13,7 +13,8 @@ begin
now() - interval '25 years',
u.id,
row_number() over () % 3 = 0,
row_number() over () % 5 = 1
row_number() over () % 5 = 1,
u.username || '@domain'|| (row_number() over () % 5 = 1) || '.com'
from "user" u;
raise notice 'citizen fixtures done';

View File

@@ -7,21 +7,23 @@ declare
begin
select insert_user(resource->'user') into inserted_user;
insert into citizen (id, name, birthday, user_id, vote_anonymous, follow_anonymous)
insert into citizen (id, name, birthday, user_id, vote_anonymous, follow_anonymous, email)
select
coalesce(id, uuid_generate_v4()),
name,
birthday,
(inserted_user->>'id')::uuid,
coalesce(vote_anonymous, true),
coalesce(follow_anonymous, true)
coalesce(follow_anonymous, true),
email
from json_populate_record(null::citizen, resource)
on conflict (id) do update set
name = excluded.name,
birthday = excluded.birthday,
user_id = excluded.user_id,
vote_anonymous = excluded.vote_anonymous,
follow_anonymous = excluded.follow_anonymous
follow_anonymous = excluded.follow_anonymous,
email = excluded.email
returning id into new_id;
select find_citizen_by_id_with_user(new_id) into resource;

View File

@@ -4,21 +4,23 @@ $$
declare
new_id uuid;
begin
insert into citizen (id, name, birthday, user_id, vote_anonymous, follow_anonymous)
insert into citizen (id, name, birthday, user_id, vote_anonymous, follow_anonymous, email)
select
coalesce(id, uuid_generate_v4()),
name,
birthday,
(resource#>>'{user, id}')::uuid,
coalesce(vote_anonymous, true),
coalesce(follow_anonymous, true)
coalesce(follow_anonymous, true),
email
from json_populate_record(null::citizen, resource)
on conflict (id) do update set
name = excluded.name,
birthday = excluded.birthday,
user_id = excluded.user_id,
vote_anonymous = excluded.vote_anonymous,
follow_anonymous = excluded.follow_anonymous
follow_anonymous = excluded.follow_anonymous,
email = excluded.email
returning id into new_id;
select find_citizen_by_id(new_id) into resource;

View File

@@ -18,7 +18,8 @@ create table citizen
birthday date not null,
user_id uuid not null references "user" (id) unique,
vote_anonymous boolean default true not null,
follow_anonymous boolean default true not null
follow_anonymous boolean default true not null,
email text not null check ( email ~* '.+@.+\..+' )
);
create table workgroup