Skip to content

Commit

Permalink
Implement List and Cancel for RoleEligibilityScheduleRequestClient
Browse files Browse the repository at this point in the history
  • Loading branch information
JonasBak committed May 11, 2023
1 parent 71be941 commit 3d28a4e
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 16 deletions.
14 changes: 7 additions & 7 deletions msgraph/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -1383,9 +1383,9 @@ type SamlSingleSignOnSettings struct {
RelayState *string `json:"relayState,omitempty"`
}

type ScheduleInfo struct {
StartDateTime time.Time `json:"startDateTime"`
Expiration ExpirationPattern `json:"expiration"`
type RequestSchedule struct {
StartDateTime *time.Time `json:"startDateTime,omitempty"`
Expiration *ExpirationPattern `json:"expiration,omitempty"`
}

type SchemaExtension struct {
Expand Down Expand Up @@ -1664,8 +1664,8 @@ type TemporaryAccessPassAuthenticationMethod struct {
}

type TicketInfo struct {
TicketNumber string `json:"ticketNumber"`
TicketSystem string `json:"ticketSystem"`
TicketNumber *string `json:"ticketNumber,omitempty"`
TicketSystem *string `json:"ticketSystem,omitempty"`
}

type TokenIssuancePolicy struct {
Expand Down Expand Up @@ -1704,13 +1704,13 @@ type UnifiedRoleEligibilityScheduleRequest struct {
AppScopeID *string `json:"appScopeId,omitempty"`
ApprovalID *string `json:"approvalId,omitempty"`
CompletedDateTime *time.Time `json:"completedDateTime,omitempty"`
CreatedDateTime *time.Time `json:"completedDateTime,omitempty"`
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
DirectoryScopeId *string `json:"directoryScopeId,omitempty"`
IsValidationOnly *bool `json:"isValidationOnly,omitempty"`
Justification *string `json:"justification,omitempty"`
PrincipalId *string `json:"principalId,omitempty"`
RoleDefinitionId *string `json:"roleDefinitionId,omitempty"`
ScheduleInfo *ScheduleInfo `json:"scheduleInfo,omitempty"`
ScheduleInfo *RequestSchedule `json:"scheduleInfo,omitempty"`
Status *string `json:"status,omitempty"`
TargetScheduleID *string `json:"targetScheduleId,omitempty"`
TicketInfo *TicketInfo `json:"ticketInfo,omitempty"`
Expand Down
56 changes: 50 additions & 6 deletions msgraph/role_eligibility_schedule_request.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,40 @@ func (c *RoleEligibilityScheduleRequestClient) Get(ctx context.Context, id strin
return nil, status, fmt.Errorf("io.ReadAll(): %v", err)
}

var dirRole UnifiedRoleEligibilityScheduleRequest
if err := json.Unmarshal(respBody, &dirRole); err != nil {
var roleEligibilityScheduleRequest UnifiedRoleEligibilityScheduleRequest
if err := json.Unmarshal(respBody, &roleEligibilityScheduleRequest); err != nil {
return nil, status, fmt.Errorf("json.Unmarshal(): %v", err)
}

return &dirRole, status, nil
return &roleEligibilityScheduleRequest, status, nil
}

// List retrieves all UnifiedRoleEligibilityScheduleRequests.
func (c *RoleEligibilityScheduleRequestClient) List(ctx context.Context) (*[]UnifiedRoleEligibilityScheduleRequest, int, error) {
var status int

resp, status, _, err := c.BaseClient.Get(ctx, GetHttpRequestInput{
ValidStatusCodes: []int{http.StatusOK},
Uri: Uri{
Entity: "/roleManagement/directory/roleEligibilityScheduleRequests",
},
})
if err != nil {
return nil, status, fmt.Errorf("RoleEligibilityScheduleRequestClient.BaseClient.Get(): %v", err)
}

defer resp.Body.Close()
respBody, err := io.ReadAll(resp.Body)
if err != nil {
return nil, status, fmt.Errorf("io.ReadAll(): %v", err)
}

var roleEligibilityScheduleRequests []UnifiedRoleEligibilityScheduleRequest
if err := json.Unmarshal(respBody, &roleEligibilityScheduleRequests); err != nil {
return nil, status, fmt.Errorf("json.Unmarshal(): %v", err)
}

return &roleEligibilityScheduleRequests, status, nil
}

// Create creates a new UnifiedRoleEligibilityScheduleRequest.
Expand Down Expand Up @@ -79,12 +107,12 @@ func (c *RoleEligibilityScheduleRequestClient) Create(ctx context.Context, resr
return nil, status, fmt.Errorf("io.ReadAll(): %v", err)
}

var newRoleAssignment UnifiedRoleEligibilityScheduleRequest
if err := json.Unmarshal(respBody, &newRoleAssignment); err != nil {
var newEligibilityScheduleRequest UnifiedRoleEligibilityScheduleRequest
if err := json.Unmarshal(respBody, &newEligibilityScheduleRequest); err != nil {
return nil, status, fmt.Errorf("json.Unmarshal(): %v", err)
}

return &newRoleAssignment, status, nil
return &newEligibilityScheduleRequest, status, nil
}

// Delete removes a UnifiedRoleEligibilityScheduleRequest.
Expand Down Expand Up @@ -116,3 +144,19 @@ func (c *RoleEligibilityScheduleRequestClient) Delete(ctx context.Context, id st

return status, nil
}

// Cancel revokes a granted UnifiedRoleEligibilityScheduleRequest
func (c *RoleEligibilityScheduleRequestClient) Cancel(ctx context.Context, id string, query odata.Query) (int, error) {
_, status, _, err := c.BaseClient.Post(ctx, PostHttpRequestInput{
OData: query,
ValidStatusCodes: []int{http.StatusNoContent},
Uri: Uri{
Entity: fmt.Sprintf("/roleManagement/directory/roleEligibilityScheduleRequests/%s/cancel", id),
},
})
if err != nil {
return status, fmt.Errorf("RoleEligibilityScheduleRequestClient.BaseClient.Post(): %v", err)
}

return status, nil
}
8 changes: 5 additions & 3 deletions msgraph/role_eligibility_schedule_request_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,16 @@ func TestRoleEligibilityScheduleRequestClient(t *testing.T) {
Version: utils.StringPtr("1.5"),
})

now := time.Now()

roleEligibilityScheduleRequest := testRoleEligibilityScheduleRequestClient_Create(t, c, msgraph.UnifiedRoleEligibilityScheduleRequest{
RoleDefinitionId: roleDefinition.ID(),
PrincipalId: user.ID(),
DirectoryScopeId: utils.StringPtr("/"),
Justification: utils.StringPtr("abc"),
ScheduleInfo: &msgraph.ScheduleInfo{
StartDateTime: time.Now(),
Expiration: msgraph.ExpirationPattern{
ScheduleInfo: &msgraph.RequestSchedule{
StartDateTime: &now,
Expiration: &msgraph.ExpirationPattern{
Type: utils.StringPtr(msgraph.ExpirationPatternTypeNoExpiration),
},
},
Expand Down

0 comments on commit 3d28a4e

Please sign in to comment.