working version of join_org module demonstrated in tests/new_module_test.lua
This commit is contained in:
parent
8bc5c5ba4e
commit
0ca04294b7
@ -9,12 +9,12 @@ dofile (localdir .. "/users/users.lua")
|
||||
dofile (localdir .. "/orgs/base.lua")
|
||||
dofile (localdir .. "/orgs/requests.lua")
|
||||
dofile (localdir .. "/orgs/consent.lua")
|
||||
dofile (localdir .. "/orgs/defer_to.lua")
|
||||
dofile (localdir .. "/orgs/defer.lua")
|
||||
|
||||
--interactions
|
||||
dofile (localdir .. "/interactions/interactions.lua")
|
||||
|
||||
--modules
|
||||
dofile (loaldir .. "/modules/join_org.lua")
|
||||
dofile (loaldir .. "/modules/remove_org.lua")
|
||||
dofile (loaldir .. "/modules/child_org.lua")
|
||||
dofile (localdir .. "/modules/join_org.lua")
|
||||
dofile (localdir .. "/modules/remove_org.lua")
|
||||
dofile (localdir .. "/modules/child_org.lua")
|
||||
|
@ -63,10 +63,6 @@ dofile (modpol.storage_file_path)
|
||||
-- If available, load persistent storage into active tables
|
||||
modpol.load_storage()
|
||||
|
||||
-- ===================================================================
|
||||
-- Modpol core features
|
||||
|
||||
dofile (topdir .. "/api.lua")
|
||||
|
||||
-- ===================================================================
|
||||
-- Modpol modules
|
||||
@ -75,6 +71,11 @@ modpol.modules = modpol.modules or {}
|
||||
|
||||
-- TKTK need to specify modules to include
|
||||
|
||||
-- ===================================================================
|
||||
-- Modpol core features
|
||||
|
||||
dofile (topdir .. "/api.lua")
|
||||
|
||||
-- ===================================================================
|
||||
-- Final checks
|
||||
|
||||
|
@ -0,0 +1,18 @@
|
||||
|
||||
join_org = {}
|
||||
|
||||
function join_org.initiate(initiator, org, result)
|
||||
modpol.interactions.binary_poll_user(
|
||||
initiator,
|
||||
"Would you like to join " .. org.name,
|
||||
function (resp)
|
||||
if resp == "Yes" then
|
||||
org:add_member(initiator)
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
if result then result() end
|
||||
end
|
||||
|
||||
modpol.modules.join_org = join_org
|
37
modpol/modules/join_org_class.lua
Normal file
37
modpol/modules/join_org_class.lua
Normal file
@ -0,0 +1,37 @@
|
||||
-- JOIN ORG
|
||||
-- Module that enables a user to join an org
|
||||
|
||||
modpol.modules.join_org = {}
|
||||
module = modpol.modules.join_org
|
||||
|
||||
JoinOrg = {}
|
||||
JoinOrg_mt = { __index = JoinOrg }
|
||||
|
||||
|
||||
function JoinOrg:create(initiator, org)
|
||||
local inst = {
|
||||
name = "Join an org",
|
||||
desc = "Initiator chooses an org to become a member of. Nothing happens if they are already in an org."
|
||||
}
|
||||
setmetatable(inst, JoinOrg_mt)
|
||||
return inst
|
||||
|
||||
end
|
||||
|
||||
function JoinOrg:initiate(initiator, org, result)
|
||||
modpol.interactions.binary_poll_user(initiator, "Would you like to join", )
|
||||
end
|
||||
|
||||
function JoinOrg:request()
|
||||
|
||||
end
|
||||
|
||||
function JoinOrg:implement()
|
||||
self.org:add_member(self.initiator)
|
||||
end
|
||||
|
||||
-- ===================================
|
||||
-- When calling a module internally
|
||||
|
||||
test = JoinOrg.create()
|
||||
test:initiate("luke")
|
10
modpol/tests/new_module_test.lua
Normal file
10
modpol/tests/new_module_test.lua
Normal file
@ -0,0 +1,10 @@
|
||||
dofile('../modpol.lua');
|
||||
|
||||
modpol.orgs.reset()
|
||||
|
||||
test_org = modpol.instance:add_org('test_org', 'luke')
|
||||
test_org:add_member('nathan')
|
||||
|
||||
print(table.concat(test_org:list_members(), ", "))
|
||||
|
||||
modpol.modules.join_org.initiate("paul", test_org, function () print("callback") end)
|
Loading…
x
Reference in New Issue
Block a user