From 637d874716935e158b9893135696589f8c9df523 Mon Sep 17 00:00:00 2001 From: "daniel.naude" <danieln@bob.co.za> Date: Fri, 17 May 2024 10:43:59 +0200 Subject: [PATCH] Add a deepCopy to TradingHours String function to prevent side effects --- date_utils/date_utils.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/date_utils/date_utils.go b/date_utils/date_utils.go index c86bc6a..1e66fe9 100644 --- a/date_utils/date_utils.go +++ b/date_utils/date_utils.go @@ -9,6 +9,7 @@ import ( "github.com/araddon/dateparse" "gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/errors" + "gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/utils" ) const TimeZoneString = "Africa/Johannesburg" @@ -337,7 +338,8 @@ func (t TradingHours) Validate() error { func (t TradingHours) String() string { var result strings.Builder const numberOfDaysInWeek = 7 - weekdays, publicHolidays := t[:numberOfDaysInWeek], t[numberOfDaysInWeek] + copyOfT := utils.DeepCopy(t).(TradingHours) + weekdays, publicHolidays := copyOfT[:numberOfDaysInWeek], copyOfT[numberOfDaysInWeek] weekdays = append(weekdays, weekdays[0]) // Add the first day (Sunday) to the end because we want Monday to be first in the string rangeStartIndex := 1 -- GitLab