-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathsvc_teamuser.go
97 lines (77 loc) · 3.29 KB
/
svc_teamuser.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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package lokalise
import (
"fmt"
)
type TeamUserService struct {
BaseService
}
// ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
// Service entity objects
// _____________________________________________________________________________________________________________________
// noinspection GoUnusedConst
const (
TeamUserRoleOwner TeamUserRole = "owner"
TeamUserRoleAdmin TeamUserRole = "admin"
TeamUserRoleMember TeamUserRole = "member"
)
type TeamUserRole string
type TeamUser struct {
WithCreationTime
WithUserID
Email string `json:"email"`
Fullname string `json:"fullname"`
Role TeamUserRole `json:"role"`
}
// ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
// Service request/response objects
// _____________________________________________________________________________________________________________________
type TeamUserResponse struct {
WithTeamID
TeamUser TeamUser `json:"team_user"`
}
type DeleteTeamUserResponse struct {
WithTeamID
Deleted bool `json:"team_user_deleted"`
}
type TeamUsersResponse struct {
Paged
WithTeamID
TeamUsers []TeamUser `json:"team_users"`
}
// ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
// Service methods
// _____________________________________________________________________________________________________________________
func (c *TeamUserService) List(teamID int64) (r TeamUsersResponse, err error) {
resp, err := c.getWithOptions(c.Ctx(), pathTeamUsers(teamID), &r, c.PageOpts())
if err != nil {
return
}
applyPaged(resp, &r.Paged)
return r, apiError(resp)
}
func (c *TeamUserService) Retrieve(teamID, userID int64) (res TeamUserResponse, err error) {
resp, err := c.get(c.Ctx(), fmt.Sprintf("%s/%d", pathTeamUsers(teamID), userID), &res)
if err != nil {
return
}
return res, apiError(resp)
}
func (c *TeamUserService) UpdateRole(teamID, userID int64, role TeamUserRole) (r TeamUserResponse, err error) {
resp, err := c.put(c.Ctx(), fmt.Sprintf("%s/%d", pathTeamUsers(teamID), userID), &r, map[string]interface{}{
"role": role,
})
if err != nil {
return
}
return r, apiError(resp)
}
func (c *TeamUserService) Delete(teamID, userID int64) (r DeleteTeamUserResponse, err error) {
resp, err := c.delete(c.Ctx(), fmt.Sprintf("%s/%d", pathTeamUsers(teamID), userID), &r)
if err != nil {
return
}
return r, apiError(resp)
}
func pathTeamUsers(teamID int64) string {
return fmt.Sprintf("%s/%d/users", pathTeams, teamID)
}