summaryrefslogtreecommitdiffstats
path: root/did-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2010-04-05 15:37:51 +0000
committerTed Trask <ttrask01@yahoo.com>2010-04-05 15:37:51 +0000
commit634d462012974596104a8febbb892515ae557250 (patch)
tree86a11df7efb432b32449b1cffc1bdf9d5a15ce3f /did-model.lua
parent06867f0d8d63db99b9aaa147158314bd588510b0 (diff)
downloadacf-did-634d462012974596104a8febbb892515ae557250.tar.bz2
acf-did-634d462012974596104a8febbb892515ae557250.tar.xz
Added listdefs function to speed up process when only need dids.
Diffstat (limited to 'did-model.lua')
-rw-r--r--did-model.lua34
1 files changed, 23 insertions, 11 deletions
diff --git a/did-model.lua b/did-model.lua
index c9256c8..1a2db96 100644
--- a/did-model.lua
+++ b/did-model.lua
@@ -236,6 +236,20 @@ local listdefinitions = function(did, identification, description, department)
return getdefinitionentries(sql)
end
+local listdefs = function(did, identification, description, department)
+ local sql = "SELECT did FROM definition"..generatewhereclause(did, nil, identification, description, department).." ORDER BY did"
+ local entries = {}
+ cur = assert (con:execute(sql))
+ row = cur:fetch ({}, "a")
+ while row do
+ entries[#entries+1] = row.did
+ row = cur:fetch (row, "a")
+ end
+ -- close everything
+ cur:close()
+ return entries
+end
+
local listexchanges = function()
local entries = {}
local sql = "SELECT substring(did from 1 for 6) AS exchange FROM definition GROUP BY exchange ORDER BY exchange"
@@ -580,6 +594,7 @@ end
local describechange = function(olddef, newdef)
local changes = {}
+ olddef = olddef or {}
for name,val in pairs(newdef) do
if name ~= "did" and name ~= "rules" and val ~= (olddef[name] or "") then
changes[#changes+1] = name.." from '"..(olddef[name] or "").."' to '"..val.."'"
@@ -688,10 +703,7 @@ function searchdefinitions(did)
local result = {}
local res, err = pcall(function()
local connected = databaseconnect(DatabaseUser)
- local list = listdefinitions("^"..stripdash(did))
- for i,d in ipairs(list) do
- result[#result+1] = adddash(d.did)
- end
+ result = listdefs(did)
if connected then databasedisconnect() end
end)
if not res then
@@ -811,7 +823,7 @@ function deletedefinition(did)
databasedisconnect()
local pw = format.parse_ini_file(fs.read_file(configfile) or "", "", "password") or ""
databaseconnect(DatabaseOwner, pw)
- local def = listdefinitions(did)
+ local def = listdefs(did)
if #def == 1 then
deletedefinitionentry(did)
result.value = "DID Number Deleted"
@@ -880,9 +892,9 @@ function publishdefinition(did)
local res, err = pcall(function()
databasedisconnect()
databaseconnect(DatabaseOwner, pw)
- local dids = listdefinitions()
+ local dids = listdefs()
for i,d in ipairs(dids) do
- if d.did == did then
+ if d == did then
local rules = getdailyentry(did)
publishrules(did, rules)
errtxt = nil
@@ -906,11 +918,11 @@ function publishalldefinitions()
local res, err = pcall(function()
databasedisconnect()
databaseconnect(DatabaseOwner, pw)
- local dids = listdefinitions()
+ local dids = listdefs()
local time = os.time()
- for i,d in ipairs(dids) do
- local rules = getdailyentry(d.did, time)
- publishrules(d.did, rules)
+ for i,did in ipairs(dids) do
+ local rules = getdailyentry(did, time)
+ publishrules(did, rules)
end
result = "Published "..#dids.." DID rules"
logme("Publishing "..#dids.." DIDs took "..os.time()-time.." seconds")