From 3b1e3572890f3413366bc27d6ed069f614ca7ae2 Mon Sep 17 00:00:00 2001 From: bsoniam Date: Fri, 25 Oct 2019 16:31:17 +0200 Subject: [PATCH 1/8] correcting the error format + logging errors --- api/account/api.go | 23 +++++++------ internal/keycloakb/errormessages.go | 1 + pkg/account/component.go | 53 ++++++++++++++++++++++++----- pkg/account/endpoint.go | 4 +-- 4 files changed, 60 insertions(+), 21 deletions(-) diff --git a/api/account/api.go b/api/account/api.go index 128a785f6..14e374d88 100644 --- a/api/account/api.go +++ b/api/account/api.go @@ -4,6 +4,7 @@ import ( "errors" "regexp" + internal "github.com/cloudtrust/keycloak-bridge/internal/keycloakb" kc "github.com/cloudtrust/keycloak-client" ) @@ -107,23 +108,23 @@ func ConvertToKCUser(user AccountRepresentation) kc.UserRepresentation { // Validate is a validator for AccountRepresentation func (user AccountRepresentation) Validate() error { if user.Username != nil && !matchesRegExp(*user.Username, RegExpUsername) { - return errors.New("Invalid username") + return errors.New(internal.MsgErrInvalidParam + "." + internal.Username) } if user.Email != nil && !matchesRegExp(*user.Email, RegExpEmail) { - return errors.New("Invalid email") + return errors.New(internal.MsgErrInvalidParam + "." + internal.Email) } if user.FirstName != nil && !matchesRegExp(*user.FirstName, RegExpFirstName) { - return errors.New("Invalid firstname") + return errors.New(internal.MsgErrInvalidParam + "." + internal.Firstname) } if user.LastName != nil && !matchesRegExp(*user.LastName, RegExpLastName) { - return errors.New("Invalid lastname") + return errors.New(internal.MsgErrInvalidParam + "." + internal.Lastname) } if user.PhoneNumber != nil && !matchesRegExp(*user.PhoneNumber, RegExpPhoneNumber) { - return errors.New("Invalid phone number") + return errors.New(internal.MsgErrInvalidParam + "." + internal.PhoneNumber) } return nil @@ -132,15 +133,15 @@ func (user AccountRepresentation) Validate() error { // Validate is a validator for UpdatePasswordBody func (updatePwd UpdatePasswordBody) Validate() error { if !matchesRegExp(updatePwd.CurrentPassword, RegExpPassword) { - return errors.New("Invalid current Password") + return errors.New(internal.MsgErrInvalidParam + "." + internal.CurrentPassword) } if !matchesRegExp(updatePwd.NewPassword, RegExpPassword) { - return errors.New("Invalid new Password") + return errors.New(internal.MsgErrInvalidParam + "." + internal.NewPassword) } if !matchesRegExp(updatePwd.ConfirmPassword, RegExpPassword) { - return errors.New("Invalid confirm Password") + return errors.New(internal.MsgErrInvalidParam + "." + internal.ConfirmPassword) } return nil @@ -149,15 +150,15 @@ func (updatePwd UpdatePasswordBody) Validate() error { // Validate is a validator for CredentialRepresentation func (credential CredentialRepresentation) Validate() error { if credential.ID != nil && !matchesRegExp(*credential.ID, RegExpID) { - return errors.New("Invalid Id") + return errors.New(internal.MsgErrInvalidParam + "." + internal.ID) } if credential.Type != nil && !matchesRegExp(*credential.Type, RegExpType) { - return errors.New("Invalid Type") + return errors.New(internal.MsgErrInvalidParam + "." + internal.Type) } if credential.UserLabel != nil && !matchesRegExp(*credential.UserLabel, RegExpLabel) { - return errors.New("Invalid Label") + return errors.New(internal.MsgErrInvalidParam + "." + internal.Label) } return nil diff --git a/internal/keycloakb/errormessages.go b/internal/keycloakb/errormessages.go index 7f08c5396..d021b4c0f 100644 --- a/internal/keycloakb/errormessages.go +++ b/internal/keycloakb/errormessages.go @@ -24,6 +24,7 @@ const ( UserID = "userId" Username = "username" User = "user" + UserLabel = "userLabel" Email = "email" Firstname = "firstname" Lastname = "lastname" diff --git a/pkg/account/component.go b/pkg/account/component.go index 344a6c174..28649244c 100644 --- a/pkg/account/component.go +++ b/pkg/account/component.go @@ -262,8 +262,21 @@ func (c *component) UpdateLabelCredential(ctx context.Context, credentialID stri //store the API call into the DB // the error should be treated - additionalInfos, _ := json.Marshal(map[string]string{"credentialID": credentialID, "label": label}) - _ = c.reportEvent(ctx, "SELF_UPDATE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) + additionalInfos, err := json.Marshal(map[string]string{"credentialID": credentialID, "label": label}) + if err != nil { + c.logger.Warn("err", err.Error()) + } + errEvent := c.reportEvent(ctx, "SELF_UPDATE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) + if errEvent != nil { + //store in the logs also the event that failed to be stored in the DB + m := map[string]interface{}{"event_name": "SELF_UPDATE_CREDENTIAL", database.CtEventRealmName: currentRealm, database.CtEventUserID: userID, database.CtEventUsername: username, database.CtEventAdditionalInfo: string(additionalInfos)} + eventJSON, errMarshal := json.Marshal(m) + if errMarshal == nil { + c.logger.Error("err", errEvent.Error(), "event", string(eventJSON)) + } else { + c.logger.Error("err", errEvent.Error()) + } + } return nil } @@ -283,9 +296,21 @@ func (c *component) DeleteCredential(ctx context.Context, credentialID string) e //store the API call into the DB // the error should be treated - additionalInfos, _ := json.Marshal(map[string]string{"credentialID": credentialID}) - _ = c.reportEvent(ctx, "SELF_DELETE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) - + additionalInfos, err := json.Marshal(map[string]string{"credentialID": credentialID}) + if err != nil { + c.logger.Warn("err", err.Error()) + } + errEvent := c.reportEvent(ctx, "SELF_DELETE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) + if errEvent != nil { + //store in the logs also the event that failed to be stored in the DB + m := map[string]interface{}{"event_name": "SELF_DELETE_CREDENTIAL", database.CtEventRealmName: currentRealm, database.CtEventUserID: userID, database.CtEventUsername: username, database.CtEventAdditionalInfo: string(additionalInfos)} + eventJSON, errMarshal := json.Marshal(m) + if errMarshal == nil { + c.logger.Error("err", errEvent.Error(), "event", string(eventJSON)) + } else { + c.logger.Error("err", errEvent.Error()) + } + } return nil } @@ -309,9 +334,21 @@ func (c *component) MoveCredential(ctx context.Context, credentialID string, pre //store the API call into the DB // the error should be treated - additionalInfos, _ := json.Marshal(map[string]string{"credentialID": credentialID, "previousCredentialID": previousCredentialID}) - _ = c.reportEvent(ctx, "SELF_MOVE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) - + additionalInfos, err := json.Marshal(map[string]string{"credentialID": credentialID, "previousCredentialID": previousCredentialID}) + if err != nil { + c.logger.Warn("err", err.Error()) + } + errEvent := c.reportEvent(ctx, "SELF_MOVE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) + if errEvent != nil { + //store in the logs also the event that failed to be stored in the DB + m := map[string]interface{}{"event_name": "SELF_MOVE_CREDENTIAL", database.CtEventRealmName: currentRealm, database.CtEventUserID: userID, database.CtEventUsername: username, database.CtEventAdditionalInfo: string(additionalInfos)} + eventJSON, errMarshal := json.Marshal(m) + if errMarshal == nil { + c.logger.Error("err", errEvent.Error(), "event", string(eventJSON)) + } else { + c.logger.Error("err", errEvent.Error()) + } + } return nil } diff --git a/pkg/account/endpoint.go b/pkg/account/endpoint.go index d4f0fed80..67622dce8 100644 --- a/pkg/account/endpoint.go +++ b/pkg/account/endpoint.go @@ -88,7 +88,7 @@ func MakeUpdateLabelCredentialEndpoint(component AccountComponent) cs.Endpoint { err := json.Unmarshal([]byte(m["body"]), &body) if err != nil { - return nil, errrorhandler.CreateBadRequestError("Invalid body") + return nil, errrorhandler.CreateBadRequestError(internal.MsgErrInvalidParam + "." + internal.Body) } if err = body.Validate(); err != nil { @@ -96,7 +96,7 @@ func MakeUpdateLabelCredentialEndpoint(component AccountComponent) cs.Endpoint { } if body.UserLabel == nil { - return nil, errrorhandler.CreateBadRequestError("User label missing") + return nil, errrorhandler.CreateBadRequestError(internal.MsgErrMissingParam + "." + internal.UserLabel) } return nil, component.UpdateLabelCredential(ctx, m["credentialID"], *body.UserLabel) From 4b480d2bb9e8378dca399488ac977c12945c2445 Mon Sep 17 00:00:00 2001 From: bsoniam Date: Mon, 28 Oct 2019 10:45:00 +0100 Subject: [PATCH 2/8] refactor code --- internal/keycloakb/logging.go | 22 ++++++++++++ pkg/account/component.go | 47 +++++++++---------------- pkg/account/component_test.go | 1 + pkg/events/component.go | 9 +---- pkg/management/component.go | 66 +++++------------------------------ 5 files changed, 48 insertions(+), 97 deletions(-) diff --git a/internal/keycloakb/logging.go b/internal/keycloakb/logging.go index 9aec2f0a6..881481611 100644 --- a/internal/keycloakb/logging.go +++ b/internal/keycloakb/logging.go @@ -1,5 +1,10 @@ package keycloakb +import ( + "context" + "encoding/json" +) + // Logger interface for logging with level type Logger interface { Debug(keyvals ...interface{}) error @@ -7,3 +12,20 @@ type Logger interface { Warn(keyvals ...interface{}) error Error(keyvals ...interface{}) error } + +// LogUnrecordedEvent logs the events that could not be reported in the DB +func LogUnrecordedEvent(ctx context.Context, logger Logger, eventName string, errorMessage string, values ...string) { + if len(values)%2 != 0 { + logger.Error("err", "When logging an unrecorded event the number of parameters should be even") + } + m := map[string]interface{}{"event_name": eventName} + for i := 0; i < len(values); i += 2 { + m[values[i]] = values[i+1] + } + eventJSON, errMarshal := json.Marshal(m) + if errMarshal == nil { + logger.Error("err", errorMessage, "event", string(eventJSON)) + } else { + logger.Error("err", errorMessage) + } +} diff --git a/pkg/account/component.go b/pkg/account/component.go index 28649244c..428bac248 100644 --- a/pkg/account/component.go +++ b/pkg/account/component.go @@ -94,14 +94,7 @@ func (c *component) UpdatePassword(ctx context.Context, currentPassword, newPass errEvent := c.reportEvent(ctx, "PASSWORD_RESET", database.CtEventRealmName, realm, database.CtEventUserID, userID, database.CtEventUsername, username) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": "PASSWORD_RESET", database.CtEventRealmName: realm, database.CtEventUserID: userID, database.CtEventUsername: username} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - c.logger.Error("err", errEvent.Error(), "event", string(eventJSON)) - } else { - c.logger.Error("err", errEvent.Error()) - } - + internal.LogUnrecordedEvent(ctx, c.logger, "PASSWORD_RESET", errEvent.Error(), database.CtEventRealmName, realm, database.CtEventUserID, userID, database.CtEventUsername, username) } return nil @@ -194,7 +187,11 @@ func (c *component) UpdateAccount(ctx context.Context, user api.AccountRepresent } //store the API call into the DB - _ = c.reportEvent(ctx, "UPDATE_ACCOUNT", database.CtEventRealmName, realm, database.CtEventUserID, userID, database.CtEventUsername, username) + errEvent := c.reportEvent(ctx, "UPDATE_ACCOUNT", database.CtEventRealmName, realm, database.CtEventUserID, userID, database.CtEventUsername, username) + if errEvent != nil { + //store in the logs also the event that failed to be stored in the DB + internal.LogUnrecordedEvent(ctx, c.logger, "UPDATE_ACCOUNT", errEvent.Error(), database.CtEventRealmName, realm, database.CtEventUserID, userID, database.CtEventUsername, username) + } return nil } @@ -210,6 +207,13 @@ func (c *component) DeleteAccount(ctx context.Context) error { return err } + //store the API call into the DB + errEvent := c.reportEvent(ctx, "SELF_DELETE_ACCOUNT", database.CtEventRealmName, realm) + if errEvent != nil { + //store in the logs also the event that failed to be stored in the DB + internal.LogUnrecordedEvent(ctx, c.logger, "SELF_DELETE_ACCOUNT", errEvent.Error(), database.CtEventRealmName, realm) + } + return nil } @@ -269,13 +273,7 @@ func (c *component) UpdateLabelCredential(ctx context.Context, credentialID stri errEvent := c.reportEvent(ctx, "SELF_UPDATE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": "SELF_UPDATE_CREDENTIAL", database.CtEventRealmName: currentRealm, database.CtEventUserID: userID, database.CtEventUsername: username, database.CtEventAdditionalInfo: string(additionalInfos)} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - c.logger.Error("err", errEvent.Error(), "event", string(eventJSON)) - } else { - c.logger.Error("err", errEvent.Error()) - } + internal.LogUnrecordedEvent(ctx, c.logger, "SELF_UPDATE_CREDENTIAL", errEvent.Error(), database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) } return nil @@ -302,14 +300,7 @@ func (c *component) DeleteCredential(ctx context.Context, credentialID string) e } errEvent := c.reportEvent(ctx, "SELF_DELETE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) if errEvent != nil { - //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": "SELF_DELETE_CREDENTIAL", database.CtEventRealmName: currentRealm, database.CtEventUserID: userID, database.CtEventUsername: username, database.CtEventAdditionalInfo: string(additionalInfos)} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - c.logger.Error("err", errEvent.Error(), "event", string(eventJSON)) - } else { - c.logger.Error("err", errEvent.Error()) - } + internal.LogUnrecordedEvent(ctx, c.logger, "SELF_DELETE_CREDENTIAL", errEvent.Error(), database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) } return nil } @@ -341,13 +332,7 @@ func (c *component) MoveCredential(ctx context.Context, credentialID string, pre errEvent := c.reportEvent(ctx, "SELF_MOVE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": "SELF_MOVE_CREDENTIAL", database.CtEventRealmName: currentRealm, database.CtEventUserID: userID, database.CtEventUsername: username, database.CtEventAdditionalInfo: string(additionalInfos)} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - c.logger.Error("err", errEvent.Error(), "event", string(eventJSON)) - } else { - c.logger.Error("err", errEvent.Error()) - } + internal.LogUnrecordedEvent(ctx, c.logger, "SELF_MOVE_CREDENTIAL", errEvent.Error(), database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) } return nil } diff --git a/pkg/account/component_test.go b/pkg/account/component_test.go index 8a8e34707..86abb2eec 100644 --- a/pkg/account/component_test.go +++ b/pkg/account/component_test.go @@ -391,6 +391,7 @@ func TestDeleteUser(t *testing.T) { // Delete user with succces { mockKeycloakAccountClient.EXPECT().DeleteAccount(accessToken, realmName).Return(nil).Times(1) + mockEventDBModule.EXPECT().ReportEvent(ctx, "SELF_DELETE_ACCOUNT", "self-service", gomock.Any(), gomock.Any()).Return(nil).AnyTimes() err := accountComponent.DeleteAccount(ctx) diff --git a/pkg/events/component.go b/pkg/events/component.go index 918ae4a43..14fd3a8d8 100644 --- a/pkg/events/component.go +++ b/pkg/events/component.go @@ -2,7 +2,6 @@ package events import ( "context" - "encoding/json" "github.com/cloudtrust/common-service/database" errorhandler "github.com/cloudtrust/common-service/errors" @@ -68,13 +67,7 @@ func (ec *component) GetUserEvents(ctx context.Context, params map[string]string err := ec.reportEvent(ctx, "GET_ACTIVITY", database.CtEventRealmName, params["realm"], database.CtEventUserID, params["userID"]) if err != nil { //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": "GET_ACTIVITY", database.CtEventRealmName: params["realm"], database.CtEventUserID: params["userID"]} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - ec.logger.Error("err", err.Error(), "event", string(eventJSON)) - } else { - ec.logger.Error("err", err.Error()) - } + app.LogUnrecordedEvent(ctx, ec.logger, "GET_ACTIVITY", err.Error(), database.CtEventRealmName, params["realm"], database.CtEventUserID, params["userID"]) } return ec.GetEvents(ctx, params) } diff --git a/pkg/management/component.go b/pkg/management/component.go index 25f244d79..10d2e97a5 100644 --- a/pkg/management/component.go +++ b/pkg/management/component.go @@ -2,7 +2,6 @@ package management import ( "context" - "encoding/json" "regexp" "strings" @@ -230,13 +229,7 @@ func (c *component) CreateUser(ctx context.Context, realmName string, user api.U err = c.reportEvent(ctx, "API_ACCOUNT_CREATION", database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) if err != nil { //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": "API_ACCOUNT_CREATION", database.CtEventRealmName: realmName, database.CtEventUserID: userID, database.CtEventUsername: username} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - c.logger.Error("err", err.Error(), "event", string(eventJSON)) - } else { - c.logger.Error("err", err.Error()) - } + internal.LogUnrecordedEvent(ctx, c.logger, "API_ACCOUNT_CREATION", err.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) } return locationURL, nil @@ -256,13 +249,7 @@ func (c *component) DeleteUser(ctx context.Context, realmName, userID string) er err = c.reportEvent(ctx, "API_ACCOUNT_DELETION", database.CtEventRealmName, realmName, database.CtEventUserID, userID) if err != nil { //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": "API_ACCOUNT_DELETION", database.CtEventRealmName: realmName, database.CtEventUserID: userID} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - c.logger.Error("err", err.Error(), "event", string(eventJSON)) - } else { - c.logger.Error("err", err.Error()) - } + internal.LogUnrecordedEvent(ctx, c.logger, "API_ACCOUNT_DELETION", err.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID) } return nil @@ -290,13 +277,7 @@ func (c *component) GetUser(ctx context.Context, realmName, userID string) (api. err = c.reportEvent(ctx, "GET_DETAILS", database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) if err != nil { //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": "GET_DETAILS", database.CtEventRealmName: realmName, database.CtEventUserID: userID, database.CtEventUsername: username} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - c.logger.Error("err", err.Error(), "event", string(eventJSON)) - } else { - c.logger.Error("err", err.Error()) - } + internal.LogUnrecordedEvent(ctx, c.logger, "GET_DETAILS", err.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) } return userRep, nil @@ -379,13 +360,7 @@ func (c *component) UpdateUser(ctx context.Context, realmName, userID string, us err = c.reportEvent(ctx, ctEventType, database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) if err != nil { //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": ctEventType, database.CtEventRealmName: realmName, database.CtEventUserID: userID, database.CtEventUsername: username} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - c.logger.Error("err", err.Error(), "event", string(eventJSON)) - } else { - c.logger.Error("err", err.Error()) - } + internal.LogUnrecordedEvent(ctx, c.logger, ctEventType, err.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) } } @@ -581,13 +556,7 @@ func (c *component) ResetPassword(ctx context.Context, realmName string, userID err = c.reportEvent(ctx, "INIT_PASSWORD", database.CtEventRealmName, realmName, database.CtEventUserID, userID) if err != nil { //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": "INIT_PASSWORD", database.CtEventRealmName: realmName, database.CtEventUserID: userID} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - c.logger.Error("err", err.Error(), "event", string(eventJSON)) - } else { - c.logger.Error("err", err.Error()) - } + internal.LogUnrecordedEvent(ctx, c.logger, "INIT_PASSWORD", err.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID) } return pwd, nil @@ -617,14 +586,7 @@ func (c *component) ExecuteActionsEmail(ctx context.Context, realmName string, u err := c.reportEvent(ctx, "INIT_PASSWORD", database.CtEventRealmName, realmName, database.CtEventUserID, userID) if err != nil { //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": "INIT_PASSWORD", database.CtEventRealmName: realmName, database.CtEventUserID: userID} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - c.logger.Error("err", err.Error(), "event", string(eventJSON)) - } else { - c.logger.Error("err", err.Error()) - } - + internal.LogUnrecordedEvent(ctx, c.logger, "INIT_PASSWORD", err.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID) } } } @@ -652,13 +614,7 @@ func (c *component) SendNewEnrolmentCode(ctx context.Context, realmName string, errEvent := c.reportEvent(ctx, "SMS_CHALLENGE", database.CtEventRealmName, realmName, database.CtEventUserID, userID) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": "SMS_CHALLENGE", database.CtEventRealmName: realmName, database.CtEventUserID: userID} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - c.logger.Error("err", errEvent.Error(), "event", string(eventJSON)) - } else { - c.logger.Error("err", errEvent.Error()) - } + internal.LogUnrecordedEvent(ctx, c.logger, "SMS_CHALLENGE", errEvent.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID) } return *smsCodeKc.Code, err @@ -716,13 +672,7 @@ func (c *component) DeleteCredentialsForUser(ctx context.Context, realmName stri errEvent := c.reportEvent(ctx, "2ND_FACTOR_REMOVED", database.CtEventRealmName, realmName, database.CtEventUserID, userID) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB - m := map[string]interface{}{"event_name": "2ND_FACTOR_REMOVED", database.CtEventRealmName: realmName, database.CtEventUserID: userID} - eventJSON, errMarshal := json.Marshal(m) - if errMarshal == nil { - c.logger.Error("err", errEvent.Error(), "event", string(eventJSON)) - } else { - c.logger.Error("err", errEvent.Error()) - } + internal.LogUnrecordedEvent(ctx, c.logger, "2ND_FACTOR_REMOVED", errEvent.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID) } break } From c6462f731b0d221268b41e1e12e89581b48588a1 Mon Sep 17 00:00:00 2001 From: bsoniam Date: Mon, 28 Oct 2019 10:51:26 +0100 Subject: [PATCH 3/8] fixup! refactor code --- pkg/account/component.go | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/pkg/account/component.go b/pkg/account/component.go index 428bac248..6ea848886 100644 --- a/pkg/account/component.go +++ b/pkg/account/component.go @@ -266,10 +266,8 @@ func (c *component) UpdateLabelCredential(ctx context.Context, credentialID stri //store the API call into the DB // the error should be treated - additionalInfos, err := json.Marshal(map[string]string{"credentialID": credentialID, "label": label}) - if err != nil { - c.logger.Warn("err", err.Error()) - } + additionalInfos, _ := json.Marshal(map[string]string{"credentialID": credentialID, "label": label}) + errEvent := c.reportEvent(ctx, "SELF_UPDATE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB @@ -292,12 +290,9 @@ func (c *component) DeleteCredential(ctx context.Context, credentialID string) e return err } + additionalInfos, _ := json.Marshal(map[string]string{"credentialID": credentialID}) + //store the API call into the DB - // the error should be treated - additionalInfos, err := json.Marshal(map[string]string{"credentialID": credentialID}) - if err != nil { - c.logger.Warn("err", err.Error()) - } errEvent := c.reportEvent(ctx, "SELF_DELETE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) if errEvent != nil { internal.LogUnrecordedEvent(ctx, c.logger, "SELF_DELETE_CREDENTIAL", errEvent.Error(), database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) @@ -323,12 +318,9 @@ func (c *component) MoveCredential(ctx context.Context, credentialID string, pre return err } - //store the API call into the DB - // the error should be treated additionalInfos, err := json.Marshal(map[string]string{"credentialID": credentialID, "previousCredentialID": previousCredentialID}) - if err != nil { - c.logger.Warn("err", err.Error()) - } + + //store the API call into the DB errEvent := c.reportEvent(ctx, "SELF_MOVE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB From 1619a0334bffe20adaebf015e700018c990abc18 Mon Sep 17 00:00:00 2001 From: bsoniam Date: Mon, 28 Oct 2019 15:07:58 +0100 Subject: [PATCH 4/8] fixup! fixup! refactor code --- pkg/account/component.go | 45 ++++++++++------------------- pkg/events/component.go | 15 +++++----- pkg/management/component.go | 56 ++++++++++--------------------------- 3 files changed, 37 insertions(+), 79 deletions(-) diff --git a/pkg/account/component.go b/pkg/account/component.go index 6ea848886..36f751c1d 100644 --- a/pkg/account/component.go +++ b/pkg/account/component.go @@ -67,8 +67,12 @@ func NewComponent(keycloakAccountClient KeycloakAccountClient, eventDBModule dat } } -func (c *component) reportEvent(ctx context.Context, apiCall string, values ...string) error { - return c.eventDBModule.ReportEvent(ctx, apiCall, "self-service", values...) +func (c *component) reportEvent(ctx context.Context, apiCall string, values ...string) { + errEvent := c.eventDBModule.ReportEvent(ctx, apiCall, "self-service", values...) + if errEvent != nil { + //store in the logs also the event that failed to be stored in the DB + internal.LogUnrecordedEvent(ctx, c.logger, apiCall, errEvent.Error(), values) + } } func (c *component) UpdatePassword(ctx context.Context, currentPassword, newPassword, confirmPassword string) error { @@ -91,11 +95,7 @@ func (c *component) UpdatePassword(ctx context.Context, currentPassword, newPass } //store the API call into the DB - errEvent := c.reportEvent(ctx, "PASSWORD_RESET", database.CtEventRealmName, realm, database.CtEventUserID, userID, database.CtEventUsername, username) - if errEvent != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, "PASSWORD_RESET", errEvent.Error(), database.CtEventRealmName, realm, database.CtEventUserID, userID, database.CtEventUsername, username) - } + c.reportEvent(ctx, "PASSWORD_RESET", database.CtEventRealmName, realm, database.CtEventUserID, userID, database.CtEventUsername, username) return nil } @@ -187,11 +187,7 @@ func (c *component) UpdateAccount(ctx context.Context, user api.AccountRepresent } //store the API call into the DB - errEvent := c.reportEvent(ctx, "UPDATE_ACCOUNT", database.CtEventRealmName, realm, database.CtEventUserID, userID, database.CtEventUsername, username) - if errEvent != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, "UPDATE_ACCOUNT", errEvent.Error(), database.CtEventRealmName, realm, database.CtEventUserID, userID, database.CtEventUsername, username) - } + c.reportEvent(ctx, "UPDATE_ACCOUNT", database.CtEventRealmName, realm, database.CtEventUserID, userID, database.CtEventUsername, username) return nil } @@ -208,11 +204,7 @@ func (c *component) DeleteAccount(ctx context.Context) error { } //store the API call into the DB - errEvent := c.reportEvent(ctx, "SELF_DELETE_ACCOUNT", database.CtEventRealmName, realm) - if errEvent != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, "SELF_DELETE_ACCOUNT", errEvent.Error(), database.CtEventRealmName, realm) - } + c.reportEvent(ctx, "SELF_DELETE_ACCOUNT", database.CtEventRealmName, realm) return nil } @@ -268,11 +260,7 @@ func (c *component) UpdateLabelCredential(ctx context.Context, credentialID stri // the error should be treated additionalInfos, _ := json.Marshal(map[string]string{"credentialID": credentialID, "label": label}) - errEvent := c.reportEvent(ctx, "SELF_UPDATE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) - if errEvent != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, "SELF_UPDATE_CREDENTIAL", errEvent.Error(), database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) - } + c.reportEvent(ctx, "SELF_UPDATE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) return nil } @@ -293,10 +281,8 @@ func (c *component) DeleteCredential(ctx context.Context, credentialID string) e additionalInfos, _ := json.Marshal(map[string]string{"credentialID": credentialID}) //store the API call into the DB - errEvent := c.reportEvent(ctx, "SELF_DELETE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) - if errEvent != nil { - internal.LogUnrecordedEvent(ctx, c.logger, "SELF_DELETE_CREDENTIAL", errEvent.Error(), database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) - } + c.reportEvent(ctx, "SELF_DELETE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) + return nil } @@ -321,11 +307,8 @@ func (c *component) MoveCredential(ctx context.Context, credentialID string, pre additionalInfos, err := json.Marshal(map[string]string{"credentialID": credentialID, "previousCredentialID": previousCredentialID}) //store the API call into the DB - errEvent := c.reportEvent(ctx, "SELF_MOVE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) - if errEvent != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, "SELF_MOVE_CREDENTIAL", errEvent.Error(), database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) - } + c.reportEvent(ctx, "SELF_MOVE_CREDENTIAL", database.CtEventRealmName, currentRealm, database.CtEventUserID, userID, database.CtEventUsername, username, database.CtEventAdditionalInfo, string(additionalInfos)) + return nil } diff --git a/pkg/events/component.go b/pkg/events/component.go index 14fd3a8d8..587728a68 100644 --- a/pkg/events/component.go +++ b/pkg/events/component.go @@ -31,8 +31,13 @@ func NewComponent(db app.EventsDBModule, eventDBModule database.EventsDBModule, } } -func (ec *component) reportEvent(ctx context.Context, apiCall string, values ...string) error { - return ec.eventDBModule.ReportEvent(ctx, apiCall, "back-office", values...) +func (ec *component) reportEvent(ctx context.Context, apiCall string, values ...string) { + errEvent := ec.eventDBModule.ReportEvent(ctx, apiCall, "back-office", values...) + if errEvent != nil { + //store in the logs also the event that failed to be stored in the DB + internal.LogUnrecordedEvent(ctx, c.logger, apiCall, errEvent.Error(), values) + } + } // Get events according to optional parameters @@ -64,10 +69,6 @@ func (ec *component) GetUserEvents(ctx context.Context, params map[string]string return api.AuditEventsRepresentation{}, errorhandler.CreateMissingParameterError(app.UserID) } - err := ec.reportEvent(ctx, "GET_ACTIVITY", database.CtEventRealmName, params["realm"], database.CtEventUserID, params["userID"]) - if err != nil { - //store in the logs also the event that failed to be stored in the DB - app.LogUnrecordedEvent(ctx, ec.logger, "GET_ACTIVITY", err.Error(), database.CtEventRealmName, params["realm"], database.CtEventUserID, params["userID"]) - } + ec.reportEvent(ctx, "GET_ACTIVITY", database.CtEventRealmName, params["realm"], database.CtEventUserID, params["userID"]) return ec.GetEvents(ctx, params) } diff --git a/pkg/management/component.go b/pkg/management/component.go index 10d2e97a5..cda859ee9 100644 --- a/pkg/management/component.go +++ b/pkg/management/component.go @@ -107,7 +107,11 @@ func NewComponent(keycloakClient KeycloakClient, eventDBModule database.EventsDB } func (c *component) reportEvent(ctx context.Context, apiCall string, values ...string) error { - return c.eventDBModule.ReportEvent(ctx, apiCall, "back-office", values...) + errEvent := c.eventDBModule.ReportEvent(ctx, apiCall, "back-office", values...) + if errEvent != nil { + //store in the logs also the event that failed to be stored in the DB + internal.LogUnrecordedEvent(ctx, c.logger, apiCall, errEvent.Error(), values) + } } func (c *component) GetRealms(ctx context.Context) ([]api.RealmRepresentation, error) { @@ -226,11 +230,7 @@ func (c *component) CreateUser(ctx context.Context, realmName string, user api.U userID := string(reg.Find([]byte(locationURL))) //store the API call into the DB - err = c.reportEvent(ctx, "API_ACCOUNT_CREATION", database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) - if err != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, "API_ACCOUNT_CREATION", err.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) - } + c.reportEvent(ctx, "API_ACCOUNT_CREATION", database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) return locationURL, nil } @@ -246,11 +246,7 @@ func (c *component) DeleteUser(ctx context.Context, realmName, userID string) er } //store the API call into the DB - err = c.reportEvent(ctx, "API_ACCOUNT_DELETION", database.CtEventRealmName, realmName, database.CtEventUserID, userID) - if err != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, "API_ACCOUNT_DELETION", err.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID) - } + c.reportEvent(ctx, "API_ACCOUNT_DELETION", database.CtEventRealmName, realmName, database.CtEventUserID, userID) return nil } @@ -274,11 +270,8 @@ func (c *component) GetUser(ctx context.Context, realmName, userID string) (api. } //store the API call into the DB - err = c.reportEvent(ctx, "GET_DETAILS", database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) - if err != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, "GET_DETAILS", err.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) - } + c.reportEvent(ctx, "GET_DETAILS", database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) + return userRep, nil } @@ -357,11 +350,8 @@ func (c *component) UpdateUser(ctx context.Context, realmName, userID string, us ctEventType = "LOCK_ACCOUNT" } - err = c.reportEvent(ctx, ctEventType, database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) - if err != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, ctEventType, err.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) - } + c.reportEvent(ctx, ctEventType, database.CtEventRealmName, realmName, database.CtEventUserID, userID, database.CtEventUsername, username) + } return nil @@ -553,11 +543,7 @@ func (c *component) ResetPassword(ctx context.Context, realmName string, userID } //store the API call into the DB - err = c.reportEvent(ctx, "INIT_PASSWORD", database.CtEventRealmName, realmName, database.CtEventUserID, userID) - if err != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, "INIT_PASSWORD", err.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID) - } + c.reportEvent(ctx, "INIT_PASSWORD", database.CtEventRealmName, realmName, database.CtEventUserID, userID) return pwd, nil } @@ -583,11 +569,7 @@ func (c *component) ExecuteActionsEmail(ctx context.Context, realmName string, u actions = append(actions, string(requiredAction)) if string(requiredAction) == initPasswordAction { //store the API call into the DB - err := c.reportEvent(ctx, "INIT_PASSWORD", database.CtEventRealmName, realmName, database.CtEventUserID, userID) - if err != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, "INIT_PASSWORD", err.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID) - } + c.reportEvent(ctx, "INIT_PASSWORD", database.CtEventRealmName, realmName, database.CtEventUserID, userID) } } @@ -611,11 +593,7 @@ func (c *component) SendNewEnrolmentCode(ctx context.Context, realmName string, } // store the API call into the DB - errEvent := c.reportEvent(ctx, "SMS_CHALLENGE", database.CtEventRealmName, realmName, database.CtEventUserID, userID) - if errEvent != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, "SMS_CHALLENGE", errEvent.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID) - } + c.reportEvent(ctx, "SMS_CHALLENGE", database.CtEventRealmName, realmName, database.CtEventUserID, userID) return *smsCodeKc.Code, err } @@ -669,11 +647,7 @@ func (c *component) DeleteCredentialsForUser(ctx context.Context, realmName stri for _, credKc := range credsKc { if *credKc.Id == credentialID && *credKc.Type != "password" { - errEvent := c.reportEvent(ctx, "2ND_FACTOR_REMOVED", database.CtEventRealmName, realmName, database.CtEventUserID, userID) - if errEvent != nil { - //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, "2ND_FACTOR_REMOVED", errEvent.Error(), database.CtEventRealmName, realmName, database.CtEventUserID, userID) - } + c.reportEvent(ctx, "2ND_FACTOR_REMOVED", database.CtEventRealmName, realmName, database.CtEventUserID, userID) break } } From 78269bbbd6dead60348a90fba7bedc8a98b63f62 Mon Sep 17 00:00:00 2001 From: bsoniam Date: Mon, 28 Oct 2019 15:10:12 +0100 Subject: [PATCH 5/8] fixup! fixup! fixup! refactor code --- pkg/management/component.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/management/component.go b/pkg/management/component.go index cda859ee9..634a7a347 100644 --- a/pkg/management/component.go +++ b/pkg/management/component.go @@ -106,7 +106,7 @@ func NewComponent(keycloakClient KeycloakClient, eventDBModule database.EventsDB } } -func (c *component) reportEvent(ctx context.Context, apiCall string, values ...string) error { +func (c *component) reportEvent(ctx context.Context, apiCall string, values ...string) { errEvent := c.eventDBModule.ReportEvent(ctx, apiCall, "back-office", values...) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB From 475846f3319f2bd720f8968c234fd4678af0e9e4 Mon Sep 17 00:00:00 2001 From: bsoniam Date: Mon, 28 Oct 2019 15:35:09 +0100 Subject: [PATCH 6/8] fixup! fixup! fixup! fixup! refactor code --- pkg/account/component.go | 2 +- pkg/events/component.go | 2 +- pkg/management/component.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/account/component.go b/pkg/account/component.go index 36f751c1d..f83fff6fd 100644 --- a/pkg/account/component.go +++ b/pkg/account/component.go @@ -71,7 +71,7 @@ func (c *component) reportEvent(ctx context.Context, apiCall string, values ...s errEvent := c.eventDBModule.ReportEvent(ctx, apiCall, "self-service", values...) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, apiCall, errEvent.Error(), values) + internal.LogUnrecordedEvent(ctx, c.logger, apiCall, errEvent.Error(), values...) } } diff --git a/pkg/events/component.go b/pkg/events/component.go index 587728a68..c706426e0 100644 --- a/pkg/events/component.go +++ b/pkg/events/component.go @@ -35,7 +35,7 @@ func (ec *component) reportEvent(ctx context.Context, apiCall string, values ... errEvent := ec.eventDBModule.ReportEvent(ctx, apiCall, "back-office", values...) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, apiCall, errEvent.Error(), values) + internal.LogUnrecordedEvent(ctx, c.logger, apiCall, errEvent.Error(), values...) } } diff --git a/pkg/management/component.go b/pkg/management/component.go index 634a7a347..534e3fe87 100644 --- a/pkg/management/component.go +++ b/pkg/management/component.go @@ -110,7 +110,7 @@ func (c *component) reportEvent(ctx context.Context, apiCall string, values ...s errEvent := c.eventDBModule.ReportEvent(ctx, apiCall, "back-office", values...) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, apiCall, errEvent.Error(), values) + internal.LogUnrecordedEvent(ctx, c.logger, apiCall, errEvent.Error(), values...) } } From 49dce55431461d0f02f6a3960fee2aab28717f08 Mon Sep 17 00:00:00 2001 From: bsoniam Date: Mon, 28 Oct 2019 15:43:20 +0100 Subject: [PATCH 7/8] fixup! fixup! fixup! fixup! fixup! refactor code --- pkg/events/component.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/events/component.go b/pkg/events/component.go index c706426e0..1b15c80ec 100644 --- a/pkg/events/component.go +++ b/pkg/events/component.go @@ -31,11 +31,11 @@ func NewComponent(db app.EventsDBModule, eventDBModule database.EventsDBModule, } } -func (ec *component) reportEvent(ctx context.Context, apiCall string, values ...string) { +func (ec *component) reportEvent(ctx context.Context, apiCall string, values ...string) { errEvent := ec.eventDBModule.ReportEvent(ctx, apiCall, "back-office", values...) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB - internal.LogUnrecordedEvent(ctx, c.logger, apiCall, errEvent.Error(), values...) + app.LogUnrecordedEvent(ctx, c.logger, apiCall, errEvent.Error(), values...) } } From 3cb076e8660874b516ec3328fdbcf42d1e914fce Mon Sep 17 00:00:00 2001 From: bsoniam Date: Mon, 28 Oct 2019 15:50:07 +0100 Subject: [PATCH 8/8] fixup! fixup! fixup! fixup! fixup! fixup! refactor code --- pkg/events/component.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/events/component.go b/pkg/events/component.go index 1b15c80ec..f0df14c4f 100644 --- a/pkg/events/component.go +++ b/pkg/events/component.go @@ -35,7 +35,7 @@ func (ec *component) reportEvent(ctx context.Context, apiCall string, values ... errEvent := ec.eventDBModule.ReportEvent(ctx, apiCall, "back-office", values...) if errEvent != nil { //store in the logs also the event that failed to be stored in the DB - app.LogUnrecordedEvent(ctx, c.logger, apiCall, errEvent.Error(), values...) + app.LogUnrecordedEvent(ctx, ec.logger, apiCall, errEvent.Error(), values...) } }