Big refactoring #77
@@ -0,0 +1,16 @@
|
|||||||
|
create or replace function find_citizen_by_name(_name json, out resource json) language plpgsql as
|
||||||
|
$$
|
||||||
|
begin
|
||||||
|
select to_json(t) into resource
|
||||||
|
from (
|
||||||
|
select
|
||||||
|
z.*,
|
||||||
|
find_user_by_id(u.id) as "user"
|
||||||
|
from citizen as z
|
||||||
|
join "user" as u on z.user_id = u.id
|
||||||
|
where z.name->>'first_name' = _name->>'first_name'
|
||||||
|
and z.name->>'last_name' = _name->>'last_name'
|
||||||
|
) as t;
|
||||||
|
end;
|
||||||
|
$$;
|
||||||
|
|
||||||
@@ -35,9 +35,17 @@ begin
|
|||||||
select find_citizen_by_user_id((created_citizen->>'user_id')::uuid) into selected_citizen;
|
select find_citizen_by_user_id((created_citizen->>'user_id')::uuid) into selected_citizen;
|
||||||
assert selected_citizen#>>'{name, first_name}' = 'George', format('first name must be George, %s', selected_citizen#>>'{name, first_name}');
|
assert selected_citizen#>>'{name, first_name}' = 'George', format('first name must be George, %s', selected_citizen#>>'{name, first_name}');
|
||||||
|
|
||||||
|
-- get citizen by username and check the first name
|
||||||
|
select find_citizen_by_username(created_citizen#>>'{user, username}') into selected_citizen;
|
||||||
|
assert selected_citizen#>>'{name, first_name}' = 'George', format('first name must be George, %s', selected_citizen#>>'{name, first_name}');
|
||||||
|
|
||||||
|
-- get citizen by name and check the first name
|
||||||
|
select find_citizen_by_name(created_citizen->'name') into selected_citizen;
|
||||||
|
assert selected_citizen#>>'{name, first_name}' = 'George', format('first name must be George, %s', selected_citizen#>>'{name, first_name}');
|
||||||
|
|
||||||
rollback;
|
rollback;
|
||||||
|
|
||||||
-- check if fint by id return null if citizen not exist
|
-- check if find by id return null if citizen not exist
|
||||||
select find_citizen_by_user_id((created_citizen->>'user_id')::uuid) into selected_citizen;
|
select find_citizen_by_user_id((created_citizen->>'user_id')::uuid) into selected_citizen;
|
||||||
assert selected_citizen is null, format('citizen must be null if not exist, %s', selected_citizen);
|
assert selected_citizen is null, format('citizen must be null if not exist, %s', selected_citizen);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user