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/base.lua")
|
||||||
dofile (localdir .. "/orgs/requests.lua")
|
dofile (localdir .. "/orgs/requests.lua")
|
||||||
dofile (localdir .. "/orgs/consent.lua")
|
dofile (localdir .. "/orgs/consent.lua")
|
||||||
dofile (localdir .. "/orgs/defer_to.lua")
|
dofile (localdir .. "/orgs/defer.lua")
|
||||||
|
|
||||||
--interactions
|
--interactions
|
||||||
dofile (localdir .. "/interactions/interactions.lua")
|
dofile (localdir .. "/interactions/interactions.lua")
|
||||||
|
|
||||||
--modules
|
--modules
|
||||||
dofile (loaldir .. "/modules/join_org.lua")
|
dofile (localdir .. "/modules/join_org.lua")
|
||||||
dofile (loaldir .. "/modules/remove_org.lua")
|
dofile (localdir .. "/modules/remove_org.lua")
|
||||||
dofile (loaldir .. "/modules/child_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
|
-- If available, load persistent storage into active tables
|
||||||
modpol.load_storage()
|
modpol.load_storage()
|
||||||
|
|
||||||
-- ===================================================================
|
|
||||||
-- Modpol core features
|
|
||||||
|
|
||||||
dofile (topdir .. "/api.lua")
|
|
||||||
|
|
||||||
-- ===================================================================
|
-- ===================================================================
|
||||||
-- Modpol modules
|
-- Modpol modules
|
||||||
@ -75,6 +71,11 @@ modpol.modules = modpol.modules or {}
|
|||||||
|
|
||||||
-- TKTK need to specify modules to include
|
-- TKTK need to specify modules to include
|
||||||
|
|
||||||
|
-- ===================================================================
|
||||||
|
-- Modpol core features
|
||||||
|
|
||||||
|
dofile (topdir .. "/api.lua")
|
||||||
|
|
||||||
-- ===================================================================
|
-- ===================================================================
|
||||||
-- Final checks
|
-- 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