webmcp

annotate framework/env/param/get_id.lua @ 91:2f8d8edd1836

URL parsing inside WebMCP to simplify webserver configuration
author jbe
date Wed Oct 10 17:41:46 2012 +0200 (2012-10-10)
parents 9fdfb27f8e67
children eeea5b7f31d4
rev   line source
jbe/bsw@0 1 --[[--
jbe/bsw@0 2 value = -- value of the id casted to the chosen param_type
jbe/bsw@0 3 param.get_id(
jbe/bsw@0 4 param_type -- desired type of the returned value
jbe/bsw@0 5 )
jbe/bsw@0 6
jbe/bsw@0 7 Same as param.get(...), but operates on a special id parameter. An id is set via a __webmcp_id GET or POST parameter or an 'id' option to execute.view{...} or execute.action{...}. In a normal setup a beauty URL of the form http://www.example.com/example-application/example-module/example-view/<id>.html will cause the id to be set.
jbe/bsw@0 8
jbe/bsw@0 9 --]]--
jbe/bsw@0 10
jbe/bsw@0 11 function param.get_id(param_type)
jbe/bsw@0 12 local param_type = param_type or atom.integer
jbe/bsw@0 13 if param._exchanged then
jbe/bsw@0 14 local value = param._exchanged.id
jbe/bsw@0 15 if value ~= nil and not atom.has_type(value, param_type) then
jbe/bsw@0 16 error("Parameter has unexpected type.")
jbe/bsw@0 17 end
jbe/bsw@0 18 return value
jbe/bsw@0 19 else
jbe@91 20 local str = request.get_id()
jbe@91 21 if str then
jbe@91 22 return param._get_parser(nil, param_type)(str)
jbe@91 23 else
jbe@91 24 return nil
jbe@91 25 end
jbe/bsw@0 26 end
jbe/bsw@0 27 end

Impressum / About Us