summaryrefslogtreecommitdiffstats
path: root/acf/transaction/init.lua
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-03-07 07:14:03 +0000
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-03-07 12:42:24 +0000
commitf272cb4c51cb2bb3752269faf431bcf4bfbc0686 (patch)
tree4183714fffacb78cd451ebd051d7321a368c128b /acf/transaction/init.lua
parent7df3e9fa87497bc65b454dca79f6f4fc133fd24b (diff)
downloadacf2-f272cb4c51cb2bb3752269faf431bcf4bfbc0686.tar.bz2
acf2-f272cb4c51cb2bb3752269faf431bcf4bfbc0686.tar.xz
forward relevant error messages to client
Diffstat (limited to 'acf/transaction/init.lua')
-rw-r--r--acf/transaction/init.lua7
1 files changed, 5 insertions, 2 deletions
diff --git a/acf/transaction/init.lua b/acf/transaction/init.lua
index 7f2f6b9..99b8b9d 100644
--- a/acf/transaction/init.lua
+++ b/acf/transaction/init.lua
@@ -1,10 +1,11 @@
--[[
-Copyright (c) 2012 Kaarle Ritvanen
+Copyright (c) 2012-2013 Kaarle Ritvanen
See LICENSE file for license details
--]]
module(..., package.seeall)
+local ErrorDict = require('acf.error').ErrorDict
local RootModel = require('acf.model').RootModel
local object = require('acf.object')
local super = object.super
@@ -121,7 +122,9 @@ function Transaction:search(path) return self.root:search(pth.split(path)) end
function Transaction:commit()
self:check()
- for _, func in pairs(self.validate) do func() end
+ local errors = ErrorDict()
+ for path, func in pairs(self.validate) do errors:collect(func) end
+ errors:raise()
local mods = {}
local handled = {}