From 9af89b04dc6108bed6a5cc60866f8416821b9467 Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Mon, 5 Jul 2021 09:51:58 +0200 Subject: [PATCH] Fixed project invitation updates --- mongodbatlas/project_invitations.go | 22 ++++++++++------------ mongodbatlas/project_invitations_test.go | 4 ++-- mongodbatlas/projects.go | 4 ++-- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/mongodbatlas/project_invitations.go b/mongodbatlas/project_invitations.go index 389a67225..226e070f9 100644 --- a/mongodbatlas/project_invitations.go +++ b/mongodbatlas/project_invitations.go @@ -104,19 +104,19 @@ func (s *ProjectsServiceOp) InviteUser(ctx context.Context, invitation *Invitati // UpdateInvitation updates one pending invitation to the Atlas project that you specify. // // See more: https://docs.atlas.mongodb.com/reference/api/project-update-one-invitation/ -func (s *ProjectsServiceOp) UpdateInvitation(ctx context.Context, invitation *Invitation) (*Invitation, *Response, error) { - if invitation.GroupID == "" { +func (s *ProjectsServiceOp) UpdateInvitation(ctx context.Context, groupID string, invitation *Invitation) (*Invitation, *Response, error) { + if groupID == "" { return nil, nil, NewArgError("groupID", "must be set") } - return s.updateInvitation(ctx, invitation) + return s.updateInvitation(ctx, groupID, "", invitation) } // UpdateInvitationByID updates one invitation to the Atlas project. // // See more: https://docs.atlas.mongodb.com/reference/api/project-update-one-invitation-by-id/ -func (s *ProjectsServiceOp) UpdateInvitationByID(ctx context.Context, invitationID string, invitation *Invitation) (*Invitation, *Response, error) { - if invitation.GroupID == "" { +func (s *ProjectsServiceOp) UpdateInvitationByID(ctx context.Context, groupID, invitationID string, invitation *Invitation) (*Invitation, *Response, error) { + if groupID == "" { return nil, nil, NewArgError("groupID", "must be set") } @@ -124,9 +124,7 @@ func (s *ProjectsServiceOp) UpdateInvitationByID(ctx context.Context, invitation return nil, nil, NewArgError("invitationID", "must be set") } - invitation.ID = invitationID - - return s.updateInvitation(ctx, invitation) + return s.updateInvitation(ctx, groupID, invitationID, invitation) } // DeleteInvitation deletes one unaccepted invitation to the specified Atlas project. You can't delete an invitation that a user has accepted. @@ -154,11 +152,11 @@ func (s *ProjectsServiceOp) DeleteInvitation(ctx context.Context, groupID, invit return resp, err } -func (s *ProjectsServiceOp) updateInvitation(ctx context.Context, invitation *Invitation) (*Invitation, *Response, error) { - path := fmt.Sprintf(projectInvitationBasePath, invitation.GroupID) +func (s *ProjectsServiceOp) updateInvitation(ctx context.Context, groupID, invitationID string, invitation *Invitation) (*Invitation, *Response, error) { + path := fmt.Sprintf(projectInvitationBasePath, groupID) - if invitation.ID != "" { - path = fmt.Sprintf("%s/%s", path, invitation.ID) + if invitationID != "" { + path = fmt.Sprintf("%s/%s", path, invitationID) } req, err := s.Client.NewRequest(ctx, http.MethodPatch, path, invitation) diff --git a/mongodbatlas/project_invitations_test.go b/mongodbatlas/project_invitations_test.go index b1aa21832..d924dba06 100644 --- a/mongodbatlas/project_invitations_test.go +++ b/mongodbatlas/project_invitations_test.go @@ -209,7 +209,7 @@ func TestProjects_UpdateInvitation(t *testing.T) { Roles: []string{"ORG_OWNER"}, } - invitation, _, err := client.Projects.UpdateInvitation(ctx, body) + invitation, _, err := client.Projects.UpdateInvitation(ctx, groupID, body) if err != nil { t.Fatalf("Projects.UpdateInvitation returned error: %v", err) } @@ -261,7 +261,7 @@ func TestProjects_UpdateInvitationByID(t *testing.T) { Roles: []string{"ORG_OWNER"}, } - invitation, _, err := client.Projects.UpdateInvitationByID(ctx, invitationID, body) + invitation, _, err := client.Projects.UpdateInvitationByID(ctx, groupID, invitationID, body) if err != nil { t.Fatalf("Projects.UpdateInvitationByID returned error: %v", err) } diff --git a/mongodbatlas/projects.go b/mongodbatlas/projects.go index bbd9e9481..49ad404b0 100644 --- a/mongodbatlas/projects.go +++ b/mongodbatlas/projects.go @@ -50,8 +50,8 @@ type ProjectsService interface { Invitations(context.Context, string, *InvitationOptions) ([]*Invitation, *Response, error) Invitation(context.Context, string, string) (*Invitation, *Response, error) InviteUser(context.Context, *Invitation) (*Invitation, *Response, error) - UpdateInvitation(context.Context, *Invitation) (*Invitation, *Response, error) - UpdateInvitationByID(context.Context, string, *Invitation) (*Invitation, *Response, error) + UpdateInvitation(context.Context, string, *Invitation) (*Invitation, *Response, error) + UpdateInvitationByID(context.Context, string, string, *Invitation) (*Invitation, *Response, error) DeleteInvitation(context.Context, string, string) (*Response, error) }