Skip to content
This repository was archived by the owner on Dec 10, 2024. It is now read-only.

Commit 99ab72b

Browse files
committed
Make the code match the rest of the package
1 parent 9d247d2 commit 99ab72b

4 files changed

Lines changed: 63 additions & 44 deletions

File tree

member_roles.go

Lines changed: 53 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55
"net/http"
66
)
77

8-
// MemberRolesService handles communication with the member roles related methods of
9-
// the GitLab API.
8+
// MemberRolesService handles communication with the member roles related
9+
// methods of the GitLab API.
1010
//
1111
// GitLab API docs: https://docs.gitlab.com/ee/api/member_roles.html
1212
type MemberRolesService struct {
@@ -30,64 +30,83 @@ type MemberRole struct {
3030
ManageProjectAccessToken bool `json:"manage_project_access_token,omitempty"`
3131
}
3232

33-
// CreateMemberRoleOptions represents the available CreateMemberRole() options.
34-
//
35-
// GitLab API docs: https://docs.gitlab.com/ee/api/member_roles.html#add-a-member-role-to-a-group
36-
type CreateMemberRoleOptions struct {
37-
Name string `json:"name,"`
38-
BaseAccessLevel AccessLevelValue `json:"base_access_level"`
39-
Description string `json:"description,omitempty"`
40-
AdminMergeRequest bool `json:"admin_merge_request,omitempty"`
41-
AdminVulnerability bool `json:"admin_vulnerability,omitempty"`
42-
ReadCode bool `json:"read_code,omitempty"`
43-
ReadDependency bool `json:"read_dependency,omitempty"`
44-
ReadVulnerability bool `json:"read_vulnerability,omitempty"`
45-
}
46-
4733
// ListMemberRoles gets a list of member roles for a specified group.
4834
//
49-
// Gitlab API docs: https://docs.gitlab.com/ee/api/member_roles.html#list-all-member-roles-of-a-group
50-
func (s *MemberRolesService) ListMemberRoles(groupId int, options ...RequestOptionFunc) ([]*MemberRole, *Response, error) {
51-
path := fmt.Sprintf("groups/%d/member_roles", groupId)
52-
req, err := s.client.NewRequest(http.MethodGet, path, nil, options)
35+
// Gitlab API docs:
36+
// https://docs.gitlab.com/ee/api/member_roles.html#list-all-member-roles-of-a-group
37+
func (s *MemberRolesService) ListMemberRoles(gid interface{}, options ...RequestOptionFunc) ([]*MemberRole, *Response, error) {
38+
group, err := parseID(gid)
5339
if err != nil {
5440
return nil, nil, err
5541
}
42+
u := fmt.Sprintf("groups/%s/member_roles", PathEscape(group))
5643

57-
var memberRoles []*MemberRole
58-
resp, err := s.client.Do(req, &memberRoles)
44+
req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
45+
if err != nil {
46+
return nil, nil, err
47+
}
48+
49+
var mrs []*MemberRole
50+
resp, err := s.client.Do(req, &mrs)
5951
if err != nil {
6052
return nil, resp, err
6153
}
6254

63-
return memberRoles, resp, nil
55+
return mrs, resp, nil
56+
}
57+
58+
// CreateMemberRoleOptions represents the available CreateMemberRole() options.
59+
//
60+
// GitLab API docs:
61+
// https://docs.gitlab.com/ee/api/member_roles.html#add-a-member-role-to-a-group
62+
type CreateMemberRoleOptions struct {
63+
Name *string `url:"name,omitempty" json:"name,omitempty"`
64+
BaseAccessLevel *AccessLevelValue `url:"base_access_level,omitempty" json:"base_access_level,omitempty"`
65+
Description *string `url:"description,omitempty" json:"description,omitempty"`
66+
AdminMergeRequest *bool `url:"admin_merge_request,omitempty" json:"admin_merge_request,omitempty"`
67+
AdminVulnerability *bool `url:"admin_vulnerability,omitempty" json:"admin_vulnerability,omitempty"`
68+
ReadCode *bool `url:"read_code,omitempty" json:"read_code,omitempty"`
69+
ReadDependency *bool `url:"read_dependency,omitempty" json:"read_dependency,omitempty"`
70+
ReadVulnerability *bool `url:"read_vulnerability,omitempty" json:"read_vulnerability,omitempty"`
6471
}
6572

6673
// CreateMemberRole creates a new member role for a specified group.
6774
//
68-
// Gitlab API docs: https://docs.gitlab.com/ee/api/member_roles.html#add-a-member-role-to-a-group
69-
func (s *MemberRolesService) CreateMemberRole(groupId int, opt *CreateMemberRoleOptions, options ...RequestOptionFunc) (*MemberRole, *Response, error) {
70-
path := fmt.Sprintf("groups/%d/member_roles", groupId)
71-
req, err := s.client.NewRequest(http.MethodPost, path, opt, options)
75+
// Gitlab API docs:
76+
// https://docs.gitlab.com/ee/api/member_roles.html#add-a-member-role-to-a-group
77+
func (s *MemberRolesService) CreateMemberRole(gid interface{}, opt *CreateMemberRoleOptions, options ...RequestOptionFunc) (*MemberRole, *Response, error) {
78+
group, err := parseID(gid)
7279
if err != nil {
7380
return nil, nil, err
7481
}
82+
u := fmt.Sprintf("groups/%s/member_roles", PathEscape(group))
7583

76-
memberRole := new(MemberRole)
77-
resp, err := s.client.Do(req, memberRole)
84+
req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
85+
if err != nil {
86+
return nil, nil, err
87+
}
88+
89+
mr := new(MemberRole)
90+
resp, err := s.client.Do(req, mr)
7891
if err != nil {
7992
return nil, resp, err
8093
}
8194

82-
return memberRole, resp, nil
95+
return mr, resp, nil
8396
}
8497

8598
// DeleteMemberRole deletes a member role from a specified group.
8699
//
87-
// Gitlab API docs: https://docs.gitlab.com/ee/api/member_roles.html#remove-member-role-of-a-group
88-
func (s *MemberRolesService) DeleteMemberRole(groupId, memberRoleId int, options ...RequestOptionFunc) (*Response, error) {
89-
path := fmt.Sprintf("groups/%d/member_roles/%d", groupId, memberRoleId)
90-
req, err := s.client.NewRequest(http.MethodDelete, path, nil, options)
100+
// Gitlab API docs:
101+
// https://docs.gitlab.com/ee/api/member_roles.html#remove-member-role-of-a-group
102+
func (s *MemberRolesService) DeleteMemberRole(gid interface{}, memberRole int, options ...RequestOptionFunc) (*Response, error) {
103+
group, err := parseID(gid)
104+
if err != nil {
105+
return nil, err
106+
}
107+
u := fmt.Sprintf("groups/%s/member_roles/%d", PathEscape(group), memberRole)
108+
109+
req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
91110
if err != nil {
92111
return nil, err
93112
}

member_roles_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,14 @@ func TestCreateMemberRole(t *testing.T) {
6363
})
6464

6565
memberRole, _, err := client.MemberRolesService.CreateMemberRole(84, &CreateMemberRoleOptions{
66-
Name: "Custom guest",
67-
BaseAccessLevel: GuestPermissions,
68-
Description: "a sample custom role",
69-
AdminMergeRequest: false,
70-
AdminVulnerability: false,
71-
ReadCode: true,
72-
ReadDependency: false,
73-
ReadVulnerability: false,
66+
Name: Ptr("Custom guest"),
67+
BaseAccessLevel: Ptr(GuestPermissions),
68+
Description: Ptr("a sample custom role"),
69+
AdminMergeRequest: Ptr(false),
70+
AdminVulnerability: Ptr(false),
71+
ReadCode: Ptr(true),
72+
ReadDependency: Ptr(false),
73+
ReadVulnerability: Ptr(false),
7474
})
7575
require.NoError(t, err)
7676

testdata/create_member_role.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@
99
"read_code": true,
1010
"read_dependency": false,
1111
"read_vulnerability": false
12-
}
12+
}

testdata/list_member_roles.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@
2525
"read_vulnerability": true,
2626
"manage_project_access_token": false
2727
}
28-
]
28+
]

0 commit comments

Comments
 (0)