1 - triagedhelp wantednice-to-have (low-prio)t:routing
Métriques du dépôt
- Stars
- (1 311 stars)
- Métriques de merge PR
- (Merge moyen 1h 17m) (1 PR mergée en 30 j)
Description
The trait ParamsSpec could also contain the following:
def name: String
being name the requested query parameter field name. This would be very useful for us because we want to override the parameter directive adding some extra action (adding an attribute to the HttpRequest to keep track of consumed query parameters):
private val atKey: AttributeKey[Set[String]] = AttributeKey("allowed-query-params")
private def trackQueryParam(name: String): Directive0 =
optionalAttribute(atKey).flatMap { paramsOpt =>
mapRequest(addAttribute(atKey, paramsOpt.fold(Set(name))(_ + name)))
}
def param(pdef1: ParamSpec): Directive[Tuple1[pdef1.Out]] =
Directives.parameter(pdef1.name) & trackQueryParam(pdef1.name)
Since the field name is not currently accessible from ParamSpec we have to do some ugly work around to make that work currently.