krystal/go-katapult

View on GitHub
core/queryable.go

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
package core

import "net/url"

type queryable interface {
    queryValues() *url.Values
}

func queryValues(objs ...queryable) *url.Values {
    merged := &url.Values{}

    for _, obj := range objs {
        if obj == nil {
            continue
        }

        urlVals := *obj.queryValues()
        for k, vals := range urlVals {
            for _, v := range vals {
                merged.Add(k, v)
            }
        }
    }

    return merged
}