webmcp
annotate framework/env/param/get_list.lua @ 3:795b764629ca
Version 1.0.3
Important bugfix related to internal forwards (Bug was introduced by the restriction of views with underscore prefix in Version 1.0.2)
Important bugfix related to internal forwards (Bug was introduced by the restriction of views with underscore prefix in Version 1.0.2)
author | jbe |
---|---|
date | Thu Dec 10 12:00:00 2009 +0100 (2009-12-10) |
parents | 9fdfb27f8e67 |
children | 32ec28229bb5 |
rev | line source |
---|---|
jbe/bsw@0 | 1 --[[-- |
jbe/bsw@0 | 2 values = -- list of values casted to the chosen param_type |
jbe/bsw@0 | 3 param.get_list( |
jbe/bsw@0 | 4 key, -- name of the parameter without "[]" suffix |
jbe/bsw@0 | 5 param_type, -- desired type of the returned values |
jbe/bsw@0 | 6 ) |
jbe/bsw@0 | 7 |
jbe/bsw@0 | 8 Same as param.get(...), but used for parameters which contain a list of values. For external GET/POST parameters the parameter name gets suffixed with "[]". |
jbe/bsw@0 | 9 |
jbe/bsw@0 | 10 --]]-- |
jbe/bsw@0 | 11 |
jbe/bsw@0 | 12 function param.get_list(key, param_type) |
jbe/bsw@0 | 13 local param_type = param_type or atom.string |
jbe/bsw@0 | 14 if param._exchanged then |
jbe/bsw@0 | 15 local values = param._exchanged.params[key] or {} |
jbe/bsw@0 | 16 if type(values) ~= "table" then |
jbe/bsw@0 | 17 error("Parameter has unexpected type.") |
jbe/bsw@0 | 18 end |
jbe/bsw@0 | 19 for idx, value in ipairs(values) do |
jbe/bsw@0 | 20 if not atom.has_type(value, param_type) then |
jbe/bsw@0 | 21 error("Element of parameter list has unexpected type.") |
jbe/bsw@0 | 22 end |
jbe/bsw@0 | 23 end |
jbe/bsw@0 | 24 return values |
jbe/bsw@0 | 25 else |
jbe/bsw@0 | 26 local format_info = cgi.params[key .. "__format"] |
jbe/bsw@0 | 27 local parser = param._get_parser(format_info, param_type) |
jbe/bsw@0 | 28 local raw_values = cgi.params[key .. "[]"] |
jbe/bsw@0 | 29 local values = {} |
jbe/bsw@0 | 30 if raw_values then |
jbe/bsw@0 | 31 for idx, value in ipairs(raw_values) do |
jbe/bsw@0 | 32 values[idx] = parser(raw_values[idx]) |
jbe/bsw@0 | 33 end |
jbe/bsw@0 | 34 end |
jbe/bsw@0 | 35 return values |
jbe/bsw@0 | 36 end |
jbe/bsw@0 | 37 end |