From 7ab8bc5d57157cb569ad95d8010f7e45ded3aad4 Mon Sep 17 00:00:00 2001 From: Brad Swenson Date: Wed, 11 May 2022 17:32:35 -0500 Subject: [PATCH 1/6] use time pointer and set ID on expansion --- cloudflare/resource_cloudflare_waiting_room_event.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cloudflare/resource_cloudflare_waiting_room_event.go b/cloudflare/resource_cloudflare_waiting_room_event.go index cf902f05fe..5ddba00a39 100644 --- a/cloudflare/resource_cloudflare_waiting_room_event.go +++ b/cloudflare/resource_cloudflare_waiting_room_event.go @@ -42,15 +42,17 @@ func expandWaitingRoomEvent(d *schema.ResourceData) (cloudflare.WaitingRoomEvent return cloudflare.WaitingRoomEvent{}, err } - prequeueStartTime := time.Time{} + var prequeueStartTime *time.Time if t, ok := d.GetOk("prequeue_start_time"); ok { - prequeueStartTime, err = time.Parse(time.RFC3339, t.(string)) + prequeueStartTimeValue, err := time.Parse(time.RFC3339, t.(string)) + prequeueStartTime = &prequeueStartTimeValue if err != nil { return cloudflare.WaitingRoomEvent{}, err } } return cloudflare.WaitingRoomEvent{ + ID: d.Id(), Name: d.Get("name").(string), EventStartTime: eventStartTime, EventEndTime: eventEndTime, From 03568332791a4d3fcb00964f0df9431465d2283d Mon Sep 17 00:00:00 2001 From: Brad Swenson Date: Wed, 11 May 2022 17:32:35 -0500 Subject: [PATCH 2/6] use time pointer and set ID on expansion --- internal/provider/resource_cloudflare_waiting_room_event.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/provider/resource_cloudflare_waiting_room_event.go b/internal/provider/resource_cloudflare_waiting_room_event.go index b35ba6a8dc..45b9e007c6 100644 --- a/internal/provider/resource_cloudflare_waiting_room_event.go +++ b/internal/provider/resource_cloudflare_waiting_room_event.go @@ -42,15 +42,17 @@ func expandWaitingRoomEvent(d *schema.ResourceData) (cloudflare.WaitingRoomEvent return cloudflare.WaitingRoomEvent{}, err } - prequeueStartTime := time.Time{} + var prequeueStartTime *time.Time if t, ok := d.GetOk("prequeue_start_time"); ok { - prequeueStartTime, err = time.Parse(time.RFC3339, t.(string)) + prequeueStartTimeValue, err := time.Parse(time.RFC3339, t.(string)) + prequeueStartTime = &prequeueStartTimeValue if err != nil { return cloudflare.WaitingRoomEvent{}, err } } return cloudflare.WaitingRoomEvent{ + ID: d.Id(), Name: d.Get("name").(string), EventStartTime: eventStartTime, EventEndTime: eventEndTime, From e7e97cea024b029fba011381c7814fdf0c29c6e2 Mon Sep 17 00:00:00 2001 From: Brad Swenson Date: Thu, 26 May 2022 17:22:52 -0500 Subject: [PATCH 3/6] fix prequeueStartTime pointer --- internal/provider/resource_cloudflare_waiting_room_event.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/provider/resource_cloudflare_waiting_room_event.go b/internal/provider/resource_cloudflare_waiting_room_event.go index 45b9e007c6..2503a3f1f0 100644 --- a/internal/provider/resource_cloudflare_waiting_room_event.go +++ b/internal/provider/resource_cloudflare_waiting_room_event.go @@ -56,7 +56,7 @@ func expandWaitingRoomEvent(d *schema.ResourceData) (cloudflare.WaitingRoomEvent Name: d.Get("name").(string), EventStartTime: eventStartTime, EventEndTime: eventEndTime, - PrequeueStartTime: &prequeueStartTime, + PrequeueStartTime: prequeueStartTime, Description: d.Get("description").(string), QueueingMethod: d.Get("queueing_method").(string), ShuffleAtEventStart: d.Get("shuffle_at_event_start").(bool), From 5d14fdcd1129008c755b2a3111c4f1c161b36444 Mon Sep 17 00:00:00 2001 From: Brad Swenson Date: Thu, 26 May 2022 17:36:41 -0500 Subject: [PATCH 4/6] add changelog --- .changelog/1648.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/1648.txt diff --git a/.changelog/1648.txt b/.changelog/1648.txt new file mode 100644 index 0000000000..a7fce889ea --- /dev/null +++ b/.changelog/1648.txt @@ -0,0 +1,3 @@ +```release-note:bug +resource/cloudflare_waiting_room_event: handle time pointer for nullable struct member +``` From 95acaf20e55f772bc6ec7189b53c169530c8efea Mon Sep 17 00:00:00 2001 From: Brad Swenson Date: Thu, 26 May 2022 19:46:24 -0500 Subject: [PATCH 5/6] set waitingroom event id from resourcedata --- internal/provider/resource_cloudflare_waiting_room_event.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/provider/resource_cloudflare_waiting_room_event.go b/internal/provider/resource_cloudflare_waiting_room_event.go index 2503a3f1f0..778e078771 100644 --- a/internal/provider/resource_cloudflare_waiting_room_event.go +++ b/internal/provider/resource_cloudflare_waiting_room_event.go @@ -45,14 +45,13 @@ func expandWaitingRoomEvent(d *schema.ResourceData) (cloudflare.WaitingRoomEvent var prequeueStartTime *time.Time if t, ok := d.GetOk("prequeue_start_time"); ok { prequeueStartTimeValue, err := time.Parse(time.RFC3339, t.(string)) - prequeueStartTime = &prequeueStartTimeValue + prequeueStartTime = cloudflare.TimePtr(prequeueStartTimeValue) if err != nil { return cloudflare.WaitingRoomEvent{}, err } } return cloudflare.WaitingRoomEvent{ - ID: d.Id(), Name: d.Get("name").(string), EventStartTime: eventStartTime, EventEndTime: eventEndTime, @@ -147,6 +146,7 @@ func resourceCloudflareWaitingRoomEventRead(ctx context.Context, d *schema.Resou func resourceCloudflareWaitingRoomEventUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { client := meta.(*cloudflare.API) + waitingRoomEventID := d.Id() waitingRoomID := d.Get("waiting_room_id").(string) zoneID := d.Get("zone_id").(string) waitingRoomEventName := d.Get("name").(string) @@ -154,6 +154,7 @@ func resourceCloudflareWaitingRoomEventUpdate(ctx context.Context, d *schema.Res if err != nil { return diag.FromErr(fmt.Errorf("error building waiting room event %q: %w", waitingRoomEventName, err)) } + waitingRoomEvent.ID = waitingRoomEventID _, err = client.ChangeWaitingRoomEvent(ctx, zoneID, waitingRoomID, waitingRoomEvent) From 92e044f2de42ffa3157897bc07d50b4e238f2625 Mon Sep 17 00:00:00 2001 From: Brad Swenson Date: Thu, 26 May 2022 21:14:36 -0500 Subject: [PATCH 6/6] check if PrequeueStartTime is nil --- internal/provider/resource_cloudflare_waiting_room_event.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/provider/resource_cloudflare_waiting_room_event.go b/internal/provider/resource_cloudflare_waiting_room_event.go index 778e078771..98a5291620 100644 --- a/internal/provider/resource_cloudflare_waiting_room_event.go +++ b/internal/provider/resource_cloudflare_waiting_room_event.go @@ -110,7 +110,7 @@ func resourceCloudflareWaitingRoomEventRead(ctx context.Context, d *schema.Resou d.Set("event_end_time", waitingRoomEvent.EventEndTime.Format(time.RFC3339)) d.Set("session_duration", waitingRoomEvent.SessionDuration) - if !waitingRoomEvent.PrequeueStartTime.IsZero() { + if waitingRoomEvent.PrequeueStartTime != nil { d.Set("prequeue_start_time", waitingRoomEvent.PrequeueStartTime.Format(time.RFC3339)) }