forked from go-auth0/auth0
/
client_grant.go
65 lines (51 loc) · 1.36 KB
/
client_grant.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package management
import (
"encoding/json"
"gopkg.in/auth0.v1"
)
type ClientGrant struct {
// A generated string identifying the client grant.
ID *string `json:"id,omitempty"`
// The identifier of the client.
ClientID *string `json:"client_id,omitempty"`
// The audience.
Audience *string `json:"audience,omitempty"`
Scope []interface{} `json:"scope"`
}
func (c *ClientGrant) String() string {
b, _ := json.MarshalIndent(c, "", " ")
return string(b)
}
type ClientGrantManager struct {
m *Management
}
func NewClientGrantManager(m *Management) *ClientGrantManager {
return &ClientGrantManager{m}
}
func (cg *ClientGrantManager) Create(g *ClientGrant) (err error) {
return cg.m.post(cg.m.uri("client-grants"), g)
}
func (cg *ClientGrantManager) Read(id string) (*ClientGrant, error) {
var gs []*ClientGrant
err := cg.m.get(cg.m.uri("client-grants"), &gs)
if err != nil {
return nil, err
}
for _, g := range gs {
gid := auth0.StringValue(g.ID)
if gid == id {
return g, nil
}
}
return nil, &managementError{
StatusCode: 404,
Err: "Not Found",
Message: "Client grant not found",
}
}
func (cg *ClientGrantManager) Update(id string, g *ClientGrant) (err error) {
return cg.m.patch(cg.m.uri("client-grants", id), g)
}
func (cg *ClientGrantManager) Delete(id string) (err error) {
return cg.m.delete(cg.m.uri("client-grants", id))
}