webmcp

annotate framework/env/request/get_param.lua @ 355:f60f5ee90efb

Bugfix in request.get_param{...} function regarding metadata
author jbe
date Thu Mar 26 19:29:48 2015 +0100 (2015-03-26)
parents 061ee100f1c1
children
rev   line source
jbe@214 1 --[[--
jbe@342 2 value = -- value of GET/POST parameter, or value list if multiple == true
jbe@214 3 request.get_param{
jbe@342 4 method = method, -- "GET", "POST", or nil to query both (POST has precedence)
jbe@342 5 name = name, -- field name
jbe@342 6 index = index, -- defaults to 1 to get first occurrence, only applicable if multiple == false
jbe@342 7 multiple = multiple, -- boolean to indicate whether to return a single value or a value list
jbe@342 8 meta = meta -- set to true to get metadata (table with "file_name" and "content_type")
jbe@214 9 }
jbe@214 10
jbe@214 11 Reads GET/POST parameters directly from the underlaying request.
jbe@214 12
jbe@214 13 --]]--
jbe@214 14
jbe@214 15 function request.get_param(args)
jbe@214 16 local param_list
jbe@342 17 if args.metadata then
jbe@342 18 if args.method == "GET" then
jbe@355 19 error("HTTP GET parameters do not have metadata")
jbe@355 20 elseif args.method == "POST" or not args.method then
jbe@342 21 param_list = request._http_request.post_metadata_list[args.name]
jbe@355 22 else
jbe@355 23 error("Unknown HTTP method selected")
jbe@342 24 end
jbe@342 25 else
jbe@342 26 if args.method == "GET" then
jbe@214 27 param_list = request._http_request.get_params_list[args.name]
jbe@342 28 elseif args.method == "POST" then
jbe@342 29 param_list = request._http_request.post_params_list[args.name]
jbe@342 30 elseif not args.method then
jbe@342 31 param_list = request._http_request.post_params_list[args.name]
jbe@342 32 if not param_list[args.index or 1] then
jbe@342 33 param_list = request._http_request.get_params_list[args.name]
jbe@342 34 end
jbe@355 35 else
jbe@355 36 error("Unknown HTTP method selected")
jbe@214 37 end
jbe@214 38 end
jbe@331 39 if args.multiple then
jbe@214 40 return param_list
jbe@214 41 else
jbe@342 42 return param_list[args.index or 1]
jbe@214 43 end
jbe@214 44 end
jbe@214 45
jbe@214 46 --//--

Impressum / About Us