webmcp

diff framework/env/request/get_param_strings.lua @ 222:38e5399718ca

Use request.get_param{...} and request.get_param_strings{...} functions in request.process()
author jbe
date Fri Feb 27 17:18:08 2015 +0100 (2015-02-27)
parents 25a20bd1f416
children 8f028a0aa114
line diff
     1.1 --- a/framework/env/request/get_param_strings.lua	Wed Feb 25 01:33:27 2015 +0100
     1.2 +++ b/framework/env/request/get_param_strings.lua	Fri Feb 27 17:18:08 2015 +0100
     1.3 @@ -1,14 +1,17 @@
     1.4  --[[--
     1.5  params =
     1.6 -request.get_param_strings()
     1.7 +request.get_param_strings{
     1.8 +  method           = method            -- "GET", "POST", or nil to query both (POST has precedence)
     1.9 +  include_internal = include_internal  -- set to true to include also parameters starting with "_webmcp_" prefix
    1.10 +}
    1.11  
    1.12  This function returns a table with all raw GET/POST parameters as strings or list of strings (except internal parameters like "_webmcp_path" or "_webmcp_id"). Modifications of the returned table have no side effects.
    1.13  
    1.14  --]]--
    1.15  
    1.16 -local function merge_params(tbl, params_list)
    1.17 +local function merge_params(include, tbl, params_list)
    1.18    for key, values in pairs(tbl) do
    1.19 -    if string.match(key, "^_webmcp_") then
    1.20 +    if not include and string.match(key, "^_webmcp_") then
    1.21        -- do nothing
    1.22      elseif string.match(key, "%[%]$") then
    1.23        tbl[key] = table.new(values)
    1.24 @@ -18,9 +21,23 @@
    1.25    end
    1.26  end
    1.27  
    1.28 -function request.get_param_strings()
    1.29 +function request.get_param_strings(args)
    1.30 +  local method = nil
    1.31 +  local include = false
    1.32 +  if args then
    1.33 +    method  = args.method
    1.34 +    include = args.include
    1.35 +  end
    1.36    local t = {}
    1.37 -  merge_params(t, request._http_request.get_params_list)
    1.38 -  merge_params(t, request._http_request.post_params_list)
    1.39 +  if not method then
    1.40 +    merge_params(t, request._http_request.get_params_list, include)
    1.41 +    merge_params(t, request._http_request.post_params_list, include)
    1.42 +  elseif method == "GET" then
    1.43 +    merge_params(t, request._http_request.get_params_list, include)
    1.44 +  elseif method == "POST" then
    1.45 +    merge_params(t, request._http_request.post_params_list, include)
    1.46 +  else
    1.47 +    error("Invalid method passed to request.get_param_strings{...}")
    1.48 +  end
    1.49    return t
    1.50  end

Impressum / About Us