Add delete workgroup query & repo
This commit is contained in:
@@ -40,6 +40,10 @@ class Workgroup(override var requester: Requester) : RepositoryI {
|
||||
.getFunction("upsert_workgroup")
|
||||
.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> =
|
||||
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;
|
||||
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;
|
||||
raise notice 'workgroup test pass';
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user