From 3d1d1cdd1f665f32fbcb14503c3b45bda725237e Mon Sep 17 00:00:00 2001 From: Johan de Klerk <johan@shiplogic.com> Date: Mon, 5 Sep 2022 09:22:11 +0200 Subject: [PATCH] Check that objects are not nil in VerifyAuditEvents --- audit/audit.go | 17 +++++++++++------ go.mod | 5 ++++- go.sum | 4 ++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/audit/audit.go b/audit/audit.go index 557517b..6deca7d 100644 --- a/audit/audit.go +++ b/audit/audit.go @@ -19,15 +19,20 @@ type FieldChange struct { } func VerifyAuditEvents(original interface{}, new interface{}) error { - structValue := reflect.ValueOf(original) - if structValue.Kind() != reflect.Struct { - return errors.New("original object is not of type struct") + if original != nil { + structValue := reflect.ValueOf(original) + if structValue.Kind() != reflect.Struct { + return errors.New("original object is not of type struct") + } } - structValue = reflect.ValueOf(new) - if structValue.Kind() != reflect.Struct { - return errors.New("new object is not of type struct") + if new != nil { + structValue = reflect.ValueOf(new) + if structValue.Kind() != reflect.Struct { + return errors.New("new object is not of type struct") + } } + return nil } diff --git a/go.mod b/go.mod index e92f081..ffb8b12 100644 --- a/go.mod +++ b/go.mod @@ -17,6 +17,7 @@ require ( github.com/r3labs/diff/v2 v2.14.2 github.com/sirupsen/logrus v1.8.1 github.com/thoas/go-funk v0.9.1 + gitlab.com/uafrica/go-utils v1.49.0 golang.org/x/text v0.3.7 ) @@ -26,10 +27,12 @@ require ( github.com/go-errors/errors v1.4.1 // indirect github.com/go-pg/zerochecker v0.2.0 // indirect github.com/golang/protobuf v1.5.2 // indirect + github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/jtolds/gls v4.20.0+incompatible // indirect github.com/pborman/uuid v1.2.1 // indirect - github.com/smartystreets/goconvey v1.7.2 // indirect + github.com/smartystreets/assertions v1.2.0 // indirect github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc // indirect github.com/vmihailenco/bufpool v0.1.11 // indirect github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect diff --git a/go.sum b/go.sum index ce3c9fd..ba9a7ff 100644 --- a/go.sum +++ b/go.sum @@ -118,7 +118,6 @@ github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs= github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg= -github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM= github.com/stretchr/objx v0.1.0/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/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -142,6 +141,8 @@ github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgq github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +gitlab.com/uafrica/go-utils v1.49.0 h1:mmMHmOHQ57wKaD3zmOujlwjsCNHA52mAlrmt3MlKKAE= +gitlab.com/uafrica/go-utils v1.49.0/go.mod h1:jSqj/FKsBEceSuxg2oKx9fsHxyWHvxJe7bJNAtWRGBw= golang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -201,7 +202,6 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -- GitLab