added support for making requests to an org (first step of processes)

This commit is contained in:
Luke Miller 2021-04-21 16:17:41 -04:00
parent 90da4c70bb
commit 44e40d96e6

View File

@ -13,12 +13,20 @@ function temp_org()
name = nil,
policies = {},
processes = {},
requests = {},
members = {},
parent = nil,
children = {}
}
end
modpol.orgs.request_params = {
add_org = 1,
delete = 0,
add_member = 1,
remove_member = 1
}
-- ==================================================
-- returns org when given its id or name
function modpol.orgs.get_org(arg)
@ -249,3 +257,43 @@ function modpol.orgs:list_member()
end
return str
end
-- ===========================
-- compares to requests to see if they are identical
function modpol.orgs.comp_req(req1, req2)
if req1.type ~= req2.type then
return false
else
for k, v in ipairs(req1.params) do
if v ~= req2.params[k] then
return false
end
end
end
return true
end
-- ================================
-- tries to make a request to the org
function modpol.orgs:make_request(request)
-- makes sure the request has the valid number of parameters
local num_params = modpol.orgs.request_params[request.type]
if num_params == nil then return false end
for k, v in ipairs(request.params) do
num_params = num_params - 1
end
if num_params ~= 0 then return false end
-- checking to see if identical request already exists
for k, v in ipairs(self.requests) do
if self.comp_req(request, v) == true then
return false
end
end
table.insert(self.requests, request)
return true
end