Merge pull request #466 from elotreum/routeparam-enhancement

add helper method to retrieve RouteParam by name
This commit is contained in:
mrd0ll4r 2020-01-22 22:28:52 +01:00 committed by GitHub
commit e6e72698b9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -70,6 +70,21 @@ type RouteParam struct {
// RouteParams is a collection of RouteParam instances.
type RouteParams []RouteParam
// ByName returns the value of the first RouteParam that matches the given
// name. If no matching RouteParam is found, an empty string is returned.
// In the event that a "catch-all" parameter is provided on the route and
// no value is matched, an empty string is returned. For example: a route of
// "/announce/*param" matches on "/announce/". However, ByName("param") will
// return an empty string.
func (rp RouteParams) ByName(name string) string {
for _, p := range rp {
if p.Key == name {
return p.Value
}
}
return ""
}
// ParseURLData parses a request URL or UDP URLData as defined in BEP41.
// It expects a concatenated string of the request's path and query parts as
// defined in RFC 3986. As both the udp: and http: scheme used by BitTorrent