From e96b8641dcfe023a56768a878318a2f99dba9103 Mon Sep 17 00:00:00 2001 From: Nathan Schneider Date: Sun, 5 Sep 2021 17:55:18 -0600 Subject: [PATCH] Non-functioning start on module stratey #1 --- modpol/orgs/requests.lua | 60 ++++++++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 18 deletions(-) diff --git a/modpol/orgs/requests.lua b/modpol/orgs/requests.lua index aacc085..f312a3f 100644 --- a/modpol/orgs/requests.lua +++ b/modpol/orgs/requests.lua @@ -1,10 +1,47 @@ -modpol.orgs.request_params = { - add_org = 1, - delete = 0, - add_member = 1, - remove_member = 1 +-- REQUESTS +-- Provides request functionality to org + +-- TODO +-- include consent functionality, available to modules +-- load available modules in modpol.lua +-- make policies a set of options for consent functions +-- create simple modules for core functions: change_policy, add_member, start_org, join_org, close_org + +-- CONSENT +-- Provides consent functionality for modules + +-- define default params +modpol.default_policy = { + target_org = nil, + time_limit = nil, + vote_threshold = 0 } +-- Function: modpol.orgs:consent(params, result_function) +-- params: table of optional preferences, e.g.: + -- target_org + -- time_limit + -- vote_threshold (0-100 percent, 0 is automatic approval) +-- result_function: function(input) that takes result boolean +function modpol.orgs:consent(params, result_function) + -- if appropriate, pass on to target org + if params.target_org then + local target_org = params.target_org + params.target_org = nil + params.target_org:consent(params, result_function) + return + end + STUCK ON HOW TO IMPLEMENT THIS WITHOUT REQUIRING THE FULL PROCESS FUNCTIONALITY + +end + + + + + +-- PROCESSES +-- functions that enable requests to create processes + -- ================================ -- creates a new process linked to a request id function modpol.orgs:create_process(process_type, request_id) @@ -171,19 +208,6 @@ 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 - modpol.ocutil.log('Error in ' .. self.name .. ':make_request -> request type is invalid') - return false - end - - -- request.params should match the num of params for that type - if #request.params ~= num_params then - modpol.ocutil.log('Error in ' .. self.name .. ':make_request -> request has invalid number of parameters') - return false - end -- checking to see if identical request already exists for k, v in ipairs(self.requests) do