fix: parse max_age and prompt correctly (and change scope type)

This commit is contained in:
Livio Amstutz 2021-06-14 11:18:28 +02:00
parent 3e336a4075
commit 9721fc8882
16 changed files with 98 additions and 85 deletions

View file

@ -54,30 +54,36 @@ func (l *Locales) UnmarshalText(text []byte) error {
return nil
}
type Prompt string
type MaxAge *uint
func NewMaxAge(i uint) MaxAge {
return &i
}
type SpaceDelimitedArray []string
type Prompt SpaceDelimitedArray
type ResponseType string
type Scopes []string
func (s Scopes) Encode() string {
func (s SpaceDelimitedArray) Encode() string {
return strings.Join(s, " ")
}
func (s *Scopes) UnmarshalText(text []byte) error {
func (s *SpaceDelimitedArray) UnmarshalText(text []byte) error {
*s = strings.Split(string(text), " ")
return nil
}
func (s *Scopes) MarshalText() ([]byte, error) {
func (s SpaceDelimitedArray) MarshalText() ([]byte, error) {
return []byte(s.Encode()), nil
}
func (s *Scopes) MarshalJSON() ([]byte, error) {
return json.Marshal((*s).Encode())
func (s SpaceDelimitedArray) MarshalJSON() ([]byte, error) {
return json.Marshal((s).Encode())
}
func (s *Scopes) UnmarshalJSON(data []byte) error {
func (s *SpaceDelimitedArray) UnmarshalJSON(data []byte) error {
var str string
if err := json.Unmarshal(data, &str); err != nil {
return err