From cca23cdaf2f0f6aa305a5c0b2c8dbbb2b3ba3a32 Mon Sep 17 00:00:00 2001
From: "daniel.naude" <danieln@bob.co.za>
Date: Tue, 9 Apr 2024 09:44:23 +0200
Subject: [PATCH] Improve error handling

---
 errors/errors.go                   |  8 ++++----
 s3/s3.go                           | 10 ++++------
 secrets_manager/secrets_manager.go |  4 ++--
 3 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/errors/errors.go b/errors/errors.go
index 521075c..08930ae 100644
--- a/errors/errors.go
+++ b/errors/errors.go
@@ -129,9 +129,9 @@ func AWSErrorExceptionCode(err error) string {
 		return ""
 	}
 
-	var apiErr *smithy.GenericAPIError
+	var apiErr smithy.APIError
 	if errors.As(err, &apiErr) {
-		return apiErr.Code
+		return apiErr.ErrorCode()
 	}
 	return ""
 }
@@ -141,9 +141,9 @@ func AWSErrorWithoutExceptionCode(err error) error {
 		return nil
 	}
 
-	var apiErr *smithy.GenericAPIError
+	var apiErr smithy.APIError
 	if errors.As(err, &apiErr) {
-		return Error(apiErr.Message)
+		return Error(apiErr.ErrorMessage())
 	}
 	return err
 }
diff --git a/s3/s3.go b/s3/s3.go
index aa573f7..e3a11e0 100644
--- a/s3/s3.go
+++ b/s3/s3.go
@@ -13,7 +13,6 @@ import (
 
 	"github.com/aws/aws-sdk-go-v2/config"
 	"github.com/aws/aws-sdk-go-v2/credentials"
-	"github.com/aws/smithy-go"
 	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/secrets_manager"
 
 	std_errors "errors"
@@ -22,6 +21,7 @@ import (
 
 	"github.com/aws/aws-sdk-go-v2/aws"
 	"github.com/aws/aws-sdk-go-v2/service/s3"
+	"github.com/aws/aws-sdk-go-v2/service/s3/types"
 	"github.com/google/uuid"
 )
 
@@ -336,11 +336,9 @@ func (s ClientWithHelpers) FileExists(bucket string, fileName string) (bool, err
 		Key:    aws.String(fileName),
 	})
 	if err != nil {
-		var apiErr *smithy.GenericAPIError
-		if std_errors.As(err, &apiErr) {
-			if apiErr.Code == "NotFound" {
-				return false, nil
-			}
+		var notFoundErr *types.NotFound
+		if std_errors.As(err, &notFoundErr) {
+			return false, nil
 		}
 		return false, err
 	}
diff --git a/secrets_manager/secrets_manager.go b/secrets_manager/secrets_manager.go
index a588467..0f41ef0 100644
--- a/secrets_manager/secrets_manager.go
+++ b/secrets_manager/secrets_manager.go
@@ -95,9 +95,9 @@ func instantiateSecretManagerClient(isDebug bool) (err error) {
 
 // logError Logs any errors returned by the Secrets Manager client
 func logError(err error) {
-	var apiErr *smithy.GenericAPIError
+	var apiErr smithy.APIError
 	if errors.As(err, &apiErr) {
-		logs.Info(apiErr.Code+" %s", apiErr.Message)
+		logs.Info(apiErr.ErrorCode()+" %s", apiErr.ErrorMessage())
 	} else {
 		logs.Info(err.Error())
 	}
-- 
GitLab