diff options
author | Ted Trask <ttrask01@yahoo.com> | 2014-04-10 07:23:16 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2014-04-10 07:23:16 +0000 |
commit | 42029e2ecdb3c68f10a567e0724490c726f70f14 (patch) | |
tree | 7d72b173b212fd3df85194c2fa70c5809182b13e /kamailio-model.lua | |
parent | 05c8091293f3099354471017801f248f9080bd34 (diff) | |
download | acf-kamailio-42029e2ecdb3c68f10a567e0724490c726f70f14.tar.bz2 acf-kamailio-42029e2ecdb3c68f10a567e0724490c726f70f14.tar.xz |
Changes to use new htmlviewfunctions functions and make searchdatabase a proper form
Diffstat (limited to 'kamailio-model.lua')
-rw-r--r-- | kamailio-model.lua | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/kamailio-model.lua b/kamailio-model.lua index 089c465..587f7ad 100644 --- a/kamailio-model.lua +++ b/kamailio-model.lua @@ -285,12 +285,12 @@ function mymodule.create_database(self, create_db) return create_db end -function mymodule.search_database(id, value, comparison) +function mymodule.get_search_database(self, clientdata) local errtxt retval = {} - retval.id = cfe({type="select", value=id or "", label="Table.Column", option={}, seq=1}) - retval.comparison = cfe({type="select", value=comparison or "=", label="Comparison", option={"=", "!=", "~", "!~", "~*", "!*~"}, seq=2}) - retval.value = cfe({label="Value", value=value or "", descr="Value or SQL regular expression", seq=3}) + retval.id = cfe({type="select", value=clientdata.id or "", label="Table.Column", option={}, seq=1}) + retval.comparison = cfe({type="select", value=clientdata.comparison or "=", label="Comparison", option={"=", "!=", "~", "!~", "~*", "!*~"}, seq=2}) + retval.value = cfe({label="Value", value=clientdata.value or "", descr="Value or SQL regular expression", seq=3}) local res, err = pcall(function() local connected = databaseconnect() local tables = dbkam.listtables() or {} @@ -300,15 +300,6 @@ function mymodule.search_database(id, value, comparison) retval.id.option[#retval.id.option + 1] = t.."."..c end end - -- Get the rows from the DB - if id and modelfunctions.validateselect(retval.id) and modelfunctions.validateselect(retval.comparison) then - retval.result = cfe({type="structure", value={}, label="List of Rows", seq=4 }) - local table, column = string.match(id, "^([^.]*)%.(.*)") - if table then - local sql = "SELECT * FROM "..dbkam.escape(table).." WHERE "..dbkam.escape(column)..dbkam.escape(comparison).."'"..dbkam.escape(value).."'" - retval.result.value = getselectresponse(sql) - end - end if connected then databasedisconnect() end end) if not res and err then @@ -317,6 +308,28 @@ function mymodule.search_database(id, value, comparison) return cfe({type="group", value=retval, label="Database Search", errtxt=errtxt}) end +function mymodule.search_database(self, search) + if modelfunctions.validateselect(search.value.id) and modelfunctions.validateselect(search.value.comparison) then + local res, err = pcall(function() + local connected = databaseconnect() + -- Get the rows from the DB + search.value.result = cfe({type="structure", value={}, label="List of Rows", seq=4 }) + local table, column = string.match(search.value.id.value, "^([^.]*)%.(.*)") + if table then + local sql = "SELECT * FROM "..dbkam.escape(table).." WHERE "..dbkam.escape(column)..dbkam.escape(search.value.comparison.value).."'"..dbkam.escape(search.value.value.value).."'" + search.value.result.value = getselectresponse(sql) + end + if connected then databasedisconnect() end + end) + if not res and err then + search.errtxt = err + end + else + search.errtxt = "Failed to search database" + end + return search +end + for n,f in pairs(dbmodelfunctions) do mymodule[n] = function(...) databasecreate() |