mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-30 07:59:35 +00:00
58 lines
1.5 KiB
Lua
58 lines
1.5 KiB
Lua
--
|
|
-- (C) 2020 - ntop.org
|
|
--
|
|
|
|
local dirs = ntop.getDirs()
|
|
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
|
|
|
|
require "lua_utils"
|
|
local json = require("dkjson")
|
|
local widgets_utils = require("widgets_utils")
|
|
local http_lint = require("http_lint")
|
|
|
|
local function reportError(msg)
|
|
print(json.encode({ message = msg, success = false }))
|
|
end
|
|
|
|
local function format_params(data)
|
|
return {
|
|
ifid = data.interface,
|
|
key = data.key,
|
|
begin_time = data.begin_time,
|
|
end_time = data.end_time,
|
|
schema = data.schema,
|
|
metric = data.metric
|
|
}
|
|
end
|
|
|
|
local action = _POST["action"]
|
|
|
|
sendHTTPContentTypeHeader('application/json')
|
|
|
|
if (action == nil) then
|
|
traceError(TRACE_ERROR, TRACE_CONSOLE, "Missing 'action' parameter. Bad CSRF?")
|
|
reportError("Missing 'action' parameter. Bad CSRF?")
|
|
return
|
|
end
|
|
|
|
local json_data = _POST["JSON"]
|
|
local data = json.decode(json_data)
|
|
local params = format_params(data)
|
|
|
|
local response = {
|
|
}
|
|
|
|
if (action == "add") then
|
|
response.success, response.message = widgets_utils.add_widget(data.name, data.ds_hash, data.type, params)
|
|
elseif (action == "edit") then
|
|
response.success, response.message = widgets_utils.edit_widget(data.widget_key, data.name, data.ds_hash, data.type, params)
|
|
elseif (action == "remove") then
|
|
response.success, response.message = widgets_utils.delete_widget(data.widget_key)
|
|
else
|
|
traceError(TRACE_ERROR, TRACE_CONSOLE, "Invalid 'action' parameter.")
|
|
reportError("Invalid 'action' parameter.")
|
|
return
|
|
end
|
|
|
|
|
|
print(json.encode(response))
|