fix: use the same schema encoder everywhere (#299)
properly register SpaceDelimitedArray for all instances of schema.Encoder inside the oidc framework. Closes #295
This commit is contained in:
parent
fc1a80d274
commit
4dca29f1f9
5 changed files with 33 additions and 13 deletions
|
@ -4,9 +4,11 @@ import (
|
|||
"database/sql/driver"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/gorilla/schema"
|
||||
"golang.org/x/text/language"
|
||||
"gopkg.in/square/go-jose.v2"
|
||||
)
|
||||
|
@ -125,6 +127,16 @@ func (s SpaceDelimitedArray) Value() (driver.Value, error) {
|
|||
return strings.Join(s, " "), nil
|
||||
}
|
||||
|
||||
// NewEncoder returns a schema Encoder with
|
||||
// a registered encoder for SpaceDelimitedArray.
|
||||
func NewEncoder() *schema.Encoder {
|
||||
e := schema.NewEncoder()
|
||||
e.RegisterEncoder(SpaceDelimitedArray{}, func(value reflect.Value) string {
|
||||
return value.Interface().(SpaceDelimitedArray).Encode()
|
||||
})
|
||||
return e
|
||||
}
|
||||
|
||||
type Time time.Time
|
||||
|
||||
func (t *Time) UnmarshalJSON(data []byte) error {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue