webmcp
annotate framework/env/request/get_param.lua @ 483:5b0066fd326e
Removed termination handling from WebMCP (to be done by moonbridge_io if needed)
| author | jbe | 
|---|---|
| date | Sun Jun 11 01:32:25 2017 +0200 (2017-06-11) | 
| parents | f60f5ee90efb | 
| 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 --//-- |