From 7aa1b759203fbccac391b38903657fb64bc234a7 Mon Sep 17 00:00:00 2001 From: Joppet Escota <60597233+joppetburger@users.noreply.github.com> Date: Wed, 10 Jul 2024 11:57:27 +0800 Subject: [PATCH] lib: Add api-gateway-response helpers (#20) - api gateway response helpers - assertion functions helpers - update mod sum --- api-gateway-response/constants.go | 35 +++++++++ api-gateway-response/error.go | 41 ++++++++++ api-gateway-response/error_test.go | 106 ++++++++++++++++++++++++++ api-gateway-response/go.mod | 16 ++++ api-gateway-response/go.sum | 13 ++++ api-gateway-response/success.go | 45 +++++++++++ api-gateway-response/success_test.go | 107 +++++++++++++++++++++++++++ assert/deep_equal.go | 12 +++ assert/equal.go | 9 +++ assert/go.mod | 3 + assert/should_be_nil.go | 11 +++ config/go.mod | 3 +- config/go.sum | 5 +- encryption/go.mod | 8 +- encryption/go.sum | 21 ++++-- go.work | 2 + marshalling/go.mod | 8 +- marshalling/go.sum | 21 ++++-- photo/go.mod | 8 +- photo/go.sum | 21 ++++-- slicesfunc/go.mod | 2 + slicesfunc/go.sum | 8 +- 22 files changed, 469 insertions(+), 36 deletions(-) create mode 100644 api-gateway-response/constants.go create mode 100644 api-gateway-response/error.go create mode 100644 api-gateway-response/error_test.go create mode 100644 api-gateway-response/go.mod create mode 100644 api-gateway-response/go.sum create mode 100644 api-gateway-response/success.go create mode 100644 api-gateway-response/success_test.go create mode 100644 assert/deep_equal.go create mode 100644 assert/equal.go create mode 100644 assert/go.mod create mode 100644 assert/should_be_nil.go diff --git a/api-gateway-response/constants.go b/api-gateway-response/constants.go new file mode 100644 index 0000000..f5ed354 --- /dev/null +++ b/api-gateway-response/constants.go @@ -0,0 +1,35 @@ +package apigatewayresponse + +import "os" + +var allowHeaders = os.Getenv("CORS_ALLOWED_HEADERS") +var allowOrigins = os.Getenv("CORS_ALLOWED_ORIGINS") +var allowMethods = os.Getenv("CORS_ALLOWED_METHODS") + +var PreflightHttpHeaders = map[string]string{ + "Access-Control-Allow-Origin": allowOrigins, + "Access-Control-Allow-Methods": "OPTIONS", + "Access-Control-Allow-Headers": allowHeaders, +} + +var HttpHeaders = map[string]string{ + "Access-Control-Allow-Origin": allowOrigins, + "Access-Control-Allow-Methods": allowMethods, + "Access-Control-Allow-Headers": allowHeaders, + "Content-Type": "application/json", +} + +type ErrorResponse struct { + Message string `json:"message"` + Code string `json:"code"` +} + +type SuccessResponseBody struct { + Results any `json:"results"` + Metadata any `json:"metadata"` +} + +type PaginationMetadata struct { + PageCount int `json:"max_page"` + ResultCount int `json:"results_per_page"` +} diff --git a/api-gateway-response/error.go b/api-gateway-response/error.go new file mode 100644 index 0000000..53ec120 --- /dev/null +++ b/api-gateway-response/error.go @@ -0,0 +1,41 @@ +package apigatewayresponse + +import ( + "encoding/json" + + "github.com/aws/aws-lambda-go/events" +) + +type MultipleErrorsResponseType struct { + Errors []ErrorResponse `json:"errors"` +} + +func MultipleErrorsResponse(status int, errors []ErrorResponse) (events.APIGatewayProxyResponse, error) { + response := events.APIGatewayProxyResponse{ + Headers: HttpHeaders, + StatusCode: status, + } + + body := MultipleErrorsResponseType{ + Errors: errors, + } + + rData, _ := json.Marshal(body) + + response.Body = string(rData) + + return response, nil +} + +func SingleErrorResponse(status int, err ErrorResponse) (events.APIGatewayProxyResponse, error) { + response := events.APIGatewayProxyResponse{ + Headers: HttpHeaders, + StatusCode: status, + } + + rData, _ := json.Marshal(err) + + response.Body = string(rData) + + return response, nil +} diff --git a/api-gateway-response/error_test.go b/api-gateway-response/error_test.go new file mode 100644 index 0000000..05d6fbf --- /dev/null +++ b/api-gateway-response/error_test.go @@ -0,0 +1,106 @@ +package apigatewayresponse + +import ( + "encoding/json" + "errors" + "fmt" + "net/http" + "testing" + + "github.com/scrambledeggs/booky-go-common/assert" +) + +func TestSingleErrorResponse(t *testing.T) { + status := http.StatusBadRequest + + err := errors.New("invalid arguments") + + errorObj := ErrorResponse{ + Message: err.Error(), + Code: "INVALID_ARGUMENTS", + } + + response, err := SingleErrorResponse(status, errorObj) + + var responseBody ErrorResponse + + json.Unmarshal([]byte(response.Body), &responseBody) + + assert.ShouldBeNil(t, err) + + assert.DeepEqual(t, responseBody, errorObj, "invalid value for error response") + + assert.Equal(t, response.StatusCode, status, "invalid status code") +} + +func TestMultipleErrorsResponse(t *testing.T) { + status := http.StatusInternalServerError + + err1 := errors.New("invalid name") + + error1Obj := ErrorResponse{ + Message: err1.Error(), + Code: "INVALID_ARGUMENTS", + } + + err2 := errors.New("invalid slug") + + error2Obj := ErrorResponse{ + Message: err2.Error(), + Code: "INVALID_ARGUMENTS", + } + + response, err := MultipleErrorsResponse(status, []ErrorResponse{error1Obj, error2Obj}) + + var responseBody MultipleErrorsResponseType + + json.Unmarshal([]byte(response.Body), &responseBody) + + assert.ShouldBeNil(t, err) + + assert.DeepEqual(t, responseBody.Errors[0], error1Obj, "invalid error value for first element") + assert.DeepEqual(t, responseBody.Errors[1], error2Obj, "invalid error value for second element") + + assert.Equal(t, response.StatusCode, status, "invalid status code") +} + +func ExampleSingleErrorResponse() { + status := http.StatusBadRequest + + err := errors.New("invalid arguments") + + errorObj := ErrorResponse{ + Message: err.Error(), + Code: "INVALID_ARGUMENTS", + } + + response, _ := SingleErrorResponse(status, errorObj) + + fmt.Println(response.Body, response.StatusCode) + + // Output: {"message":"invalid arguments","code":"INVALID_ARGUMENTS"} 400 +} + +func ExampleMultipleErrorsResponse() { + status := http.StatusInternalServerError + + err1 := errors.New("invalid name") + + error1Obj := ErrorResponse{ + Message: err1.Error(), + Code: "INVALID_ARGUMENTS", + } + + err2 := errors.New("invalid slug") + + error2Obj := ErrorResponse{ + Message: err2.Error(), + Code: "INVALID_ARGUMENTS", + } + + response, _ := MultipleErrorsResponse(status, []ErrorResponse{error1Obj, error2Obj}) + + fmt.Println(response.Body, response.StatusCode) + + // Output: {"errors":[{"message":"invalid name","code":"INVALID_ARGUMENTS"},{"message":"invalid slug","code":"INVALID_ARGUMENTS"}]} 500 +} diff --git a/api-gateway-response/go.mod b/api-gateway-response/go.mod new file mode 100644 index 0000000..47ffd54 --- /dev/null +++ b/api-gateway-response/go.mod @@ -0,0 +1,16 @@ +module github.com/scrambledeggs/booky-go-common/apigatewayresponse + +go 1.21.1 + +require ( + github.com/aws/aws-lambda-go v1.47.0 + github.com/stretchr/testify v1.8.4 +) + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/kr/pretty v0.1.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/api-gateway-response/go.sum b/api-gateway-response/go.sum new file mode 100644 index 0000000..9751880 --- /dev/null +++ b/api-gateway-response/go.sum @@ -0,0 +1,13 @@ +github.com/aws/aws-lambda-go v1.47.0 h1:0H8s0vumYx/YKs4sE7YM0ktwL2eWse+kfopsRI1sXVI= +github.com/aws/aws-lambda-go v1.47.0/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/api-gateway-response/success.go b/api-gateway-response/success.go new file mode 100644 index 0000000..4bcdb86 --- /dev/null +++ b/api-gateway-response/success.go @@ -0,0 +1,45 @@ +package apigatewayresponse + +import ( + "encoding/json" + "reflect" + + "github.com/aws/aws-lambda-go/events" +) + +func SuccessResponse(status int, data ...any) (events.APIGatewayProxyResponse, error) { + var metadata any = nil + var strBody []byte + + response := events.APIGatewayProxyResponse{ + Headers: HttpHeaders, + StatusCode: status, + } + + isSlice := IsSlice(data[0]) + + if isSlice { + body := SuccessResponseBody{ + Results: data[0], + } + + if len(data) > 1 { + metadata = data[1] + } + + body.Metadata = metadata + + strBody, _ = json.Marshal(body) + + } else { + strBody, _ = json.Marshal(data[0]) + } + + response.Body = string(strBody) + + return response, nil +} + +func IsSlice(v any) bool { + return reflect.TypeOf(v).Kind() == reflect.Slice +} diff --git a/api-gateway-response/success_test.go b/api-gateway-response/success_test.go new file mode 100644 index 0000000..adeb2be --- /dev/null +++ b/api-gateway-response/success_test.go @@ -0,0 +1,107 @@ +package apigatewayresponse + +import ( + "encoding/json" + "fmt" + "net/http" + "testing" + + "github.com/scrambledeggs/booky-go-common/assert" +) + +func TestSuccessResponseSingleResult(t *testing.T) { + status := http.StatusOK + + body := map[string]string{ + "naknang": "sonof", + "patatas": "potato", + } + + response, err := SuccessResponse(status, body) + + var responseBody map[string]string + + json.Unmarshal([]byte(response.Body), &responseBody) + + assert.ShouldBeNil(t, err) + + assert.DeepEqual(t, responseBody, body, "invalid value for body") + + assert.Equal(t, response.StatusCode, status, "invalid status code") +} + +func TestSuccessResponseMultipleResults(t *testing.T) { + status := http.StatusOK + + body := []map[string]string{ + {"naknang": "sonof", "patatas": "potato"}, + {"sonof": "naknang", "potato": "patatas"}, + } + + metadata := PaginationMetadata{ + PageCount: 10, + ResultCount: 100, + } + + response, err := SuccessResponse(status, body, metadata) + + var responseBody SuccessResponseBody + json.Unmarshal([]byte(response.Body), &responseBody) + + metadataStr, _ := json.Marshal(responseBody.Metadata) + var metadataRes PaginationMetadata + json.Unmarshal([]byte(metadataStr), &metadataRes) + + resultsStr, _ := json.Marshal(responseBody.Results) + var resultsRes []map[string]string + json.Unmarshal([]byte(resultsStr), &resultsRes) + + assert.ShouldBeNil(t, err) + + assert.DeepEqual(t, metadataRes, metadata, "invalid metadata") + assert.DeepEqual(t, resultsRes[0], body[0], "invalid value first element") + assert.DeepEqual(t, resultsRes[1], body[1], "invalid value for second element") + + assert.Equal(t, response.StatusCode, status, "invalid status code") +} + +func ExampleSuccessResponse() { + status := http.StatusOK + + singleBody := map[string]string{ + "naknang": "sonof", + "patatas": "potato", + } + + singleResponse, _ := SuccessResponse(status, singleBody) + + multipleBody := []map[string]string{ + {"naknang": "sonof", "patatas": "potato"}, + {"sonof": "naknang", "potato": "patatas"}, + } + + metadata := PaginationMetadata{ + PageCount: 10, + ResultCount: 100, + } + + multiResponse, _ := SuccessResponse(status, multipleBody, metadata) + + var responseBody SuccessResponseBody + json.Unmarshal([]byte(multiResponse.Body), &responseBody) + + metadataStr, _ := json.Marshal(responseBody.Metadata) + var metadataRes PaginationMetadata + json.Unmarshal([]byte(metadataStr), &metadataRes) + + resultsStr, _ := json.Marshal(responseBody.Results) + var resultsRes []map[string]string + json.Unmarshal([]byte(resultsStr), &resultsRes) + + fmt.Println(singleResponse.Body, singleResponse.StatusCode) + fmt.Println(multiResponse.Body, multiResponse.StatusCode) + + // Output: + // {"naknang":"sonof","patatas":"potato"} 200 + // {"results":[{"naknang":"sonof","patatas":"potato"},{"potato":"patatas","sonof":"naknang"}],"metadata":{"max_page":10,"results_per_page":100}} 200 +} diff --git a/assert/deep_equal.go b/assert/deep_equal.go new file mode 100644 index 0000000..5c3711d --- /dev/null +++ b/assert/deep_equal.go @@ -0,0 +1,12 @@ +package assert + +import ( + "reflect" + "testing" +) + +func DeepEqual(t *testing.T, got any, want any, notes string) { + if !reflect.DeepEqual(got, want) { + t.Errorf("%s got <%s> wanted <%s>", notes, got, want) + } +} diff --git a/assert/equal.go b/assert/equal.go new file mode 100644 index 0000000..30d5065 --- /dev/null +++ b/assert/equal.go @@ -0,0 +1,9 @@ +package assert + +import "testing" + +func Equal(t *testing.T, got any, want any, notes string) { + if got != want { + t.Errorf("%s got <%s> wanted <%s>", notes, got, want) + } +} diff --git a/assert/go.mod b/assert/go.mod new file mode 100644 index 0000000..44edbc4 --- /dev/null +++ b/assert/go.mod @@ -0,0 +1,3 @@ +module github.com/scrambledeggs/booky-go-common/assert + +go 1.21.1 diff --git a/assert/should_be_nil.go b/assert/should_be_nil.go new file mode 100644 index 0000000..4841c03 --- /dev/null +++ b/assert/should_be_nil.go @@ -0,0 +1,11 @@ +package assert + +import ( + "testing" +) + +func ShouldBeNil(t *testing.T, got any) { + if got != nil { + t.Errorf("got <%s> wanted ", got) + } +} diff --git a/config/go.mod b/config/go.mod index 8409fab..54f9bd4 100644 --- a/config/go.mod +++ b/config/go.mod @@ -6,7 +6,7 @@ require ( github.com/scrambledeggs/booky-go-common/encryption v0.0.0-20191003071505-64d725be3c07 github.com/sirupsen/logrus v1.2.0 github.com/spf13/viper v1.4.0 - github.com/stretchr/testify v1.4.0 + github.com/stretchr/testify v1.8.4 ) require ( @@ -26,4 +26,5 @@ require ( golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a // indirect golang.org/x/text v0.3.0 // indirect gopkg.in/yaml.v2 v2.2.2 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/config/go.sum b/config/go.sum index 8733dca..e552d61 100644 --- a/config/go.sum +++ b/config/go.sum @@ -94,8 +94,9 @@ github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/y github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= @@ -143,4 +144,6 @@ gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bl gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/encryption/go.mod b/encryption/go.mod index 2d103fc..767b2fb 100644 --- a/encryption/go.mod +++ b/encryption/go.mod @@ -2,10 +2,12 @@ module github.com/scrambledeggs/booky-go-common/encryption go 1.21 -require github.com/stretchr/testify v1.4.0 +require github.com/stretchr/testify v1.8.4 require ( - github.com/davecgh/go-spew v1.1.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/kr/pretty v0.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - gopkg.in/yaml.v2 v2.2.2 // indirect + gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/encryption/go.sum b/encryption/go.sum index 8fdee58..0fc70f1 100644 --- a/encryption/go.sum +++ b/encryption/go.sum @@ -1,11 +1,16 @@ -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/go.work b/go.work index 7aecfce..a6841a7 100644 --- a/go.work +++ b/go.work @@ -1,6 +1,8 @@ go 1.21.1 use ( + ./api-gateway-response + ./assert ./config ./encryption ./logger diff --git a/marshalling/go.mod b/marshalling/go.mod index c0d26f3..01e7d7e 100644 --- a/marshalling/go.mod +++ b/marshalling/go.mod @@ -4,12 +4,14 @@ go 1.21 require ( github.com/aws/aws-sdk-go v1.25.4 - github.com/stretchr/testify v1.4.0 + github.com/stretchr/testify v1.8.4 ) require ( - github.com/davecgh/go-spew v1.1.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af // indirect + github.com/kr/pretty v0.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - gopkg.in/yaml.v2 v2.2.2 // indirect + gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/marshalling/go.sum b/marshalling/go.sum index 779ae57..a374d0c 100644 --- a/marshalling/go.sum +++ b/marshalling/go.sum @@ -1,15 +1,20 @@ github.com/aws/aws-sdk-go v1.25.4 h1:exwxtR517g6OKm2rtAD5EANtjbzmnjEAco189zy/Uhc= github.com/aws/aws-sdk-go v1.25.4/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/photo/go.mod b/photo/go.mod index 3641a6d..a13ea97 100644 --- a/photo/go.mod +++ b/photo/go.mod @@ -2,10 +2,12 @@ module github.com/scrambledeggs/booky-go-common/photo go 1.21 -require github.com/stretchr/testify v1.4.0 +require github.com/stretchr/testify v1.8.4 require ( - github.com/davecgh/go-spew v1.1.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/kr/pretty v0.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - gopkg.in/yaml.v2 v2.2.2 // indirect + gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/photo/go.sum b/photo/go.sum index 8fdee58..0fc70f1 100644 --- a/photo/go.sum +++ b/photo/go.sum @@ -1,11 +1,16 @@ -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/slicesfunc/go.mod b/slicesfunc/go.mod index 24be93f..5b4f61b 100644 --- a/slicesfunc/go.mod +++ b/slicesfunc/go.mod @@ -6,6 +6,8 @@ require github.com/stretchr/testify v1.8.4 require ( github.com/davecgh/go-spew v1.1.1 // indirect + github.com/kr/pretty v0.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/slicesfunc/go.sum b/slicesfunc/go.sum index fa4b6e6..0fc70f1 100644 --- a/slicesfunc/go.sum +++ b/slicesfunc/go.sum @@ -1,10 +1,16 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=