main
 1package dto
 2
 3import (
 4	"bytes"
 5	"encoding/json"
 6)
 7
 8type TokenEndpointAuthMethod int
 9
10const (
11	None TokenEndpointAuthMethod = iota
12	ClientSecretPost
13	ClientSecretBasic
14)
15
16var toString = map[TokenEndpointAuthMethod]string{
17	None:              "none",
18	ClientSecretPost:  "client_secret_post",
19	ClientSecretBasic: "client_secret_basic",
20}
21
22var toID = map[string]TokenEndpointAuthMethod{
23	"none":                None,
24	"client_secret_post":  ClientSecretPost,
25	"client_secret_basic": ClientSecretBasic,
26}
27
28func (x TokenEndpointAuthMethod) MarshalJSON() ([]byte, error) {
29	buffer := bytes.NewBufferString(`"`)
30	buffer.WriteString(toString[x])
31	buffer.WriteString(`"`)
32	return buffer.Bytes(), nil
33}
34
35func (x *TokenEndpointAuthMethod) UnmarshalJSON(b []byte) error {
36	var val string
37	if err := json.Unmarshal(b, &val); err != nil {
38		return err
39	}
40	*x = toID[val]
41	return nil
42}
43
44func (x TokenEndpointAuthMethod) String() string {
45	return toString[x]
46}