Skip to content

Commit

Permalink
refactor plural handling (#23)
Browse files Browse the repository at this point in the history
Signed-off-by: krrrr38 <[email protected]>
  • Loading branch information
krrrr38 authored Aug 22, 2024
1 parent 913f581 commit 4ce6d4d
Show file tree
Hide file tree
Showing 27 changed files with 172 additions and 170 deletions.
11 changes: 3 additions & 8 deletions internal/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,9 @@ import (
"github.com/folio-sec/terraform-provider-zoom/internal/services/phone/autoreceptionistivr"
"github.com/folio-sec/terraform-provider-zoom/internal/services/phone/blockedlist"
"github.com/folio-sec/terraform-provider-zoom/internal/services/phone/callqueue"
"github.com/folio-sec/terraform-provider-zoom/internal/services/phone/callqueuemembers"
"github.com/folio-sec/terraform-provider-zoom/internal/services/phone/callqueuephonenumbers"
"github.com/folio-sec/terraform-provider-zoom/internal/services/phone/phonenumbers"
"github.com/folio-sec/terraform-provider-zoom/internal/services/phone/sharedlinegroup"
"github.com/folio-sec/terraform-provider-zoom/internal/services/phone/sharedlinegroupmembers"
"github.com/folio-sec/terraform-provider-zoom/internal/services/phone/sharedlinegroupphonenumbers"
"github.com/folio-sec/terraform-provider-zoom/internal/services/phone/user"
"github.com/folio-sec/terraform-provider-zoom/internal/services/phone/userphonenumbers"
"github.com/folio-sec/terraform-provider-zoom/internal/zoomoauth"
"github.com/hashicorp/go-retryablehttp"
"github.com/hashicorp/terraform-plugin-framework/datasource"
Expand Down Expand Up @@ -208,13 +203,13 @@ func (p *zoomProvider) Resources(_ context.Context) []func() resource.Resource {
autoreceptionistivr.NewPhoneAutoReceptionistIvrResource,
blockedlist.NewPhoneBlockedListResource,
callqueue.NewPhoneCallQueueResource,
callqueuemembers.NewPhoneCallQueueMembersResource,
callqueuephonenumbers.NewPhoneCallQueuePhoneNumbersResource,
callqueuemember.NewPhoneCallQueueMembersResource,
callqueuephonenumber.NewPhoneCallQueuePhoneNumbersResource,
sharedlinegroupgroup.NewPhoneSharedLineGroupResource,
sharedlinegroupgroupmembers.NewPhoneSharedLineGroupMembersResource,
sharedlinegroupgroupphonenumbers.NewPhoneSharedLineGroupPhoneNumbersResource,
user.NewUserResource,
userphonenumbers.NewPhoneUserPhoneNumbersResource,
userphonenumber.NewPhoneUserPhoneNumbersResource,
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,12 @@ func (c *crud) update(ctx context.Context, dto *updateDto) error {
err := c.client.UpdateAutoReceptionist(ctx, zoomphone.OptUpdateAutoReceptionistReq{
Value: zoomphone.UpdateAutoReceptionistReq{
// CostCenter/Department: to remove it, need to pass empty string. not null.
CostCenter: zoomphone.NewOptString(util.ToOptString(dto.costCenter).Or("")),
Department: zoomphone.NewOptString(util.ToOptString(dto.department).Or("")),
ExtensionNumber: util.ToOptInt64(dto.extensionNumber),
Name: util.ToOptString(dto.name),
AudioPromptLanguage: util.ToOptString(dto.audioPromptLanguage),
Timezone: util.ToOptString(dto.timezone),
CostCenter: zoomphone.NewOptString(util.ToPhoneOptString(dto.costCenter).Or("")),
Department: zoomphone.NewOptString(util.ToPhoneOptString(dto.department).Or("")),
ExtensionNumber: util.ToPhoneOptInt64(dto.extensionNumber),
Name: util.ToPhoneOptString(dto.name),
AudioPromptLanguage: util.ToPhoneOptString(dto.audioPromptLanguage),
Timezone: util.ToPhoneOptString(dto.timezone),
},
Set: true,
}, zoomphone.UpdateAutoReceptionistParams{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ type crud struct {
func (c *crud) read(ctx context.Context, autoReceptionistID, hoursType, holidayID types.String) (*readDto, error) {
detail, err := c.client.GetAutoReceptionistIVR(ctx, zoomphone.GetAutoReceptionistIVRParams{
AutoReceptionistId: autoReceptionistID.ValueString(),
HoursType: util.ToOptString(hoursType),
HolidayID: util.ToOptString(holidayID),
HoursType: util.ToPhoneOptString(hoursType),
HolidayID: util.ToPhoneOptString(holidayID),
})
if err != nil {
var status *zoomphone.ErrorResponseStatusCode
Expand Down Expand Up @@ -105,16 +105,16 @@ func (c *crud) update(ctx context.Context, dto *updateDto) error {
callerEntersNoAction := zoomphone.OptUpdateAutoReceptionistIVRReqCallerEntersNoAction{}
if dto.callerEntersNoAction != nil {
callerEntersNoAction = zoomphone.NewOptUpdateAutoReceptionistIVRReqCallerEntersNoAction(zoomphone.UpdateAutoReceptionistIVRReqCallerEntersNoAction{
Action: util.ToOptInt(dto.callerEntersNoAction.action),
AudioPromptRepeat: util.ToOptInt(dto.callerEntersNoAction.auditPromptRepeat),
ForwardToExtensionID: util.ToOptString(dto.callerEntersNoAction.forwardToExtensionID),
Action: util.ToPhoneOptInt(dto.callerEntersNoAction.action),
AudioPromptRepeat: util.ToPhoneOptInt(dto.callerEntersNoAction.auditPromptRepeat),
ForwardToExtensionID: util.ToPhoneOptString(dto.callerEntersNoAction.forwardToExtensionID),
})
}
err := c.client.UpdateAutoReceptionistIVR(ctx, zoomphone.OptUpdateAutoReceptionistIVRReq{
Value: zoomphone.UpdateAutoReceptionistIVRReq{
HolidayID: util.ToOptString(dto.holidayID),
HoursType: util.ToOptString(dto.hoursType),
AudioPromptID: util.ToOptString(dto.audioPromptID),
HolidayID: util.ToPhoneOptString(dto.holidayID),
HoursType: util.ToPhoneOptString(dto.hoursType),
AudioPromptID: util.ToPhoneOptString(dto.audioPromptID),
CallerEntersNoAction: callerEntersNoAction,
},
Set: true,
Expand All @@ -129,19 +129,19 @@ func (c *crud) update(ctx context.Context, dto *updateDto) error {
target := zoomphone.OptUpdateAutoReceptionistIVRReqKeyActionTarget{}
if keyAction.target != nil {
target = zoomphone.NewOptUpdateAutoReceptionistIVRReqKeyActionTarget(zoomphone.UpdateAutoReceptionistIVRReqKeyActionTarget{
ExtensionID: util.ToOptString(keyAction.target.extensionID),
PhoneNumber: util.ToOptString(keyAction.target.phoneNumber),
ExtensionID: util.ToPhoneOptString(keyAction.target.extensionID),
PhoneNumber: util.ToPhoneOptString(keyAction.target.phoneNumber),
})
}
err := c.client.UpdateAutoReceptionistIVR(ctx, zoomphone.OptUpdateAutoReceptionistIVRReq{
Value: zoomphone.UpdateAutoReceptionistIVRReq{
HolidayID: util.ToOptString(dto.holidayID),
HoursType: util.ToOptString(dto.hoursType),
HolidayID: util.ToPhoneOptString(dto.holidayID),
HoursType: util.ToPhoneOptString(dto.hoursType),
KeyAction: zoomphone.NewOptUpdateAutoReceptionistIVRReqKeyAction(zoomphone.UpdateAutoReceptionistIVRReqKeyAction{
Key: util.ToOptString(keyAction.key),
Action: util.ToOptInt(keyAction.action),
Key: util.ToPhoneOptString(keyAction.key),
Action: util.ToPhoneOptInt(keyAction.action),
Target: target,
VoicemailGreetingID: util.ToOptString(keyAction.voiceMailGreetingId),
VoicemailGreetingID: util.ToPhoneOptString(keyAction.voiceMailGreetingId),
}),
},
Set: true,
Expand Down
10 changes: 5 additions & 5 deletions internal/services/phone/blockedlist/blocked_list_crud.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@ func (c *crud) read(ctx context.Context, blockedListID types.String) (*readDto,
func (c *crud) create(ctx context.Context, dto *createDto) (*createdDto, error) {
res, err := c.client.AddAnumberToBlockedList(ctx, zoomphone.OptAddAnumberToBlockedListReq{
Value: zoomphone.AddAnumberToBlockedListReq{
BlockType: util.ToOptString(dto.blockType),
Comment: util.ToOptString(dto.comment),
MatchType: util.ToOptString(dto.matchType),
PhoneNumber: util.ToOptString(dto.phoneNumber),
Status: util.ToOptString(dto.status),
BlockType: util.ToPhoneOptString(dto.blockType),
Comment: util.ToPhoneOptString(dto.comment),
MatchType: util.ToPhoneOptString(dto.matchType),
PhoneNumber: util.ToPhoneOptString(dto.phoneNumber),
Status: util.ToPhoneOptString(dto.status),
},
Set: true,
})
Expand Down
24 changes: 12 additions & 12 deletions internal/services/phone/callqueue/call_queue_crud.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,11 @@ func (c *crud) create(ctx context.Context, dto *createDto) (*createdDto, error)
Value: zoomphone.CreateCallQueueReq{
Name: dto.name.ValueString(),
// CostCenter/Department: to remove it, need to pass empty string. not null.
CostCenter: zoomphone.NewOptString(util.ToOptString(dto.costCenter).Or("")),
Department: zoomphone.NewOptString(util.ToOptString(dto.department).Or("")),
Description: util.ToOptString(dto.description),
ExtensionNumber: util.ToOptInt64(dto.extensionNumber),
SiteID: util.ToOptString(dto.siteID),
CostCenter: zoomphone.NewOptString(util.ToPhoneOptString(dto.costCenter).Or("")),
Department: zoomphone.NewOptString(util.ToPhoneOptString(dto.department).Or("")),
Description: util.ToPhoneOptString(dto.description),
ExtensionNumber: util.ToPhoneOptInt64(dto.extensionNumber),
SiteID: util.ToPhoneOptString(dto.siteID),
},
Set: true,
})
Expand All @@ -80,13 +80,13 @@ func (c *crud) update(ctx context.Context, dto *updateDto) error {
err := c.client.UpdateCallQueue(ctx, zoomphone.OptUpdateCallQueueReq{
Value: zoomphone.UpdateCallQueueReq{
// CostCenter/Department: to remove it, need to pass empty string. not null.
CostCenter: zoomphone.NewOptString(util.ToOptString(dto.costCenter).Or("")),
Department: zoomphone.NewOptString(util.ToOptString(dto.department).Or("")),
Description: util.ToOptString(dto.description),
ExtensionNumber: util.ToOptInt64(dto.extensionNumber),
Name: util.ToOptString(dto.name),
Status: util.ToOptString(dto.status),
SiteID: util.ToOptString(dto.siteID),
CostCenter: zoomphone.NewOptString(util.ToPhoneOptString(dto.costCenter).Or("")),
Department: zoomphone.NewOptString(util.ToPhoneOptString(dto.department).Or("")),
Description: util.ToPhoneOptString(dto.description),
ExtensionNumber: util.ToPhoneOptInt64(dto.extensionNumber),
Name: util.ToPhoneOptString(dto.name),
Status: util.ToPhoneOptString(dto.status),
SiteID: util.ToPhoneOptString(dto.siteID),
},
Set: true,
}, zoomphone.UpdateCallQueueParams{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package callqueuemembers
package callqueuemember

import (
"context"
Expand Down Expand Up @@ -113,8 +113,8 @@ func (c *crud) assign(ctx context.Context, dto *assignDto) error {
users := make([]zoomphone.AddMembersToCallQueueReqMembersUsersItem, len(dto.users))
for i, user := range dto.users {
users[i] = zoomphone.AddMembersToCallQueueReqMembersUsersItem{
ID: util.ToOptString(user.id),
Email: util.ToOptString(user.email),
ID: util.ToPhoneOptString(user.id),
Email: util.ToPhoneOptString(user.email),
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package callqueuemembers
package callqueuemember

import "github.com/hashicorp/terraform-plugin-framework/types"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package callqueuemembers
package callqueuemember

import (
"context"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package callqueuephonenumbers
package callqueuephonenumber

import (
"context"
Expand Down Expand Up @@ -53,7 +53,7 @@ func (c *crud) assign(ctx context.Context, dto *assignDto) error {
zoomphone.AssignPhoneToCallQueueReq{
PhoneNumbers: lo.Map(phoneNumberIDs, func(phoneNumberID types.String, index int) zoomphone.AssignPhoneToCallQueueReqPhoneNumbersItem {
return zoomphone.AssignPhoneToCallQueueReqPhoneNumbersItem{
ID: util.ToOptString(phoneNumberID),
ID: util.ToPhoneOptString(phoneNumberID),
}
}),
},
Expand All @@ -67,7 +67,7 @@ func (c *crud) assign(ctx context.Context, dto *assignDto) error {
zoomphone.AssignPhoneToCallQueueReq{
PhoneNumbers: lo.Map(phoneNumbers, func(phoneNumber types.String, index int) zoomphone.AssignPhoneToCallQueueReqPhoneNumbersItem {
return zoomphone.AssignPhoneToCallQueueReqPhoneNumbersItem{
Number: util.ToOptString(phoneNumber),
Number: util.ToPhoneOptString(phoneNumber),
}
}),
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package callqueuephonenumbers
package callqueuephonenumber

import "github.com/hashicorp/terraform-plugin-framework/types"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package callqueuephonenumbers
package callqueuephonenumber

import (
"context"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ func (c *crud) read(ctx context.Context, dto *readQueryDto) (*readDto, error) {
ret, err := c.client.ListAccountPhoneNumbers(ctx, zoomphone.ListAccountPhoneNumbersParams{
NextPageToken: nextPageToken,
PageSize: zoomphone.NewOptInt(300), // max 300
Type: util.ToOptString(dto.typ),
ExtensionType: util.ToOptString(dto.extensionType),
NumberType: util.ToOptString(dto.numberType),
PendingNumbers: util.ToOptBool(dto.pendingNumbers),
SiteID: util.ToOptString(dto.siteID),
Type: util.ToPhoneOptString(dto.typ),
ExtensionType: util.ToPhoneOptString(dto.extensionType),
NumberType: util.ToPhoneOptString(dto.numberType),
PendingNumbers: util.ToPhoneOptBool(dto.pendingNumbers),
SiteID: util.ToPhoneOptString(dto.siteID),
})
if err != nil {
return nil, fmt.Errorf("unable to read phone numbers: %v", err)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@ func (c *crud) create(ctx context.Context, dto *createDto) (*createdDto, error)
res, err := c.client.CreateASharedLineGroup(ctx, zoomphone.OptCreateASharedLineGroupReq{
Value: zoomphone.CreateASharedLineGroupReq{
DisplayName: dto.displayName.ValueString(),
Description: util.ToOptString(dto.description),
ExtensionNumber: util.ToOptInt64(dto.extensionNumber),
SiteID: util.ToOptString(dto.siteID),
Description: util.ToPhoneOptString(dto.description),
ExtensionNumber: util.ToPhoneOptInt64(dto.extensionNumber),
SiteID: util.ToPhoneOptString(dto.siteID),
},
Set: true,
})
Expand All @@ -74,11 +74,11 @@ func (c *crud) create(ctx context.Context, dto *createDto) (*createdDto, error)
func (c *crud) update(ctx context.Context, dto *updateDto) error {
err := c.client.UpdateASharedLineGroup(ctx, zoomphone.OptUpdateASharedLineGroupReq{
Value: zoomphone.UpdateASharedLineGroupReq{
ExtensionNumber: util.ToOptInt64(dto.extensionNumber),
DisplayName: util.ToOptString(dto.displayName),
Status: util.ToOptString(dto.status),
ExtensionNumber: util.ToPhoneOptInt64(dto.extensionNumber),
DisplayName: util.ToPhoneOptString(dto.displayName),
Status: util.ToPhoneOptString(dto.status),
// PrimeNumber is managed by "shared_line_group_phone_numbers" resource
// PrimaryNumber: util.ToOptString(dto.primeNumber),
// PrimaryNumber: util.ToPhoneOptString(dto.primeNumber),
},
Set: true,
}, zoomphone.UpdateASharedLineGroupParams{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ func (c *crud) assign(ctx context.Context, dto *assignDto) error {
users := make([]zoomphone.AddMembersToSharedLineGroupReqMembersUsersItem, len(dto.users))
for i, user := range dto.users {
users[i] = zoomphone.AddMembersToSharedLineGroupReqMembersUsersItem{
ID: util.ToOptString(user.id),
Email: util.ToOptString(user.email),
ID: util.ToPhoneOptString(user.id),
Email: util.ToPhoneOptString(user.email),
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ func (c *crud) assign(ctx context.Context, dto *assignDto) error {
zoomphone.AssignPhoneNumbersSLGReq{
PhoneNumbers: lo.Map(phoneNumberIDs, func(phoneNumberID types.String, index int) zoomphone.AssignPhoneNumbersSLGReqPhoneNumbersItem {
return zoomphone.AssignPhoneNumbersSLGReqPhoneNumbersItem{
ID: util.ToOptString(phoneNumberID),
ID: util.ToPhoneOptString(phoneNumberID),
}
}),
},
Expand All @@ -67,7 +67,7 @@ func (c *crud) assign(ctx context.Context, dto *assignDto) error {
zoomphone.AssignPhoneNumbersSLGReq{
PhoneNumbers: lo.Map(phoneNumbers, func(phoneNumber types.String, index int) zoomphone.AssignPhoneNumbersSLGReqPhoneNumbersItem {
return zoomphone.AssignPhoneNumbersSLGReqPhoneNumbersItem{
Number: util.ToOptString(phoneNumber),
Number: util.ToPhoneOptString(phoneNumber),
}
}),
},
Expand Down Expand Up @@ -118,7 +118,7 @@ func (c *crud) updatePrimaryNumber(ctx context.Context, sharedLineGroupID, prima
// UpdateASharedLineGroup is PATCH, so just update PrimaryNumber only
err := c.client.UpdateASharedLineGroup(ctx, zoomphone.OptUpdateASharedLineGroupReq{
Value: zoomphone.UpdateASharedLineGroupReq{
PrimaryNumber: util.ToOptString(primaryNumber),
PrimaryNumber: util.ToPhoneOptString(primaryNumber),
},
Set: true,
}, zoomphone.UpdateASharedLineGroupParams{
Expand Down
6 changes: 3 additions & 3 deletions internal/services/phone/user/user_crud.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,14 @@ func (c *crud) create(ctx context.Context, dto createDto) (*createdDto, error) {
func (c *crud) update(ctx context.Context, dto updateDto) error {
err := c.phoneClient.UpdateUserProfile(ctx, zoomphone.NewOptUpdateUserProfileReq(
zoomphone.UpdateUserProfileReq{
EmergencyAddressID: util.ToOptString(dto.emergencyAddressID),
EmergencyAddressID: util.ToPhoneOptString(dto.emergencyAddressID),
ExtensionNumber: lo.TernaryF(dto.extensionNumber.IsNull() || dto.extensionNumber.IsUnknown(), func() zoomphone.OptString {
return zoomphone.OptString{}
}, func() zoomphone.OptString {
return zoomphone.NewOptString(strconv.FormatInt(dto.extensionNumber.ValueInt64(), 10))
}),
SiteID: util.ToOptString(dto.siteID),
TemplateID: util.ToOptString(dto.templateID),
SiteID: util.ToPhoneOptString(dto.siteID),
TemplateID: util.ToPhoneOptString(dto.templateID),
},
), zoomphone.UpdateUserProfileParams{
UserId: dto.zoomUserID.ValueString(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package userphonenumbers
package userphonenumber

import (
"context"
Expand Down Expand Up @@ -52,7 +52,7 @@ func (c *crud) assign(ctx context.Context, dto *assignDto) error {
zoomphone.AssignPhoneNumberReq{
PhoneNumbers: lo.Map(phoneNumberIDs, func(phoneNumberID types.String, index int) zoomphone.AssignPhoneNumberReqPhoneNumbersItem {
return zoomphone.AssignPhoneNumberReqPhoneNumbersItem{
ID: util.ToOptString(phoneNumberID),
ID: util.ToPhoneOptString(phoneNumberID),
}
}),
},
Expand All @@ -66,7 +66,7 @@ func (c *crud) assign(ctx context.Context, dto *assignDto) error {
zoomphone.AssignPhoneNumberReq{
PhoneNumbers: lo.Map(phoneNumbers, func(phoneNumber types.String, index int) zoomphone.AssignPhoneNumberReqPhoneNumbersItem {
return zoomphone.AssignPhoneNumberReqPhoneNumbersItem{
Number: util.ToOptString(phoneNumber),
Number: util.ToPhoneOptString(phoneNumber),
}
}),
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package userphonenumbers
package userphonenumber

import "github.com/hashicorp/terraform-plugin-framework/types"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package userphonenumbers
package userphonenumber

import (
"context"
Expand Down
Loading

0 comments on commit 4ce6d4d

Please sign in to comment.