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}