modpol.modules = modpol.modules or {} modpol.modules.consent = { type = "consent", } -- sets consent to its own callback modpol.modules.consent.__index = modpol.modules.consent function temp_consent_process() return { org_id = nil, request_id = nil, total_votes = 0, votes_yes = {}, votes_no = {} } end -- =============================================== -- function to create a new consent process to resolve a pending process function modpol.modules.consent:new_process(request_id, org_id) local process = temp_consent_process() process.request_id = request_id process.org_id = org_id setmetatable(process, modpol.modules.consent) modpol.ocutil.log('Created new process for request id #' .. request_id) return process end -- ====================================================== -- function for users to vote on a pending request function modpol.modules.consent:approve(user, decision) if decision then table.insert(self.votes_yes, user) modpol.ocutil.log('User ' .. user .. ' voted yes on request #' .. self.request_id) else table.insert(self.votes_no, user) modpol.ocutil.log('User ' .. user .. ' voted no on request #' .. self.request_id) end self.total_votes = self.total_votes + 1 end -- =================================================== -- determines whether process has finished and resolves request if it has (unfinished) -- function modpol.modules.consent.call_vote_check(process) -- if votes_yes > to_pass then -- call_success() -- elseif votes_no > to_pass then -- call_failure() -- end -- end