fusionpbx/resources/install/scripts/resources/functions/api.lua

55 lines
1.1 KiB
Lua

-- Decode result of api execute command to Lua way.
-- in case of error function returns `nil` and `error message`.
-- in other case function return result as is.
local function api_result(result)
if string.find(result, '^%-ERR') or string.find(result, '^INVALID COMMAND!') then
return nil, string.match(result, "(.-)%s*$")
end
return result
end
local function class(base)
local t = base and setmetatable({}, base) or {}
t.__index = t
t.__class = t
t.__base = base
function t.new(...)
local o = setmetatable({}, t)
if o.__init then
if t == ... then -- we call as Class:new()
return o:__init(select(2, ...))
else -- we call as Class.new()
return o:__init(...)
end
end
return o
end
return t
end
local API = class() do
function API:__init(...)
self._api = freeswitch.API(...)
return self
end
function API:execute(...)
return api_result(self._api:execute(...))
end
function API:executeString(...)
return api_result(self._api:executeString(...))
end
function API:getTime()
return self._api:getTime()
end
end
return API.new()