2013-07-17 22:55:27 +02:00
|
|
|
local log = require('util.logger')
|
2013-10-17 14:04:13 +02:00
|
|
|
local utils = require('util.utils')
|
2013-07-17 22:55:27 +02:00
|
|
|
local settings = require('util.settings')
|
2013-08-28 18:33:48 +02:00
|
|
|
local printer = require('util.printer')
|
2013-10-28 13:52:27 +01:00
|
|
|
--local signin = require('network.signin')
|
2013-10-18 12:57:28 +02:00
|
|
|
local wifi = require('network.wlanconfig')
|
2013-10-23 16:12:19 +02:00
|
|
|
local accessManager = require('util.access')
|
|
|
|
local printerAPI = require('rest.api.api_printer')
|
|
|
|
|
2013-07-17 22:55:27 +02:00
|
|
|
|
|
|
|
local M = {
|
|
|
|
isApi = true
|
|
|
|
}
|
|
|
|
|
2013-10-23 16:12:19 +02:00
|
|
|
|
|
|
|
-- TODO: this function is also defined in 2 other places, combine them (and avoid require loops)
|
|
|
|
local function operationsAccessOrFail(request, response)
|
|
|
|
if not accessManager.hasControl(request.remoteAddress) then
|
|
|
|
response:setFail("No control access")
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
|
|
|
|
local rv, printerState = printerAPI.state(request, response, true)
|
|
|
|
if(rv == false) then
|
|
|
|
response:setError("Could not get printer state")
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
|
|
|
|
if printerState == 'buffering' or printerState == 'printing' or printerState == 'stopping' then
|
|
|
|
response:setFail("Printer is busy, please wait")
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
|
|
|
|
|
2013-07-17 22:55:27 +02:00
|
|
|
function M._global_GET(request, response)
|
|
|
|
response:setSuccess()
|
|
|
|
for k,v in pairs(request:getAll()) do
|
|
|
|
local r,m = settings.get(k)
|
2013-10-23 16:12:19 +02:00
|
|
|
|
2013-07-29 13:48:56 +02:00
|
|
|
if r ~= nil then response:addData(k, r)
|
2013-07-17 22:55:27 +02:00
|
|
|
else response:addData(k, "could not read key ('" .. m .. "')")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function M._global_POST(request, response)
|
2013-10-17 14:04:13 +02:00
|
|
|
--log:info("API:config:set")
|
2013-10-23 16:12:19 +02:00
|
|
|
|
|
|
|
if not operationsAccessOrFail(request, response) then return end
|
|
|
|
|
2013-07-17 22:55:27 +02:00
|
|
|
response:setSuccess()
|
2013-10-23 16:12:19 +02:00
|
|
|
|
2013-10-18 12:57:28 +02:00
|
|
|
local validation = {}
|
2013-07-17 22:55:27 +02:00
|
|
|
for k,v in pairs(request:getAll()) do
|
2013-10-17 14:04:13 +02:00
|
|
|
--log:info(" "..k..": "..v);
|
2013-07-17 22:55:27 +02:00
|
|
|
local r,m = settings.set(k, v)
|
2013-10-23 16:12:19 +02:00
|
|
|
|
|
|
|
if r then
|
2013-10-18 12:57:28 +02:00
|
|
|
--response:addData(k, "ok")
|
|
|
|
validation[k] = "ok"
|
2013-10-23 16:12:19 +02:00
|
|
|
else
|
2013-10-18 12:57:28 +02:00
|
|
|
--response:addData(k, "could not save setting ('" .. m .. "')")
|
|
|
|
validation[k] = "could not save setting ('" .. m .. "')"
|
2013-10-17 14:04:13 +02:00
|
|
|
log:info(" m: "..utils.dump(m))
|
2013-07-17 22:55:27 +02:00
|
|
|
end
|
|
|
|
end
|
2013-10-18 12:57:28 +02:00
|
|
|
response:addData("validation",validation)
|
2013-10-23 16:12:19 +02:00
|
|
|
|
2013-10-18 12:57:28 +02:00
|
|
|
local substitutedSsid = wifi.getSubstitutedSsid(settings.get('network.ap.ssid'))
|
|
|
|
response:addData("substituted_ssid",substitutedSsid)
|
2013-10-23 16:12:19 +02:00
|
|
|
|
2013-10-28 13:52:27 +01:00
|
|
|
-- we now call signin seperatly trough cgi-bin
|
|
|
|
--[[log:info("API:Network:try signing in")
|
2013-10-03 18:07:58 +02:00
|
|
|
if signin.signin() then
|
|
|
|
log:info("API:Network:signin successfull")
|
|
|
|
else
|
|
|
|
log:info("API:Network:signin failed")
|
2013-10-28 13:52:27 +01:00
|
|
|
end]]--
|
2013-07-17 22:55:27 +02:00
|
|
|
end
|
|
|
|
|
2013-07-27 00:25:43 +02:00
|
|
|
function M.all_GET(request, response)
|
2013-08-28 14:17:25 +02:00
|
|
|
response:setSuccess()
|
2013-07-27 00:25:43 +02:00
|
|
|
for k,v in pairs(settings.getAll()) do
|
|
|
|
response:addData(k,v)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2013-11-22 18:05:51 +01:00
|
|
|
function M.resetall_POST(request, response)
|
|
|
|
response:setSuccess()
|
|
|
|
settings.resetAll()
|
|
|
|
|
|
|
|
for k,v in pairs(settings.getAll()) do
|
|
|
|
response:addData(k,v)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2013-08-28 18:33:48 +02:00
|
|
|
function M.supportedprinters_GET(request, response)
|
|
|
|
response:setSuccess()
|
|
|
|
for k,v in pairs(printer.supportedPrinters()) do
|
|
|
|
response:addData(k,v)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function M.supportedbaudrates_GET(request, response)
|
|
|
|
response:setSuccess()
|
|
|
|
for k,v in pairs(printer.supportedBaudRates()) do
|
|
|
|
response:addData(k,v)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2013-07-17 22:55:27 +02:00
|
|
|
return M
|