Create route for Opinions

create OpinionRepository
create OpinionVoter
create OpinionChoiceRef
create extention String.toUUID() and List<String>.toUUID()
create OpinionAggregation
create interface RequestBuilderWithCreator for create entity by request
rename opinion_list to opinion_choice
create sql function find_citizen_opinions
fix sql function find_citizen_opinions_by_target_id
fix sql funciton find_opinion_choices
This commit is contained in:
2020-02-12 14:46:36 +01:00
parent ec6e39b130
commit 4a2d18ff87
24 changed files with 411 additions and 45 deletions

View File

@@ -2,22 +2,22 @@ do
$$
declare
article_count int = (select count(*) from article);
_citizensIds uuid[] = (select array_agg(id) from citizen);
begin
delete from opinion_on_article;
delete from opinion_list;
delete from opinion_choice;
insert into opinion_list (id, name, target)
select uuid_in(md5('opinion_list'||row_number() over ())::cstring), 'Opinion'||row_number() over (), '{article}'
insert into opinion_choice (id, name, target)
select uuid_in(md5('opinion_choice'||row_number() over ())::cstring), 'Opinion'||row_number() over (), '{article}'
from generate_series(0,20);
for i in 0..9 loop
insert into opinion_on_article (id, created_by_id, target_id, opinion)
insert into opinion_on_article (id, created_by_id, target_id, choice_id, created_at)
select
uuid_in(md5('opinion_on_article'||rn+(article_count*i))::cstring),
z.id,
a.id,
uuid_in(md5('opinion_list'||((rn+i) % 5 +1))::cstring)
uuid_in(md5('opinion_choice'||((rn+i) % 5 +1))::cstring),
now() + ((rn+i) || ' minute')::interval
from (select *, row_number() over ()+i+5 % 5 rn from citizen) z
join (select *, row_number() over () rn from article) a using (rn);
end loop;