From 818b498cda97914765b19864f8e1ec4d99b5b1a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franc=C3=A9=20Wilke?= <francewilke@gmail.com> Date: Tue, 9 Apr 2024 13:52:30 +0200 Subject: [PATCH] Add shared functions from Bob Go --- go.mod | 1 + go.sum | 2 ++ string_utils/string_utils.go | 17 +++++++++++++++++ utils/utils.go | 9 +++++++++ 4 files changed, 29 insertions(+) diff --git a/go.mod b/go.mod index 2e0c230..2dfd565 100644 --- a/go.mod +++ b/go.mod @@ -16,6 +16,7 @@ require ( github.com/go-resty/resty/v2 v2.7.0 github.com/golang-jwt/jwt/v4 v4.4.3 github.com/google/uuid v1.3.0 + github.com/jinzhu/now v1.1.5 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 github.com/opensearch-project/opensearch-go/v2 v2.2.0 github.com/pkg/errors v0.9.1 diff --git a/go.sum b/go.sum index 74d33d7..ca0e1ce 100644 --- a/go.sum +++ b/go.sum @@ -103,6 +103,8 @@ github.com/inconshreveable/log15/v3 v3.0.0-testing.5 h1:h4e0f3kjgg+RJBlKOabrohjH github.com/inconshreveable/log15/v3 v3.0.0-testing.5/go.mod h1:3GQg1SVrLoWGfRv/kAZMsdyU5cp8eFc1P3cw+Wwku94= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= +github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= diff --git a/string_utils/string_utils.go b/string_utils/string_utils.go index 3c60ef5..29c6cbb 100644 --- a/string_utils/string_utils.go +++ b/string_utils/string_utils.go @@ -352,3 +352,20 @@ func TrimSpaceForPointer(s *string) *string { func TrimAndToLower(s string) string { return strings.ToLower(strings.TrimSpace(s)) } + +func StringContainsNumbers(s string) bool { + // Define a regular expression to match numbers + regex := regexp.MustCompile("[0-9]") + + // Use FindString to check if the string contains any numbers + return regex.MatchString(s) +} + +func StringContainsOnlyNumbers(s string) bool { + for _, char := range s { + if !unicode.IsDigit(char) { + return false + } + } + return true +} diff --git a/utils/utils.go b/utils/utils.go index 0174c56..1a70f16 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -3,14 +3,17 @@ package utils import ( "bytes" emailverifier "github.com/AfterShip/email-verifier" + "github.com/jinzhu/now" "github.com/mohae/deepcopy" "gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/errors" "gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/string_utils" + "math" "net/url" "os" "reflect" "regexp" "strings" + "time" ) // GetEnv is a helper function for getting environment variables with a default @@ -249,3 +252,9 @@ func IsEqual(expected interface{}, actual interface{}) bool { return reflect.DeepEqual(expected, actual) } + +func DetermineDaysLeft(fromDateLocal time.Time, toDateLocal time.Time) int { + fromDate := now.With(fromDateLocal).EndOfDay() + toDate := now.With(toDateLocal).EndOfDay() + return int(math.Floor(toDate.Sub(fromDate).Hours() / 24)) +} -- GitLab