getParamValue extracts the requested parameter from the relevant context or cookie source. If unset, the function returns the default value for this parameter.
(p paramFieldInfo, ctx Context, cookies map[string]*http.Cookie)
| 1659 | // context or cookie source. If unset, the function returns the default value |
| 1660 | // for this parameter. |
| 1661 | func getParamValue(p paramFieldInfo, ctx Context, cookies map[string]*http.Cookie) string { |
| 1662 | var value string |
| 1663 | switch p.Loc { |
| 1664 | case "path": |
| 1665 | value = ctx.Param(p.Name) |
| 1666 | case "query": |
| 1667 | value = ctx.Query(p.Name) |
| 1668 | case "header": |
| 1669 | value = ctx.Header(p.Name) |
| 1670 | case "cookie": |
| 1671 | if c, ok := cookies[p.Name]; ok { |
| 1672 | value = c.Value |
| 1673 | } |
| 1674 | } |
| 1675 | if value == "" { |
| 1676 | value = p.Default |
| 1677 | } |
| 1678 | return value |
| 1679 | } |
| 1680 | |
| 1681 | var errUnparsable = errors.New("unparsable value") |
| 1682 |