From a2164c4beb330417132b46f94952324fe55412db Mon Sep 17 00:00:00 2001 From: Joakim Olsson Date: Sat, 15 May 2021 14:42:19 +0200 Subject: [PATCH] chore: update to latest version of goamqp --- client.go | 14 ++++---- client_test.go | 92 ++++++++++++++++++++++++++++---------------------- go.mod | 5 ++- go.sum | 10 ++++++ 4 files changed, 74 insertions(+), 47 deletions(-) diff --git a/client.go b/client.go index e3968d7..6b50fe3 100644 --- a/client.go +++ b/client.go @@ -6,6 +6,8 @@ import ( "io/ioutil" "net/http" "reflect" + + "gitlab.com/sparetimecoders/goamqp" ) // CompanyPrivileges contains the privileges for a combination of email address and company id @@ -69,7 +71,7 @@ func (h *PrivilegeHandler) Fetch() error { } // Process privilege-related events and update the internal state -func (h *PrivilegeHandler) Process(msg interface{}) bool { +func (h *PrivilegeHandler) Process(msg interface{}, _ goamqp.Headers) (interface{}, error) { switch ev := msg.(type) { case *UserAdded: if priv, exists := h.privileges[ev.Email]; exists { @@ -79,21 +81,21 @@ func (h *PrivilegeHandler) Process(msg interface{}) bool { ev.CompanyID: {}, } } - return true + return nil, nil case *UserRemoved: if priv, exists := h.privileges[ev.Email]; exists { delete(priv, ev.CompanyID) } - return true + return nil, nil case *PrivilegeAdded: h.setPrivileges(ev.Email, ev.CompanyID, ev.Privilege, true) - return true + return nil, nil case *PrivilegeRemoved: h.setPrivileges(ev.Email, ev.CompanyID, ev.Privilege, false) - return true + return nil, nil default: fmt.Printf("Got unexpected message type (%s): '%+v'\n", reflect.TypeOf(msg).String(), msg) - return false + return nil, fmt.Errorf("unexpected event type: '%s'", reflect.TypeOf(msg)) } } diff --git a/client_test.go b/client_test.go index e09f9fb..e47a338 100644 --- a/client_test.go +++ b/client_test.go @@ -8,25 +8,28 @@ import ( "testing" "github.com/stretchr/testify/assert" + "gitlab.com/sparetimecoders/goamqp" ) func TestPrivilegeHandler_Process_InvalidType(t *testing.T) { handler := New(WithBaseURL("base")) - result := handler.Process("abc") + result, err := handler.Process("abc", goamqp.Headers{}) - assert.False(t, result) + assert.Nil(t, result) + assert.EqualError(t, err, "unexpected event type: 'string'") } func TestPrivilegeHandler_Process_PrivilegeRemoved(t *testing.T) { handler := New(WithBaseURL("base")) - result := handler.Process(&PrivilegeAdded{ + result, err := handler.Process(&PrivilegeAdded{ Email: "jim@example.org", CompanyID: "abc-123", Privilege: PrivilegeAdmin, - }) - assert.True(t, result) + }, goamqp.Headers{}) + assert.Nil(t, result) + assert.NoError(t, err) companies := handler.CompaniesByUser("jim@example.org", func(privileges CompanyPrivileges) bool { return privileges.Admin @@ -34,12 +37,13 @@ func TestPrivilegeHandler_Process_PrivilegeRemoved(t *testing.T) { assert.Equal(t, []string{"abc-123"}, companies) - result = handler.Process(&PrivilegeRemoved{ + result, err = handler.Process(&PrivilegeRemoved{ Email: "jim@example.org", CompanyID: "abc-123", Privilege: PrivilegeAdmin, - }) - assert.True(t, result) + }, goamqp.Headers{}) + assert.Nil(t, result) + assert.NoError(t, err) companies = handler.CompaniesByUser("jim@example.org", func(privileges CompanyPrivileges) bool { return privileges.Admin @@ -51,17 +55,19 @@ func TestPrivilegeHandler_Process_PrivilegeRemoved(t *testing.T) { func TestPrivilegeHandler_Process_UserAdded_And_UserRemoved(t *testing.T) { handler := New(WithBaseURL("base")) - result := handler.Process(&UserAdded{ + result, err := handler.Process(&UserAdded{ Email: "jim@example.org", CompanyID: "abc-123", - }) - assert.True(t, result) + }, goamqp.Headers{}) + assert.Nil(t, result) + assert.NoError(t, err) - result = handler.Process(&UserAdded{ + result, err = handler.Process(&UserAdded{ Email: "jim@example.org", CompanyID: "abc-456", - }) - assert.True(t, result) + }, goamqp.Headers{}) + assert.Nil(t, result) + assert.NoError(t, err) companies := handler.CompaniesByUser("jim@example.org", func(privileges CompanyPrivileges) bool { return true @@ -69,17 +75,19 @@ func TestPrivilegeHandler_Process_UserAdded_And_UserRemoved(t *testing.T) { sort.Strings(companies) assert.Equal(t, []string{"abc-123", "abc-456"}, companies) - result = handler.Process(&UserRemoved{ + result, err = handler.Process(&UserRemoved{ Email: "jim@example.org", CompanyID: "abc-123", - }) - assert.True(t, result) + }, goamqp.Headers{}) + assert.Nil(t, result) + assert.NoError(t, err) - result = handler.Process(&UserRemoved{ + result, err = handler.Process(&UserRemoved{ Email: "jim@example.org", CompanyID: "abc-456", - }) - assert.True(t, result) + }, goamqp.Headers{}) + assert.Nil(t, result) + assert.NoError(t, err) companies = handler.CompaniesByUser("jim@example.org", func(privileges CompanyPrivileges) bool { return true @@ -100,11 +108,12 @@ func TestPrivilegeHandler_GetCompanies_Email_Not_Found(t *testing.T) { func TestPrivilegeHandler_GetCompanies_No_Companies_Found(t *testing.T) { handler := New(WithBaseURL("base")) - result := handler.Process(&UserAdded{ + result, err := handler.Process(&UserAdded{ Email: "jim@example.org", CompanyID: "abc-123", - }) - assert.True(t, result) + }, goamqp.Headers{}) + assert.Nil(t, result) + assert.NoError(t, err) companies := handler.CompaniesByUser("jim@example.org", func(privileges CompanyPrivileges) bool { return privileges.Admin @@ -118,11 +127,12 @@ func TestPrivilegeHandler_GetCompanies_No_Companies_Found(t *testing.T) { assert.Equal(t, []string{"abc-123"}, companies) - result = handler.Process(&UserRemoved{ + result, err = handler.Process(&UserRemoved{ Email: "jim@example.org", CompanyID: "abc-123", - }) - assert.True(t, result) + }, goamqp.Headers{}) + assert.Nil(t, result) + assert.NoError(t, err) companies = handler.CompaniesByUser("jim@example.org", func(privileges CompanyPrivileges) bool { return true @@ -133,12 +143,13 @@ func TestPrivilegeHandler_GetCompanies_No_Companies_Found(t *testing.T) { func TestPrivilegeHandler_GetCompanies_Company_With_Company_Access_Found(t *testing.T) { handler := New(WithBaseURL("base")) - result := handler.Process(&PrivilegeAdded{ + result, err := handler.Process(&PrivilegeAdded{ Email: "jim@example.org", CompanyID: "abc-123", Privilege: PrivilegeCompany, - }) - assert.True(t, result) + }, goamqp.Headers{}) + assert.Nil(t, result) + assert.NoError(t, err) companies := handler.CompaniesByUser("jim@example.org", func(privileges CompanyPrivileges) bool { return privileges.Company @@ -150,12 +161,13 @@ func TestPrivilegeHandler_GetCompanies_Company_With_Company_Access_Found(t *test func TestPrivilegeHandler_GetCompanies_Company_With_Admin_Access_Found(t *testing.T) { handler := New(WithBaseURL("base")) - result := handler.Process(&PrivilegeAdded{ + result, err := handler.Process(&PrivilegeAdded{ Email: "jim@example.org", CompanyID: "abc-123", Privilege: PrivilegeConsumer, - }) - assert.True(t, result) + }, goamqp.Headers{}) + assert.Nil(t, result) + assert.NoError(t, err) companies := handler.CompaniesByUser("jim@example.org", func(privileges CompanyPrivileges) bool { return privileges.Consumer @@ -177,11 +189,11 @@ func TestPrivilegeHandler_IsAllowed_Return_False_If_No_Privileges(t *testing.T) func TestPrivilegeHandler_IsAllowed_Return_True_If_Privilege_Exists(t *testing.T) { handler := New(WithBaseURL("base")) - handler.Process(&PrivilegeAdded{ + _, _ = handler.Process(&PrivilegeAdded{ Email: "jim@example.org", CompanyID: "abc-123", Privilege: PrivilegeTime, - }) + }, goamqp.Headers{}) result := handler.IsAllowed("jim@example.org", "abc-123", func(privileges CompanyPrivileges) bool { return privileges.Time @@ -189,11 +201,11 @@ func TestPrivilegeHandler_IsAllowed_Return_True_If_Privilege_Exists(t *testing.T assert.True(t, result) - handler.Process(&PrivilegeAdded{ + _, _ = handler.Process(&PrivilegeAdded{ Email: "jim@example.org", CompanyID: "abc-123", Privilege: PrivilegeInvoicing, - }) + }, goamqp.Headers{}) result = handler.IsAllowed("jim@example.org", "abc-123", func(privileges CompanyPrivileges) bool { return privileges.Invoicing @@ -201,11 +213,11 @@ func TestPrivilegeHandler_IsAllowed_Return_True_If_Privilege_Exists(t *testing.T assert.True(t, result) - handler.Process(&PrivilegeAdded{ + _, _ = handler.Process(&PrivilegeAdded{ Email: "jim@example.org", CompanyID: "abc-123", Privilege: PrivilegeAccounting, - }) + }, goamqp.Headers{}) result = handler.IsAllowed("jim@example.org", "abc-123", func(privileges CompanyPrivileges) bool { return privileges.Accounting @@ -213,11 +225,11 @@ func TestPrivilegeHandler_IsAllowed_Return_True_If_Privilege_Exists(t *testing.T assert.True(t, result) - handler.Process(&PrivilegeAdded{ + _, _ = handler.Process(&PrivilegeAdded{ Email: "jim@example.org", CompanyID: "abc-123", Privilege: PrivilegeSupplier, - }) + }, goamqp.Headers{}) result = handler.IsAllowed("jim@example.org", "abc-123", func(privileges CompanyPrivileges) bool { return privileges.Supplier diff --git a/go.mod b/go.mod index dcad3e2..5c95bd8 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,7 @@ module gitlab.com/unboundsoftware/shiny/authz_client go 1.13 -require github.com/stretchr/testify v1.4.0 +require ( + github.com/stretchr/testify v1.4.0 + gitlab.com/sparetimecoders/goamqp v0.3.1 +) diff --git a/go.sum b/go.sum index 8fdee58..61f118a 100644 --- a/go.sum +++ b/go.sum @@ -1,10 +1,20 @@ +github.com/caarlos0/env v3.5.0+incompatible/go.mod h1:tdCsowwCzMLdkqRYDlHpZCp2UooDD3MspDBjZ2AD02Y= 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/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 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/streadway/amqp v0.0.0-20190827072141-edfb9018d271 h1:WhxRHzgeVGETMlmVfqhRn8RIeeNoPr2Czh33I4Zdccw= +github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +gitlab.com/sparetimecoders/goamqp v0.3.1 h1:Pf5nANlKzCP6h5MVrKgfKknf3Vkz3psGh97Mh8Coxqs= +gitlab.com/sparetimecoders/goamqp v0.3.1/go.mod h1:Xci7oyW/j9kJXr0QRgLRGv8e0R91ZSksPhYCei5FK5U= 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/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=