Add delete workgroup query & repo
This commit is contained in:
@@ -40,6 +40,10 @@ class Workgroup(override var requester: Requester) : RepositoryI {
|
|||||||
.getFunction("upsert_workgroup")
|
.getFunction("upsert_workgroup")
|
||||||
.selectOne("resource" to workgroup) ?: error("query 'upsert_workgroup' return null")
|
.selectOne("resource" to workgroup) ?: error("query 'upsert_workgroup' return null")
|
||||||
|
|
||||||
|
fun delete(workgroup: WorkgroupRef) = requester
|
||||||
|
.getFunction("delete_workgroup")
|
||||||
|
.perform("id" to workgroup.id)
|
||||||
|
|
||||||
fun addMember(workgroup: WorkgroupI, member: CitizenI): List<CitizenBasic> =
|
fun addMember(workgroup: WorkgroupI, member: CitizenI): List<CitizenBasic> =
|
||||||
addMembers(workgroup, listOf(member))
|
addMembers(workgroup, listOf(member))
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
create or replace function delete_workgroup(_id uuid) returns void
|
||||||
|
language plpgsql as
|
||||||
|
$$
|
||||||
|
begin
|
||||||
|
update workgroup set deleted_at = now()
|
||||||
|
where id = _id;
|
||||||
|
end;
|
||||||
|
$$;
|
||||||
|
|
||||||
@@ -86,6 +86,12 @@ begin
|
|||||||
select find_workgroup_by_id((created_workgroup->>'id')::uuid) into selected_workgroup;
|
select find_workgroup_by_id((created_workgroup->>'id')::uuid) into selected_workgroup;
|
||||||
assert json_array_length(selected_workgroup->'members') = 1, 'Workgroup must have members';
|
assert json_array_length(selected_workgroup->'members') = 1, 'Workgroup must have members';
|
||||||
|
|
||||||
|
perform delete_workgroup((created_workgroup->>'id')::uuid);
|
||||||
|
select find_workgroup_by_id((created_workgroup->>'id')::uuid) into selected_workgroup;
|
||||||
|
assert selected_workgroup is null, 'Workgroup must be null after deleted';
|
||||||
|
select m into members from find_workgroup_members((created_workgroup->>'id')::uuid) m;
|
||||||
|
assert json_array_length(members) = 0, 'The members count must be equal to 0 on deleted workgroup';
|
||||||
|
|
||||||
rollback;
|
rollback;
|
||||||
raise notice 'workgroup test pass';
|
raise notice 'workgroup test pass';
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user