From d9827d43c1b5e2bd4710125832a9268ee6075219 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Mon, 22 Apr 2024 16:00:19 +0300 Subject: [PATCH 01/20] Reforctored errors in auth Signed-off-by: nyagamunene --- auth/api/logging.go | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/auth/api/logging.go b/auth/api/logging.go index 3f2c7537c1..6591db6790 100644 --- a/auth/api/logging.go +++ b/auth/api/logging.go @@ -147,7 +147,7 @@ func (lm *loggingMiddleware) ListPermissions(ctx context.Context, pr auth.Policy } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List permissions failed to complete successfully", args...) + lm.logger.Error("List permissions failed to complete successfully", args...) return } lm.logger.Info("List permissions completed successfully", args...) @@ -167,7 +167,7 @@ func (lm *loggingMiddleware) Issue(ctx context.Context, token string, key auth.K } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Issue key failed to complete successfully", args...) + lm.logger.Error("Issue key failed to complete successfully", args...) return } lm.logger.Info("Issue key completed successfully", args...) @@ -184,7 +184,7 @@ func (lm *loggingMiddleware) Revoke(ctx context.Context, token, id string) (err } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Revoke key failed to complete successfully", args...) + lm.logger.Error("Revoke key failed to complete successfully", args...) return } lm.logger.Info("Revoke key completed successfully", args...) @@ -201,7 +201,7 @@ func (lm *loggingMiddleware) RetrieveKey(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Retrieve key failed to complete successfully", args...) + lm.logger.Error("Retrieve key failed to complete successfully", args...) return } lm.logger.Info("Retrieve key completed successfully", args...) @@ -221,7 +221,7 @@ func (lm *loggingMiddleware) Identify(ctx context.Context, token string) (id aut } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Identify key failed to complete successfully", args...) + lm.logger.Error("Identify key failed to complete successfully", args...) return } lm.logger.Info("Identify key completed successfully", args...) @@ -247,7 +247,7 @@ func (lm *loggingMiddleware) Authorize(ctx context.Context, pr auth.PolicyReq) ( } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Authorize failed to complete successfully", args...) + lm.logger.Error("Authorize failed to complete successfully", args...) return } lm.logger.Info("Authorize completed successfully", args...) @@ -269,7 +269,7 @@ func (lm *loggingMiddleware) AddPolicy(ctx context.Context, pr auth.PolicyReq) ( } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Add policy failed to complete successfully", args...) + lm.logger.Error("Add policy failed to complete successfully", args...) return } lm.logger.Info("Add policy completed successfully", args...) @@ -284,7 +284,7 @@ func (lm *loggingMiddleware) AddPolicies(ctx context.Context, prs []auth.PolicyR } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn(fmt.Sprintf("Add %d policies failed to complete successfully", len(prs)), args...) + lm.logger.Error(fmt.Sprintf("Add %d policies failed to complete successfully", len(prs)), args...) return } lm.logger.Info(fmt.Sprintf("Add %d policies completed successfully", len(prs)), args...) @@ -307,7 +307,7 @@ func (lm *loggingMiddleware) DeletePolicy(ctx context.Context, pr auth.PolicyReq } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Delete policy failed to complete successfully", args...) + lm.logger.Error("Delete policy failed to complete successfully", args...) return } lm.logger.Info("Delete policy completed successfully", args...) @@ -322,7 +322,7 @@ func (lm *loggingMiddleware) DeletePolicies(ctx context.Context, prs []auth.Poli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn(fmt.Sprintf("Delete %d policies failed to complete successfully", len(prs)), args...) + lm.logger.Error(fmt.Sprintf("Delete %d policies failed to complete successfully", len(prs)), args...) return } lm.logger.Info(fmt.Sprintf("Delete %d policies completed successfully", len(prs)), args...) @@ -341,7 +341,7 @@ func (lm *loggingMiddleware) CreateDomain(ctx context.Context, token string, d a } if err != nil { args := append(args, slog.String("error", err.Error())) - lm.logger.Warn("Create domain failed to complete successfully", args...) + lm.logger.Error("Create domain failed to complete successfully", args...) return } lm.logger.Info("Create domain completed successfully", args...) @@ -392,7 +392,7 @@ func (lm *loggingMiddleware) UpdateDomain(ctx context.Context, token, id string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update domain failed to complete successfully", args...) + lm.logger.Error("Update domain failed to complete successfully", args...) return } lm.logger.Info("Update domain completed successfully", args...) @@ -412,7 +412,7 @@ func (lm *loggingMiddleware) ChangeDomainStatus(ctx context.Context, token, id s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Change domain status failed to complete successfully", args...) + lm.logger.Error("Change domain status failed to complete successfully", args...) return } lm.logger.Info("Change domain status completed successfully", args...) @@ -450,7 +450,7 @@ func (lm *loggingMiddleware) AssignUsers(ctx context.Context, token, id string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Assign users to domain failed to complete successfully", args...) + lm.logger.Error("Assign users to domain failed to complete successfully", args...) return } lm.logger.Info("Assign users to domain completed successfully", args...) @@ -468,7 +468,7 @@ func (lm *loggingMiddleware) UnassignUsers(ctx context.Context, token, id string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Unassign users to domain failed to complete successfully", args...) + lm.logger.Error("Unassign users to domain failed to complete successfully", args...) return } lm.logger.Info("Unassign users to domain completed successfully", args...) From a36e033da1f26ab1b0ec3a20bd3728a8bf1c0f4e Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Mon, 22 Apr 2024 16:10:00 +0300 Subject: [PATCH 02/20] Reforctored errors in bootstrap Signed-off-by: nyagamunene --- bootstrap/api/logging.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/bootstrap/api/logging.go b/bootstrap/api/logging.go index eb92d7a45e..728d9a6467 100644 --- a/bootstrap/api/logging.go +++ b/bootstrap/api/logging.go @@ -35,7 +35,7 @@ func (lm *loggingMiddleware) Add(ctx context.Context, token string, cfg bootstra } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Add new bootstrap failed to complete successfully", args...) + lm.logger.Error("Add new bootstrap failed to complete successfully", args...) return } lm.logger.Info("Add new bootstrap completed successfully", args...) @@ -76,7 +76,7 @@ func (lm *loggingMiddleware) Update(ctx context.Context, token string, cfg boots } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update bootstrap config failed to complete successfully", args...) + lm.logger.Error("Update bootstrap config failed to complete successfully", args...) return } lm.logger.Info("Update bootstrap config completed successfully", args...) @@ -95,7 +95,7 @@ func (lm *loggingMiddleware) UpdateCert(ctx context.Context, token, thingID, cli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update bootstrap config certificate failed to complete successfully", args...) + lm.logger.Error("Update bootstrap config certificate failed to complete successfully", args...) return } lm.logger.Info("Update bootstrap config certificate completed successfully", args...) @@ -115,7 +115,7 @@ func (lm *loggingMiddleware) UpdateConnections(ctx context.Context, token, id st } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update config connections failed to complete successfully", args...) + lm.logger.Error("Update config connections failed to complete successfully", args...) return } lm.logger.Info("Update config connections completed successfully", args...) @@ -158,7 +158,7 @@ func (lm *loggingMiddleware) Remove(ctx context.Context, token, id string) (err } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Remove bootstrap config failed to complete successfully", args...) + lm.logger.Error("Remove bootstrap config failed to complete successfully", args...) return } lm.logger.Info("Remove bootstrap config completed successfully", args...) @@ -193,7 +193,7 @@ func (lm *loggingMiddleware) ChangeState(ctx context.Context, token, id string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Change thing state failed to complete successfully", args...) + lm.logger.Error("Change thing state failed to complete successfully", args...) return } lm.logger.Info("Change thing state completed successfully", args...) @@ -214,7 +214,7 @@ func (lm *loggingMiddleware) UpdateChannelHandler(ctx context.Context, channel b } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update channel handler failed to complete successfully", args...) + lm.logger.Error("Update channel handler failed to complete successfully", args...) return } lm.logger.Info("Update channel handler completed successfully", args...) @@ -231,7 +231,7 @@ func (lm *loggingMiddleware) RemoveConfigHandler(ctx context.Context, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Remove config handler failed to complete successfully", args...) + lm.logger.Error("Remove config handler failed to complete successfully", args...) return } lm.logger.Info("Remove config handler completed successfully", args...) @@ -248,7 +248,7 @@ func (lm *loggingMiddleware) RemoveChannelHandler(ctx context.Context, id string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Remove channel handler failed to complete successfully", args...) + lm.logger.Error("Remove channel handler failed to complete successfully", args...) return } lm.logger.Info("Remove channel handler completed successfully", args...) @@ -266,7 +266,7 @@ func (lm *loggingMiddleware) DisconnectThingHandler(ctx context.Context, channel } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Disconnect thing handler failed to complete successfully", args...) + lm.logger.Error("Disconnect thing handler failed to complete successfully", args...) return } lm.logger.Info("Disconnect thing handler completed successfully", args...) From afe9fc744f90caefaf1ef34daeb23f3d570035e4 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Mon, 22 Apr 2024 16:13:31 +0300 Subject: [PATCH 03/20] Reforctored errors in certs Signed-off-by: nyagamunene --- certs/api/logging.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/certs/api/logging.go b/certs/api/logging.go index e83e0ac95c..30b23627fd 100644 --- a/certs/api/logging.go +++ b/certs/api/logging.go @@ -36,7 +36,7 @@ func (lm *loggingMiddleware) IssueCert(ctx context.Context, token, thingID, ttl } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Issue certificate failed to complete successfully", args...) + lm.logger.Error("Issue certificate failed to complete successfully", args...) return } lm.logger.Info("Issue certificate completed successfully", args...) @@ -121,7 +121,7 @@ func (lm *loggingMiddleware) RevokeCert(ctx context.Context, token, thingID stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Revoke certificate failed to complete successfully", args...) + lm.logger.Error("Revoke certificate failed to complete successfully", args...) return } lm.logger.Info("Revoke certificate completed successfully", args...) From 221bffc8a9f3e170a5a8e13caff8be8d060a9d71 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Mon, 22 Apr 2024 16:40:53 +0300 Subject: [PATCH 04/20] Reforctored errors in coap Signed-off-by: nyagamunene --- coap/api/logging.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/coap/api/logging.go b/coap/api/logging.go index 0818110802..b65d70e923 100644 --- a/coap/api/logging.go +++ b/coap/api/logging.go @@ -39,7 +39,7 @@ func (lm *loggingMiddleware) Publish(ctx context.Context, key string, msg *messa } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Publish message failed to complete successfully", args...) + lm.logger.Error("Publish message failed to complete successfully", args...) return } lm.logger.Info("Publish message completed successfully", args...) @@ -61,7 +61,7 @@ func (lm *loggingMiddleware) Subscribe(ctx context.Context, key, chanID, subtopi } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Subscribe failed to complete successfully", args...) + lm.logger.Error("Subscribe failed to complete successfully", args...) return } lm.logger.Info("Subscribe completed successfully", args...) @@ -83,7 +83,7 @@ func (lm *loggingMiddleware) Unsubscribe(ctx context.Context, key, chanID, subto } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Unsubscribe failed to complete successfully", args...) + lm.logger.Error("Unsubscribe failed to complete successfully", args...) return } lm.logger.Info("Unsubscribe completed successfully", args...) From a4e75fca16ae1388b4a01a3a7d1a8ad0f3532b17 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Tue, 23 Apr 2024 11:59:35 +0300 Subject: [PATCH 05/20] Error handling refactoring Signed-off-by: nyagamunene --- consumers/messages.go | 2 +- consumers/notifiers/api/logging.go | 4 ++-- internal/groups/api/logging.go | 14 +++++++------- invitations/middleware/logging.go | 6 +++--- lora/api/logging.go | 14 +++++++------- opcua/api/logging.go | 16 ++++++++-------- provision/api/logging.go | 6 +++--- things/api/logging.go | 18 +++++++++--------- twins/api/logging.go | 8 ++++---- users/api/logging.go | 26 +++++++++++++------------- ws/api/logging.go | 2 +- 11 files changed, 58 insertions(+), 58 deletions(-) diff --git a/consumers/messages.go b/consumers/messages.go index a635547be2..39d15c0907 100644 --- a/consumers/messages.go +++ b/consumers/messages.go @@ -36,7 +36,7 @@ var ( func Start(ctx context.Context, id string, sub messaging.Subscriber, consumer interface{}, configPath string, logger *slog.Logger) error { cfg, err := loadConfig(configPath) if err != nil { - logger.Warn(fmt.Sprintf("Failed to load consumer config: %s", err)) + logger.Error(fmt.Sprintf("Failed to load consumer config: %s", err)) } transformer := makeTransformer(cfg.TransformerCfg, logger) diff --git a/consumers/notifiers/api/logging.go b/consumers/notifiers/api/logging.go index 50b3bffa2d..599df8c2e9 100644 --- a/consumers/notifiers/api/logging.go +++ b/consumers/notifiers/api/logging.go @@ -38,7 +38,7 @@ func (lm *loggingMiddleware) CreateSubscription(ctx context.Context, token strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Create subscription failed to complete successfully", args...) + lm.logger.Error("Create subscription failed to complete successfully", args...) return } lm.logger.Info("Create subscription completed successfully", args...) @@ -103,7 +103,7 @@ func (lm *loggingMiddleware) RemoveSubscription(ctx context.Context, token, id s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Remove subscription failed to complete successfully", args...) + lm.logger.Error("Remove subscription failed to complete successfully", args...) return } lm.logger.Info("Remove subscription completed successfully", args...) diff --git a/internal/groups/api/logging.go b/internal/groups/api/logging.go index 5f7befc15d..a21e195108 100644 --- a/internal/groups/api/logging.go +++ b/internal/groups/api/logging.go @@ -36,7 +36,7 @@ func (lm *loggingMiddleware) CreateGroup(ctx context.Context, token, kind string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Create group failed to complete successfully", args...) + lm.logger.Error("Create group failed to complete successfully", args...) return } lm.logger.Info("Create group completed successfully", args...) @@ -58,7 +58,7 @@ func (lm *loggingMiddleware) UpdateGroup(ctx context.Context, token string, grou } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update group failed to complete successfully", args...) + lm.logger.Error("Update group failed to complete successfully", args...) return } lm.logger.Info("Update group completed successfully", args...) @@ -144,7 +144,7 @@ func (lm *loggingMiddleware) EnableGroup(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Enable group failed to complete successfully", args...) + lm.logger.Error("Enable group failed to complete successfully", args...) return } lm.logger.Info("Enable group completed successfully", args...) @@ -165,7 +165,7 @@ func (lm *loggingMiddleware) DisableGroup(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Disable group failed to complete successfully", args...) + lm.logger.Error("Disable group failed to complete successfully", args...) return } lm.logger.Info("Disable group completed successfully", args...) @@ -204,7 +204,7 @@ func (lm *loggingMiddleware) Assign(ctx context.Context, token, groupID, relatio } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Assign member to group failed to complete successfully", args...) + lm.logger.Error("Assign member to group failed to complete successfully", args...) return } lm.logger.Info("Assign member to group completed successfully", args...) @@ -224,7 +224,7 @@ func (lm *loggingMiddleware) Unassign(ctx context.Context, token, groupID, relat } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Unassign member to group failed to complete successfully", args...) + lm.logger.Error("Unassign member to group failed to complete successfully", args...) return } lm.logger.Info("Unassign member to group completed successfully", args...) @@ -241,7 +241,7 @@ func (lm *loggingMiddleware) DeleteGroup(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Delete group failed to complete successfully", args...) + lm.logger.Error("Delete group failed to complete successfully", args...) return } lm.logger.Info("Delete group completed successfully", args...) diff --git a/invitations/middleware/logging.go b/invitations/middleware/logging.go index 6acf135eed..3c3c50ab80 100644 --- a/invitations/middleware/logging.go +++ b/invitations/middleware/logging.go @@ -31,7 +31,7 @@ func (lm *logging) SendInvitation(ctx context.Context, token string, invitation } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Send invitation failed to complete successfully", args...) + lm.logger.Error("Send invitation failed to complete successfully", args...) return } lm.logger.Info("Send invitation completed successfully", args...) @@ -84,7 +84,7 @@ func (lm *logging) AcceptInvitation(ctx context.Context, token, domainID string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Accept invitation failed to complete successfully", args...) + lm.logger.Error("Accept invitation failed to complete successfully", args...) return } lm.logger.Info("Accept invitation completed successfully", args...) @@ -101,7 +101,7 @@ func (lm *logging) DeleteInvitation(ctx context.Context, token, userID, domainID } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Delete invitation failed to complete successfully", args...) + lm.logger.Error("Delete invitation failed to complete successfully", args...) return } lm.logger.Info("Delete invitation completed successfully", args...) diff --git a/lora/api/logging.go b/lora/api/logging.go index 8190e700c8..ad9b678ad2 100644 --- a/lora/api/logging.go +++ b/lora/api/logging.go @@ -37,7 +37,7 @@ func (lm loggingMiddleware) CreateThing(ctx context.Context, thingID, loraDevEUI } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Create thing route-map failed to complete successfully", args...) + lm.logger.Error("Create thing route-map failed to complete successfully", args...) return } lm.logger.Info("Create thing route-map completed successfully", args...) @@ -55,7 +55,7 @@ func (lm loggingMiddleware) UpdateThing(ctx context.Context, thingID, loraDevEUI } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update thing route-map failed to complete successfully", args...) + lm.logger.Error("Update thing route-map failed to complete successfully", args...) return } lm.logger.Info("Update thing route-map completed successfully", args...) @@ -72,7 +72,7 @@ func (lm loggingMiddleware) RemoveThing(ctx context.Context, thingID string) (er } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Remove thing route-map failed to complete successfully", args...) + lm.logger.Error("Remove thing route-map failed to complete successfully", args...) return } lm.logger.Info("Remove thing route-map completed successfully", args...) @@ -90,7 +90,7 @@ func (lm loggingMiddleware) CreateChannel(ctx context.Context, chanID, loraApp s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Create channel route-map failed to complete successfully", args...) + lm.logger.Error("Create channel route-map failed to complete successfully", args...) return } lm.logger.Info("Create channel route-map completed successfully", args...) @@ -107,7 +107,7 @@ func (lm loggingMiddleware) UpdateChannel(ctx context.Context, chanID, loraApp s slog.String("lora_app", loraApp), } if err != nil { - lm.logger.Warn("Update channel route-map failed to complete successfully", args...) + lm.logger.Error("Update channel route-map failed to complete successfully", args...) return } lm.logger.Info("Update channel route-map completed successfully", args...) @@ -123,7 +123,7 @@ func (lm loggingMiddleware) RemoveChannel(ctx context.Context, chanID string) (e slog.String("channel_id", chanID), } if err != nil { - lm.logger.Warn("Remove channel route-map failed to complete successfully", args...) + lm.logger.Error("Remove channel route-map failed to complete successfully", args...) return } lm.logger.Info("Remove channel route-map completed successfully", args...) @@ -141,7 +141,7 @@ func (lm loggingMiddleware) ConnectThing(ctx context.Context, chanID, thingID st } if err != nil { args := append(args, slog.String("error", err.Error())) - lm.logger.Warn("Connect thing to channel failed to complete successfully", args...) + lm.logger.Error("Connect thing to channel failed to complete successfully", args...) return } lm.logger.Info("Connect thing to channel completed successfully", args...) diff --git a/opcua/api/logging.go b/opcua/api/logging.go index fc728bc908..e5d67d9803 100644 --- a/opcua/api/logging.go +++ b/opcua/api/logging.go @@ -37,7 +37,7 @@ func (lm loggingMiddleware) CreateThing(ctx context.Context, mgxThing, opcuaNode } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Create thing route-map failed to complete successfully", args...) + lm.logger.Error("Create thing route-map failed to complete successfully", args...) return } lm.logger.Info("Create thing route-map completed successfully", args...) @@ -55,7 +55,7 @@ func (lm loggingMiddleware) UpdateThing(ctx context.Context, mgxThing, opcuaNode } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update thing route-map failed to complete successfully", args...) + lm.logger.Error("Update thing route-map failed to complete successfully", args...) return } lm.logger.Info("Update thing route-map completed successfully", args...) @@ -72,7 +72,7 @@ func (lm loggingMiddleware) RemoveThing(ctx context.Context, mgxThing string) (e } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Remove thing route-map failed to complete successfully", args...) + lm.logger.Error("Remove thing route-map failed to complete successfully", args...) return } lm.logger.Info("Remove thing route-map completed successfully", args...) @@ -90,7 +90,7 @@ func (lm loggingMiddleware) CreateChannel(ctx context.Context, mgxChan, opcuaSer } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Create channel route-map failed to complete successfully", args...) + lm.logger.Error("Create channel route-map failed to complete successfully", args...) return } lm.logger.Info("Create channel route-map completed successfully", args...) @@ -108,7 +108,7 @@ func (lm loggingMiddleware) UpdateChannel(ctx context.Context, mgxChanID, opcuaS } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update channel route-map failed to complete successfully", args...) + lm.logger.Error("Update channel route-map failed to complete successfully", args...) return } lm.logger.Info("Update channel route-map completed successfully", args...) @@ -125,7 +125,7 @@ func (lm loggingMiddleware) RemoveChannel(ctx context.Context, mgxChanID string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Remove channel route-map failed to complete successfully", args...) + lm.logger.Error("Remove channel route-map failed to complete successfully", args...) return } lm.logger.Info("Remove channel route-map completed successfully", args...) @@ -143,7 +143,7 @@ func (lm loggingMiddleware) ConnectThing(ctx context.Context, mgxChanID string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Connect thing to channel failed to complete successfully", args...) + lm.logger.Error("Connect thing to channel failed to complete successfully", args...) return } lm.logger.Info("Connect thing to channel completed successfully", args...) @@ -161,7 +161,7 @@ func (lm loggingMiddleware) DisconnectThing(ctx context.Context, mgxChanID strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Disconnect thing from channel failed to complete successfully", args...) + lm.logger.Error("Disconnect thing from channel failed to complete successfully", args...) return } lm.logger.Info("Disconnect thing from channel completed successfully", args...) diff --git a/provision/api/logging.go b/provision/api/logging.go index c6aa58fbc0..b7ed75c732 100644 --- a/provision/api/logging.go +++ b/provision/api/logging.go @@ -33,7 +33,7 @@ func (lm *loggingMiddleware) Provision(token, name, externalID, externalKey stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Provision failed to complete successfully", args...) + lm.logger.Error("Provision failed to complete successfully", args...) return } lm.logger.Info("Provision completed successfully", args...) @@ -51,7 +51,7 @@ func (lm *loggingMiddleware) Cert(token, thingID, duration string) (cert, key st } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Thing certificate failed to create successfully", args...) + lm.logger.Error("Thing certificate failed to create successfully", args...) return } lm.logger.Info("Thing certificate created successfully", args...) @@ -67,7 +67,7 @@ func (lm *loggingMiddleware) Mapping(token string) (res map[string]interface{}, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Mapping failed to complete successfully", args...) + lm.logger.Error("Mapping failed to complete successfully", args...) return } lm.logger.Info("Mapping completed successfully", args...) diff --git a/things/api/logging.go b/things/api/logging.go index 86ae568038..219f3500dc 100644 --- a/things/api/logging.go +++ b/things/api/logging.go @@ -32,7 +32,7 @@ func (lm *loggingMiddleware) CreateThings(ctx context.Context, token string, cli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn(fmt.Sprintf("Create %d things failed to complete successfully", len(clients)), args...) + lm.logger.Error(fmt.Sprintf("Create %d things failed to complete successfully", len(clients)), args...) return } lm.logger.Info(fmt.Sprintf("Create %d things completed successfully", len(clients)), args...) @@ -108,7 +108,7 @@ func (lm *loggingMiddleware) UpdateClient(ctx context.Context, token string, cli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update thing failed to complete successfully", args...) + lm.logger.Error("Update thing failed to complete successfully", args...) return } lm.logger.Info("Update thing completed successfully", args...) @@ -128,7 +128,7 @@ func (lm *loggingMiddleware) UpdateClientTags(ctx context.Context, token string, } if err != nil { args := append(args, slog.String("error", err.Error())) - lm.logger.Warn("Update thing tags failed to complete successfully", args...) + lm.logger.Error("Update thing tags failed to complete successfully", args...) return } lm.logger.Info("Update thing tags completed successfully", args...) @@ -147,7 +147,7 @@ func (lm *loggingMiddleware) UpdateClientSecret(ctx context.Context, token, oldS } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update thing secret failed to complete successfully", args...) + lm.logger.Error("Update thing secret failed to complete successfully", args...) return } lm.logger.Info("Update thing secret completed successfully", args...) @@ -166,7 +166,7 @@ func (lm *loggingMiddleware) EnableClient(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Enable thing failed to complete successfully", args...) + lm.logger.Error("Enable thing failed to complete successfully", args...) return } lm.logger.Info("Enable thing completed successfully", args...) @@ -185,7 +185,7 @@ func (lm *loggingMiddleware) DisableClient(ctx context.Context, token, id string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Disable thing failed to complete successfully", args...) + lm.logger.Error("Disable thing failed to complete successfully", args...) return } lm.logger.Info("Disable thing completed successfully", args...) @@ -222,7 +222,7 @@ func (lm *loggingMiddleware) Identify(ctx context.Context, key string) (id strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Identify thing failed to complete successfully", args...) + lm.logger.Error("Identify thing failed to complete successfully", args...) return } lm.logger.Info("Identify thing completed successfully", args...) @@ -241,7 +241,7 @@ func (lm *loggingMiddleware) Authorize(ctx context.Context, req *magistrala.Auth } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Authorize failed to complete successfully", args...) + lm.logger.Error("Authorize failed to complete successfully", args...) return } lm.logger.Info("Authorize completed successfully", args...) @@ -293,7 +293,7 @@ func (lm *loggingMiddleware) DeleteClient(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Delete thing failed to complete successfully", args...) + lm.logger.Error("Delete thing failed to complete successfully", args...) return } lm.logger.Info("Delete thing completed successfully", args...) diff --git a/twins/api/logging.go b/twins/api/logging.go index eff62e13a6..0836505514 100644 --- a/twins/api/logging.go +++ b/twins/api/logging.go @@ -38,7 +38,7 @@ func (lm *loggingMiddleware) AddTwin(ctx context.Context, token string, twin twi } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Add twin failed to complete successfully", args...) + lm.logger.Error("Add twin failed to complete successfully", args...) return } lm.logger.Info("Add twin completed successfully", args...) @@ -59,7 +59,7 @@ func (lm *loggingMiddleware) UpdateTwin(ctx context.Context, token string, twin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update twin failed to complete successfully", args...) + lm.logger.Error("Update twin failed to complete successfully", args...) return } lm.logger.Info("Update twin completed successfully", args...) @@ -119,7 +119,7 @@ func (lm *loggingMiddleware) SaveStates(ctx context.Context, msg *messaging.Mess } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Save states failed to complete successfully", args...) + lm.logger.Error("Save states failed to complete successfully", args...) return } lm.logger.Info("Save states completed successfully", args...) @@ -158,7 +158,7 @@ func (lm *loggingMiddleware) RemoveTwin(ctx context.Context, token, twinID strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Remove twin failed to complete successfully", args...) + lm.logger.Error("Remove twin failed to complete successfully", args...) return } lm.logger.Info("Remove twin completed successfully", args...) diff --git a/users/api/logging.go b/users/api/logging.go index 24656ed298..c15d73d410 100644 --- a/users/api/logging.go +++ b/users/api/logging.go @@ -38,7 +38,7 @@ func (lm *loggingMiddleware) RegisterClient(ctx context.Context, token string, c } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Register user failed to complete successfully", args...) + lm.logger.Error("Register user failed to complete successfully", args...) return } lm.logger.Info("Register user completed successfully", args...) @@ -59,7 +59,7 @@ func (lm *loggingMiddleware) IssueToken(ctx context.Context, identity, secret, d } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Issue token failed to complete successfully", args...) + lm.logger.Error("Issue token failed to complete successfully", args...) return } lm.logger.Info("Issue token completed successfully", args...) @@ -80,7 +80,7 @@ func (lm *loggingMiddleware) RefreshToken(ctx context.Context, refreshToken, dom } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Refresh token failed to complete successfully", args...) + lm.logger.Error("Refresh token failed to complete successfully", args...) return } lm.logger.Info("Refresh token completed successfully", args...) @@ -166,7 +166,7 @@ func (lm *loggingMiddleware) UpdateClient(ctx context.Context, token string, cli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update user failed to complete successfully", args...) + lm.logger.Error("Update user failed to complete successfully", args...) return } lm.logger.Info("Update user completed successfully", args...) @@ -188,7 +188,7 @@ func (lm *loggingMiddleware) UpdateClientTags(ctx context.Context, token string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update user tags failed to complete successfully", args...) + lm.logger.Error("Update user tags failed to complete successfully", args...) return } lm.logger.Info("Update user tags completed successfully", args...) @@ -209,7 +209,7 @@ func (lm *loggingMiddleware) UpdateClientIdentity(ctx context.Context, token, id } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update client identity failed to complete successfully", args...) + lm.logger.Error("Update client identity failed to complete successfully", args...) return } lm.logger.Info("Update client identity completed successfully", args...) @@ -230,7 +230,7 @@ func (lm *loggingMiddleware) UpdateClientSecret(ctx context.Context, token, oldS } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update user secret failed to complete successfully", args...) + lm.logger.Error("Update user secret failed to complete successfully", args...) return } lm.logger.Info("Update user secret completed successfully", args...) @@ -248,7 +248,7 @@ func (lm *loggingMiddleware) GenerateResetToken(ctx context.Context, email, host } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Generate reset token failed to complete successfully", args...) + lm.logger.Error("Generate reset token failed to complete successfully", args...) return } lm.logger.Info("Generate reset token completed successfully", args...) @@ -305,7 +305,7 @@ func (lm *loggingMiddleware) UpdateClientRole(ctx context.Context, token string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Update user role failed to complete successfully", args...) + lm.logger.Error("Update user role failed to complete successfully", args...) return } lm.logger.Info("Update user role completed successfully", args...) @@ -326,7 +326,7 @@ func (lm *loggingMiddleware) EnableClient(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Enable user failed to complete successfully", args...) + lm.logger.Error("Enable user failed to complete successfully", args...) return } lm.logger.Info("Enable user completed successfully", args...) @@ -347,7 +347,7 @@ func (lm *loggingMiddleware) DisableClient(ctx context.Context, token, id string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Disable user failed to complete successfully", args...) + lm.logger.Error("Disable user failed to complete successfully", args...) return } lm.logger.Info("Disable user completed successfully", args...) @@ -390,7 +390,7 @@ func (lm *loggingMiddleware) Identify(ctx context.Context, token string) (id str } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Identify user failed to complete successfully", args...) + lm.logger.Error("Identify user failed to complete successfully", args...) return } lm.logger.Info("Identify user completed successfully", args...) @@ -406,7 +406,7 @@ func (lm *loggingMiddleware) OAuthCallback(ctx context.Context, client mgclients } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("OAuth callback failed to complete successfully", args...) + lm.logger.Error("OAuth callback failed to complete successfully", args...) return } lm.logger.Info("OAuth callback completed successfully", args...) diff --git a/ws/api/logging.go b/ws/api/logging.go index 7ecce696fa..8b5881ff03 100644 --- a/ws/api/logging.go +++ b/ws/api/logging.go @@ -36,7 +36,7 @@ func (lm *loggingMiddleware) Subscribe(ctx context.Context, thingKey, chanID, su } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Subscibe failed to complete successfully", args...) + lm.logger.Error("Subscibe failed to complete successfully", args...) return } lm.logger.Info("Subscribe completed successfully", args...) From 218c4fa6e6ecdf2d95818a0fa359da1c9f2af0b3 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Mon, 6 May 2024 11:53:32 +0300 Subject: [PATCH 06/20] Removed warn on remaining logs Signed-off-by: nyagamunene --- auth/api/logging.go | 20 ++++++++++---------- bootstrap/api/logging.go | 6 +++--- certs/api/logging.go | 6 +++--- coap/api/transport.go | 2 +- consumers/notifiers/api/logging.go | 6 +++--- consumers/writers/api/logging.go | 2 +- internal/groups/api/logging.go | 8 ++++---- invitations/middleware/logging.go | 4 ++-- lora/api/logging.go | 4 ++-- opcua/api/logging.go | 2 +- pkg/messaging/handler/logging.go | 2 +- readers/api/logging.go | 2 +- things/api/logging.go | 12 ++++++------ twins/api/logging.go | 6 +++--- users/api/logging.go | 12 ++++++------ ws/api/endpoints.go | 4 ++-- 16 files changed, 49 insertions(+), 49 deletions(-) diff --git a/auth/api/logging.go b/auth/api/logging.go index 6591db6790..d1b3a1f64b 100644 --- a/auth/api/logging.go +++ b/auth/api/logging.go @@ -34,7 +34,7 @@ func (lm *loggingMiddleware) ListObjects(ctx context.Context, pr auth.PolicyReq, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List objects failed to complete successfully", args...) + lm.logger.Error("List objects failed to complete successfully", args...) return } lm.logger.Info("List objects completed successfully", args...) @@ -56,7 +56,7 @@ func (lm *loggingMiddleware) ListAllObjects(ctx context.Context, pr auth.PolicyR } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List all objects failed to complete successfully", args...) + lm.logger.Error("List all objects failed to complete successfully", args...) return } lm.logger.Info("List all objects completed successfully", args...) @@ -72,7 +72,7 @@ func (lm *loggingMiddleware) CountObjects(ctx context.Context, pr auth.PolicyReq } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Count objects failed to complete successfully", args...) + lm.logger.Error("Count objects failed to complete successfully", args...) return } lm.logger.Info("Count objects completed successfully", args...) @@ -87,7 +87,7 @@ func (lm *loggingMiddleware) ListSubjects(ctx context.Context, pr auth.PolicyReq } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List subjects failed to complete successfully", args...) + lm.logger.Error("List subjects failed to complete successfully", args...) return } lm.logger.Info("List subjects completed successfully", args...) @@ -109,7 +109,7 @@ func (lm *loggingMiddleware) ListAllSubjects(ctx context.Context, pr auth.Policy } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List all subjects failed to complete successfully", args...) + lm.logger.Error("List all subjects failed to complete successfully", args...) return } lm.logger.Info("List all subjects completed successfully", args...) @@ -125,7 +125,7 @@ func (lm *loggingMiddleware) CountSubjects(ctx context.Context, pr auth.PolicyRe } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Count subjects failed to complete successfully", args...) + lm.logger.Error("Count subjects failed to complete successfully", args...) return } lm.logger.Info("Count subjects completed successfully", args...) @@ -357,7 +357,7 @@ func (lm *loggingMiddleware) RetrieveDomain(ctx context.Context, token, id strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Retrieve domain failed to complete successfully", args...) + lm.logger.Error("Retrieve domain failed to complete successfully", args...) return } lm.logger.Info("Retrieve domain completed successfully", args...) @@ -373,7 +373,7 @@ func (lm *loggingMiddleware) RetrieveDomainPermissions(ctx context.Context, toke } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Retrieve domain permissions failed to complete successfully", args...) + lm.logger.Error("Retrieve domain permissions failed to complete successfully", args...) return } lm.logger.Info("Retrieve domain permissions completed successfully", args...) @@ -432,7 +432,7 @@ func (lm *loggingMiddleware) ListDomains(ctx context.Context, token string, page } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List domains failed to complete successfully", args...) + lm.logger.Error("List domains failed to complete successfully", args...) return } lm.logger.Info("List domains completed successfully", args...) @@ -484,7 +484,7 @@ func (lm *loggingMiddleware) ListUserDomains(ctx context.Context, token, userID } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List user domains failed to complete successfully", args...) + lm.logger.Error("List user domains failed to complete successfully", args...) return } lm.logger.Info("List user domains completed successfully", args...) diff --git a/bootstrap/api/logging.go b/bootstrap/api/logging.go index 728d9a6467..18c6ca6b13 100644 --- a/bootstrap/api/logging.go +++ b/bootstrap/api/logging.go @@ -54,7 +54,7 @@ func (lm *loggingMiddleware) View(ctx context.Context, token, id string) (saved } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("View thing config failed to complete successfully", args...) + lm.logger.Error("View thing config failed to complete successfully", args...) return } lm.logger.Info("View thing config completed successfully", args...) @@ -139,7 +139,7 @@ func (lm *loggingMiddleware) List(ctx context.Context, token string, filter boot } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List configs failed to complete successfully", args...) + lm.logger.Error("List configs failed to complete successfully", args...) return } lm.logger.Info("List configs completed successfully", args...) @@ -175,7 +175,7 @@ func (lm *loggingMiddleware) Bootstrap(ctx context.Context, externalKey, externa } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("View bootstrap config failed to complete successfully", args...) + lm.logger.Error("View bootstrap config failed to complete successfully", args...) return } lm.logger.Info("View bootstrap completed successfully", args...) diff --git a/certs/api/logging.go b/certs/api/logging.go index 30b23627fd..262d62e9c4 100644 --- a/certs/api/logging.go +++ b/certs/api/logging.go @@ -59,7 +59,7 @@ func (lm *loggingMiddleware) ListCerts(ctx context.Context, token, thingID strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List certificates failed to complete successfully", args...) + lm.logger.Error("List certificates failed to complete successfully", args...) return } lm.logger.Info("List certificates completed successfully", args...) @@ -83,7 +83,7 @@ func (lm *loggingMiddleware) ListSerials(ctx context.Context, token, thingID str } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List certifcates serials failed to complete successfully", args...) + lm.logger.Error("List certifcates serials failed to complete successfully", args...) return } lm.logger.Info("List certificates serials completed successfully", args...) @@ -102,7 +102,7 @@ func (lm *loggingMiddleware) ViewCert(ctx context.Context, token, serialID strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("View certificate failed to complete successfully", args...) + lm.logger.Error("View certificate failed to complete successfully", args...) return } lm.logger.Info("View certificate completed successfully", args...) diff --git a/coap/api/transport.go b/coap/api/transport.go index 2c825fa3a8..870a8ae1fa 100644 --- a/coap/api/transport.go +++ b/coap/api/transport.go @@ -126,7 +126,7 @@ func handleGet(m *mux.Message, w mux.ResponseWriter, msg *messaging.Message, key var obs uint32 obs, err := m.Options().Observe() if err != nil { - logger.Warn(fmt.Sprintf("Error reading observe option: %s", err)) + logger.Error(fmt.Sprintf("Error reading observe option: %s", err)) return errBadOptions } if obs == startObserve { diff --git a/consumers/notifiers/api/logging.go b/consumers/notifiers/api/logging.go index 599df8c2e9..101bbd2155 100644 --- a/consumers/notifiers/api/logging.go +++ b/consumers/notifiers/api/logging.go @@ -60,7 +60,7 @@ func (lm *loggingMiddleware) ViewSubscription(ctx context.Context, token, topic } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("View subscription failed to complete successfully", args...) + lm.logger.Error("View subscription failed to complete successfully", args...) return } lm.logger.Info("View subscription completed successfully", args...) @@ -84,7 +84,7 @@ func (lm *loggingMiddleware) ListSubscriptions(ctx context.Context, token string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List subscriptions failed to complete successfully", args...) + lm.logger.Error("List subscriptions failed to complete successfully", args...) return } lm.logger.Info("List subscriptions completed successfully", args...) @@ -121,7 +121,7 @@ func (lm *loggingMiddleware) ConsumeBlocking(ctx context.Context, msg interface{ } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Blocking consumer failed to consume messages successfully", args...) + lm.logger.Error("Blocking consumer failed to consume messages successfully", args...) return } lm.logger.Info("Blocking consumer consumed messages successfully", args...) diff --git a/consumers/writers/api/logging.go b/consumers/writers/api/logging.go index 77e5f91449..472d5f6bff 100644 --- a/consumers/writers/api/logging.go +++ b/consumers/writers/api/logging.go @@ -37,7 +37,7 @@ func (lm *loggingMiddleware) ConsumeBlocking(ctx context.Context, msgs interface } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Blocking consumer failed to consume messages successfully", args...) + lm.logger.Error("Blocking consumer failed to consume messages successfully", args...) return } lm.logger.Info("Blocking consumer consumed messages successfully", args...) diff --git a/internal/groups/api/logging.go b/internal/groups/api/logging.go index a21e195108..89f2b70d13 100644 --- a/internal/groups/api/logging.go +++ b/internal/groups/api/logging.go @@ -79,7 +79,7 @@ func (lm *loggingMiddleware) ViewGroup(ctx context.Context, token, id string) (g } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("View group failed to complete successfully", args...) + lm.logger.Error("View group failed to complete successfully", args...) return } lm.logger.Info("View group completed successfully", args...) @@ -97,7 +97,7 @@ func (lm *loggingMiddleware) ViewGroupPerms(ctx context.Context, token, id strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("View group permissions failed to complete successfully", args...) + lm.logger.Error("View group permissions failed to complete successfully", args...) return } lm.logger.Info("View group permissions completed successfully", args...) @@ -123,7 +123,7 @@ func (lm *loggingMiddleware) ListGroups(ctx context.Context, token, memberKind, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List groups failed to complete successfully", args...) + lm.logger.Error("List groups failed to complete successfully", args...) return } lm.logger.Info("List groups completed successfully", args...) @@ -185,7 +185,7 @@ func (lm *loggingMiddleware) ListMembers(ctx context.Context, token, groupID, pe } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List members failed to complete successfully", args...) + lm.logger.Error("List members failed to complete successfully", args...) return } lm.logger.Info("List members completed successfully", args...) diff --git a/invitations/middleware/logging.go b/invitations/middleware/logging.go index 3c3c50ab80..9ffae54d05 100644 --- a/invitations/middleware/logging.go +++ b/invitations/middleware/logging.go @@ -48,7 +48,7 @@ func (lm *logging) ViewInvitation(ctx context.Context, token, userID, domainID s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("View invitation failed to complete successfully", args...) + lm.logger.Error("View invitation failed to complete successfully", args...) return } lm.logger.Info("View invitation completed successfully", args...) @@ -68,7 +68,7 @@ func (lm *logging) ListInvitations(ctx context.Context, token string, page invit } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List invitations failed to complete successfully", args...) + lm.logger.Error("List invitations failed to complete successfully", args...) return } lm.logger.Info("List invitations completed successfully", args...) diff --git a/lora/api/logging.go b/lora/api/logging.go index ad9b678ad2..0fb175777a 100644 --- a/lora/api/logging.go +++ b/lora/api/logging.go @@ -159,7 +159,7 @@ func (lm loggingMiddleware) DisconnectThing(ctx context.Context, chanID, thingID } if err != nil { args := append(args, slog.String("error", err.Error())) - lm.logger.Warn("Disconnect thing from channel failed to complete successfully", args...) + lm.logger.Error("Disconnect thing from channel failed to complete successfully", args...) return } lm.logger.Info("Disconnect thing from channel completed successfully", args...) @@ -179,7 +179,7 @@ func (lm loggingMiddleware) Publish(ctx context.Context, msg *lora.Message) (err } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Publish failed to complete successfully", args...) + lm.logger.Error("Publish failed to complete successfully", args...) return } lm.logger.Info("Publish completed successfully", args...) diff --git a/opcua/api/logging.go b/opcua/api/logging.go index e5d67d9803..12d5f31191 100644 --- a/opcua/api/logging.go +++ b/opcua/api/logging.go @@ -181,7 +181,7 @@ func (lm loggingMiddleware) Browse(ctx context.Context, serverURI, namespace, id } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Browse available nodes failed to complete successfully", args...) + lm.logger.Error("Browse available nodes failed to complete successfully", args...) return } lm.logger.Info("Browse available nodes completed successfully", args...) diff --git a/pkg/messaging/handler/logging.go b/pkg/messaging/handler/logging.go index b8754d23c7..30bf57b7e8 100644 --- a/pkg/messaging/handler/logging.go +++ b/pkg/messaging/handler/logging.go @@ -83,7 +83,7 @@ func (lm *loggingMiddleware) logAction(action string, topics *[]string, t time.T } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn(action+" failed to complete successfully", args...) + lm.logger.Error(action+" failed to complete successfully", args...) return } lm.logger.Info(action+" completed successfully", args...) diff --git a/readers/api/logging.go b/readers/api/logging.go index 614337df95..bd95ca86ae 100644 --- a/readers/api/logging.go +++ b/readers/api/logging.go @@ -46,7 +46,7 @@ func (lm *loggingMiddleware) ReadAll(chanID string, rpm readers.PageMetadata) (p } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Read all failed to complete successfully", args...) + lm.logger.Error("Read all failed to complete successfully", args...) return } lm.logger.Info("Read all completed successfully", args...) diff --git a/things/api/logging.go b/things/api/logging.go index 219f3500dc..22fbee6230 100644 --- a/things/api/logging.go +++ b/things/api/logging.go @@ -51,7 +51,7 @@ func (lm *loggingMiddleware) ViewClient(ctx context.Context, token, id string) ( } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("View thing failed to complete successfully", args...) + lm.logger.Error("View thing failed to complete successfully", args...) return } lm.logger.Info("View thing completed successfully", args...) @@ -67,7 +67,7 @@ func (lm *loggingMiddleware) ViewClientPerms(ctx context.Context, token, id stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("View thing permissions failed to complete successfully", args...) + lm.logger.Error("View thing permissions failed to complete successfully", args...) return } lm.logger.Info("View thing permissions completed successfully", args...) @@ -88,7 +88,7 @@ func (lm *loggingMiddleware) ListClients(ctx context.Context, token, reqUserID s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List things failed to complete successfully", args...) + lm.logger.Error("List things failed to complete successfully", args...) return } lm.logger.Info("List things completed successfully", args...) @@ -206,7 +206,7 @@ func (lm *loggingMiddleware) ListClientsByGroup(ctx context.Context, token, chan } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List things by group failed to complete successfully", args...) + lm.logger.Error("List things by group failed to complete successfully", args...) return } lm.logger.Info("List things by group completed successfully", args...) @@ -259,7 +259,7 @@ func (lm *loggingMiddleware) Share(ctx context.Context, token, id, relation stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Share thing failed to complete successfully", args...) + lm.logger.Error("Share thing failed to complete successfully", args...) return } lm.logger.Info("Share thing completed successfully", args...) @@ -277,7 +277,7 @@ func (lm *loggingMiddleware) Unshare(ctx context.Context, token, id, relation st } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Unshare thing failed to complete successfully", args...) + lm.logger.Error("Unshare thing failed to complete successfully", args...) return } lm.logger.Info("Unshare thing completed successfully", args...) diff --git a/twins/api/logging.go b/twins/api/logging.go index 0836505514..07b4f51480 100644 --- a/twins/api/logging.go +++ b/twins/api/logging.go @@ -76,7 +76,7 @@ func (lm *loggingMiddleware) ViewTwin(ctx context.Context, token, twinID string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("View twin failed to complete successfully", args...) + lm.logger.Error("View twin failed to complete successfully", args...) return } lm.logger.Info("View twin completed successfully", args...) @@ -98,7 +98,7 @@ func (lm *loggingMiddleware) ListTwins(ctx context.Context, token string, offset } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List twins failed to complete successfully", args...) + lm.logger.Error("List twins failed to complete successfully", args...) return } lm.logger.Info("List twins completed successfully", args...) @@ -141,7 +141,7 @@ func (lm *loggingMiddleware) ListStates(ctx context.Context, token string, offse } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List states failed to complete successfully", args...) + lm.logger.Error("List states failed to complete successfully", args...) return } lm.logger.Info("List states completed successfully", args...) diff --git a/users/api/logging.go b/users/api/logging.go index c15d73d410..592a7ed0ad 100644 --- a/users/api/logging.go +++ b/users/api/logging.go @@ -101,7 +101,7 @@ func (lm *loggingMiddleware) ViewClient(ctx context.Context, token, id string) ( } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("View user failed to complete successfully", args...) + lm.logger.Error("View user failed to complete successfully", args...) return } lm.logger.Info("View user completed successfully", args...) @@ -122,7 +122,7 @@ func (lm *loggingMiddleware) ViewProfile(ctx context.Context, token string) (c m } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("View profile failed to complete successfully", args...) + lm.logger.Error("View profile failed to complete successfully", args...) return } lm.logger.Info("View profile completed successfully", args...) @@ -144,7 +144,7 @@ func (lm *loggingMiddleware) ListClients(ctx context.Context, token string, pm m } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List users failed to complete successfully", args...) + lm.logger.Error("List users failed to complete successfully", args...) return } lm.logger.Info("List users completed successfully", args...) @@ -265,7 +265,7 @@ func (lm *loggingMiddleware) ResetSecret(ctx context.Context, token, secret stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Reset secret failed to complete successfully", args...) + lm.logger.Error("Reset secret failed to complete successfully", args...) return } lm.logger.Info("Reset secret completed successfully", args...) @@ -283,7 +283,7 @@ func (lm *loggingMiddleware) SendPasswordReset(ctx context.Context, host, email, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("Send password reset failed to complete successfully", args...) + lm.logger.Error("Send password reset failed to complete successfully", args...) return } lm.logger.Info("Send password reset completed successfully", args...) @@ -373,7 +373,7 @@ func (lm *loggingMiddleware) ListMembers(ctx context.Context, token, objectKind, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Warn("List members failed to complete successfully", args...) + lm.logger.Error("List members failed to complete successfully", args...) return } lm.logger.Info("List members completed successfully", args...) diff --git a/ws/api/endpoints.go b/ws/api/endpoints.go index 040133a9de..cb83a8ced4 100644 --- a/ws/api/endpoints.go +++ b/ws/api/endpoints.go @@ -27,7 +27,7 @@ func handshake(ctx context.Context, svc ws.Service) http.HandlerFunc { } conn, err := upgrader.Upgrade(w, r, nil) if err != nil { - logger.Warn(fmt.Sprintf("Failed to upgrade connection to websocket: %s", err.Error())) + logger.Error(fmt.Sprintf("Failed to upgrade connection to websocket: %s", err.Error())) return } req.conn = conn @@ -62,7 +62,7 @@ func decodeRequest(r *http.Request) (connReq, error) { channelParts := channelPartRegExp.FindStringSubmatch(r.RequestURI) if len(channelParts) < 2 { - logger.Warn("Empty channel id or malformed url") + logger.Error("Empty channel id or malformed url") return connReq{}, errors.ErrMalformedEntity } From fbce207c1ee15569a3dffeee62d54a16c7bfc258 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Mon, 6 May 2024 12:25:54 +0300 Subject: [PATCH 07/20] Changed from error to errorcontext Signed-off-by: nyagamunene --- auth/api/logging.go | 50 +++++++++++++++--------------- bootstrap/api/logging.go | 26 ++++++++-------- certs/api/logging.go | 10 +++--- coap/api/transport.go | 2 +- consumers/notifiers/api/logging.go | 10 +++--- consumers/writers/api/logging.go | 2 +- internal/groups/api/logging.go | 22 ++++++------- invitations/middleware/logging.go | 10 +++--- lora/api/logging.go | 18 +++++------ opcua/api/logging.go | 18 +++++------ pkg/messaging/handler/logging.go | 2 +- things/api/logging.go | 30 +++++++++--------- twins/api/logging.go | 14 ++++----- users/api/logging.go | 38 +++++++++++------------ 14 files changed, 126 insertions(+), 126 deletions(-) diff --git a/auth/api/logging.go b/auth/api/logging.go index d1b3a1f64b..cba1b1ca7b 100644 --- a/auth/api/logging.go +++ b/auth/api/logging.go @@ -34,7 +34,7 @@ func (lm *loggingMiddleware) ListObjects(ctx context.Context, pr auth.PolicyReq, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List objects failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List objects failed to complete successfully", args...) return } lm.logger.Info("List objects completed successfully", args...) @@ -56,7 +56,7 @@ func (lm *loggingMiddleware) ListAllObjects(ctx context.Context, pr auth.PolicyR } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List all objects failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List all objects failed to complete successfully", args...) return } lm.logger.Info("List all objects completed successfully", args...) @@ -72,7 +72,7 @@ func (lm *loggingMiddleware) CountObjects(ctx context.Context, pr auth.PolicyReq } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Count objects failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Count objects failed to complete successfully", args...) return } lm.logger.Info("Count objects completed successfully", args...) @@ -87,7 +87,7 @@ func (lm *loggingMiddleware) ListSubjects(ctx context.Context, pr auth.PolicyReq } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List subjects failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List subjects failed to complete successfully", args...) return } lm.logger.Info("List subjects completed successfully", args...) @@ -109,7 +109,7 @@ func (lm *loggingMiddleware) ListAllSubjects(ctx context.Context, pr auth.Policy } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List all subjects failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List all subjects failed to complete successfully", args...) return } lm.logger.Info("List all subjects completed successfully", args...) @@ -125,7 +125,7 @@ func (lm *loggingMiddleware) CountSubjects(ctx context.Context, pr auth.PolicyRe } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Count subjects failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Count subjects failed to complete successfully", args...) return } lm.logger.Info("Count subjects completed successfully", args...) @@ -147,7 +147,7 @@ func (lm *loggingMiddleware) ListPermissions(ctx context.Context, pr auth.Policy } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List permissions failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List permissions failed to complete successfully", args...) return } lm.logger.Info("List permissions completed successfully", args...) @@ -167,7 +167,7 @@ func (lm *loggingMiddleware) Issue(ctx context.Context, token string, key auth.K } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Issue key failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Issue key failed to complete successfully", args...) return } lm.logger.Info("Issue key completed successfully", args...) @@ -184,7 +184,7 @@ func (lm *loggingMiddleware) Revoke(ctx context.Context, token, id string) (err } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Revoke key failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Revoke key failed to complete successfully", args...) return } lm.logger.Info("Revoke key completed successfully", args...) @@ -201,7 +201,7 @@ func (lm *loggingMiddleware) RetrieveKey(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Retrieve key failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Retrieve key failed to complete successfully", args...) return } lm.logger.Info("Retrieve key completed successfully", args...) @@ -221,7 +221,7 @@ func (lm *loggingMiddleware) Identify(ctx context.Context, token string) (id aut } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Identify key failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Identify key failed to complete successfully", args...) return } lm.logger.Info("Identify key completed successfully", args...) @@ -247,7 +247,7 @@ func (lm *loggingMiddleware) Authorize(ctx context.Context, pr auth.PolicyReq) ( } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Authorize failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Authorize failed to complete successfully", args...) return } lm.logger.Info("Authorize completed successfully", args...) @@ -269,7 +269,7 @@ func (lm *loggingMiddleware) AddPolicy(ctx context.Context, pr auth.PolicyReq) ( } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Add policy failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Add policy failed to complete successfully", args...) return } lm.logger.Info("Add policy completed successfully", args...) @@ -284,7 +284,7 @@ func (lm *loggingMiddleware) AddPolicies(ctx context.Context, prs []auth.PolicyR } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error(fmt.Sprintf("Add %d policies failed to complete successfully", len(prs)), args...) + lm.logger.ErrorContext(ctx, fmt.Sprintf("Add %d policies failed to complete successfully", len(prs)), args...) return } lm.logger.Info(fmt.Sprintf("Add %d policies completed successfully", len(prs)), args...) @@ -307,7 +307,7 @@ func (lm *loggingMiddleware) DeletePolicy(ctx context.Context, pr auth.PolicyReq } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Delete policy failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Delete policy failed to complete successfully", args...) return } lm.logger.Info("Delete policy completed successfully", args...) @@ -322,7 +322,7 @@ func (lm *loggingMiddleware) DeletePolicies(ctx context.Context, prs []auth.Poli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error(fmt.Sprintf("Delete %d policies failed to complete successfully", len(prs)), args...) + lm.logger.ErrorContext(ctx, fmt.Sprintf("Delete %d policies failed to complete successfully", len(prs)), args...) return } lm.logger.Info(fmt.Sprintf("Delete %d policies completed successfully", len(prs)), args...) @@ -341,7 +341,7 @@ func (lm *loggingMiddleware) CreateDomain(ctx context.Context, token string, d a } if err != nil { args := append(args, slog.String("error", err.Error())) - lm.logger.Error("Create domain failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Create domain failed to complete successfully", args...) return } lm.logger.Info("Create domain completed successfully", args...) @@ -357,7 +357,7 @@ func (lm *loggingMiddleware) RetrieveDomain(ctx context.Context, token, id strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Retrieve domain failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Retrieve domain failed to complete successfully", args...) return } lm.logger.Info("Retrieve domain completed successfully", args...) @@ -373,7 +373,7 @@ func (lm *loggingMiddleware) RetrieveDomainPermissions(ctx context.Context, toke } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Retrieve domain permissions failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Retrieve domain permissions failed to complete successfully", args...) return } lm.logger.Info("Retrieve domain permissions completed successfully", args...) @@ -392,7 +392,7 @@ func (lm *loggingMiddleware) UpdateDomain(ctx context.Context, token, id string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update domain failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update domain failed to complete successfully", args...) return } lm.logger.Info("Update domain completed successfully", args...) @@ -412,7 +412,7 @@ func (lm *loggingMiddleware) ChangeDomainStatus(ctx context.Context, token, id s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Change domain status failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Change domain status failed to complete successfully", args...) return } lm.logger.Info("Change domain status completed successfully", args...) @@ -432,7 +432,7 @@ func (lm *loggingMiddleware) ListDomains(ctx context.Context, token string, page } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List domains failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List domains failed to complete successfully", args...) return } lm.logger.Info("List domains completed successfully", args...) @@ -450,7 +450,7 @@ func (lm *loggingMiddleware) AssignUsers(ctx context.Context, token, id string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Assign users to domain failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Assign users to domain failed to complete successfully", args...) return } lm.logger.Info("Assign users to domain completed successfully", args...) @@ -468,7 +468,7 @@ func (lm *loggingMiddleware) UnassignUsers(ctx context.Context, token, id string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Unassign users to domain failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Unassign users to domain failed to complete successfully", args...) return } lm.logger.Info("Unassign users to domain completed successfully", args...) @@ -484,7 +484,7 @@ func (lm *loggingMiddleware) ListUserDomains(ctx context.Context, token, userID } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List user domains failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List user domains failed to complete successfully", args...) return } lm.logger.Info("List user domains completed successfully", args...) diff --git a/bootstrap/api/logging.go b/bootstrap/api/logging.go index 18c6ca6b13..22f8f73f31 100644 --- a/bootstrap/api/logging.go +++ b/bootstrap/api/logging.go @@ -35,7 +35,7 @@ func (lm *loggingMiddleware) Add(ctx context.Context, token string, cfg bootstra } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Add new bootstrap failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Add new bootstrap failed to complete successfully", args...) return } lm.logger.Info("Add new bootstrap completed successfully", args...) @@ -54,7 +54,7 @@ func (lm *loggingMiddleware) View(ctx context.Context, token, id string) (saved } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("View thing config failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "View thing config failed to complete successfully", args...) return } lm.logger.Info("View thing config completed successfully", args...) @@ -76,7 +76,7 @@ func (lm *loggingMiddleware) Update(ctx context.Context, token string, cfg boots } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update bootstrap config failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update bootstrap config failed to complete successfully", args...) return } lm.logger.Info("Update bootstrap config completed successfully", args...) @@ -95,7 +95,7 @@ func (lm *loggingMiddleware) UpdateCert(ctx context.Context, token, thingID, cli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update bootstrap config certificate failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update bootstrap config certificate failed to complete successfully", args...) return } lm.logger.Info("Update bootstrap config certificate completed successfully", args...) @@ -115,7 +115,7 @@ func (lm *loggingMiddleware) UpdateConnections(ctx context.Context, token, id st } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update config connections failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update config connections failed to complete successfully", args...) return } lm.logger.Info("Update config connections completed successfully", args...) @@ -139,7 +139,7 @@ func (lm *loggingMiddleware) List(ctx context.Context, token string, filter boot } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List configs failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List configs failed to complete successfully", args...) return } lm.logger.Info("List configs completed successfully", args...) @@ -158,7 +158,7 @@ func (lm *loggingMiddleware) Remove(ctx context.Context, token, id string) (err } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Remove bootstrap config failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Remove bootstrap config failed to complete successfully", args...) return } lm.logger.Info("Remove bootstrap config completed successfully", args...) @@ -175,7 +175,7 @@ func (lm *loggingMiddleware) Bootstrap(ctx context.Context, externalKey, externa } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("View bootstrap config failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "View bootstrap config failed to complete successfully", args...) return } lm.logger.Info("View bootstrap completed successfully", args...) @@ -193,7 +193,7 @@ func (lm *loggingMiddleware) ChangeState(ctx context.Context, token, id string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Change thing state failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Change thing state failed to complete successfully", args...) return } lm.logger.Info("Change thing state completed successfully", args...) @@ -214,7 +214,7 @@ func (lm *loggingMiddleware) UpdateChannelHandler(ctx context.Context, channel b } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update channel handler failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update channel handler failed to complete successfully", args...) return } lm.logger.Info("Update channel handler completed successfully", args...) @@ -231,7 +231,7 @@ func (lm *loggingMiddleware) RemoveConfigHandler(ctx context.Context, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Remove config handler failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Remove config handler failed to complete successfully", args...) return } lm.logger.Info("Remove config handler completed successfully", args...) @@ -248,7 +248,7 @@ func (lm *loggingMiddleware) RemoveChannelHandler(ctx context.Context, id string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Remove channel handler failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Remove channel handler failed to complete successfully", args...) return } lm.logger.Info("Remove channel handler completed successfully", args...) @@ -266,7 +266,7 @@ func (lm *loggingMiddleware) DisconnectThingHandler(ctx context.Context, channel } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Disconnect thing handler failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Disconnect thing handler failed to complete successfully", args...) return } lm.logger.Info("Disconnect thing handler completed successfully", args...) diff --git a/certs/api/logging.go b/certs/api/logging.go index 262d62e9c4..599bd5147f 100644 --- a/certs/api/logging.go +++ b/certs/api/logging.go @@ -36,7 +36,7 @@ func (lm *loggingMiddleware) IssueCert(ctx context.Context, token, thingID, ttl } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Issue certificate failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Issue certificate failed to complete successfully", args...) return } lm.logger.Info("Issue certificate completed successfully", args...) @@ -59,7 +59,7 @@ func (lm *loggingMiddleware) ListCerts(ctx context.Context, token, thingID strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List certificates failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List certificates failed to complete successfully", args...) return } lm.logger.Info("List certificates completed successfully", args...) @@ -83,7 +83,7 @@ func (lm *loggingMiddleware) ListSerials(ctx context.Context, token, thingID str } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List certifcates serials failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List certifcates serials failed to complete successfully", args...) return } lm.logger.Info("List certificates serials completed successfully", args...) @@ -102,7 +102,7 @@ func (lm *loggingMiddleware) ViewCert(ctx context.Context, token, serialID strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("View certificate failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "View certificate failed to complete successfully", args...) return } lm.logger.Info("View certificate completed successfully", args...) @@ -121,7 +121,7 @@ func (lm *loggingMiddleware) RevokeCert(ctx context.Context, token, thingID stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Revoke certificate failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Revoke certificate failed to complete successfully", args...) return } lm.logger.Info("Revoke certificate completed successfully", args...) diff --git a/coap/api/transport.go b/coap/api/transport.go index 870a8ae1fa..8d2e78f19f 100644 --- a/coap/api/transport.go +++ b/coap/api/transport.go @@ -126,7 +126,7 @@ func handleGet(m *mux.Message, w mux.ResponseWriter, msg *messaging.Message, key var obs uint32 obs, err := m.Options().Observe() if err != nil { - logger.Error(fmt.Sprintf("Error reading observe option: %s", err)) + logger.ErrorContext(ctx,fmt.Sprintf("Error reading observe option: %s", err)) return errBadOptions } if obs == startObserve { diff --git a/consumers/notifiers/api/logging.go b/consumers/notifiers/api/logging.go index 101bbd2155..de6586c353 100644 --- a/consumers/notifiers/api/logging.go +++ b/consumers/notifiers/api/logging.go @@ -38,7 +38,7 @@ func (lm *loggingMiddleware) CreateSubscription(ctx context.Context, token strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Create subscription failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Create subscription failed to complete successfully", args...) return } lm.logger.Info("Create subscription completed successfully", args...) @@ -60,7 +60,7 @@ func (lm *loggingMiddleware) ViewSubscription(ctx context.Context, token, topic } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("View subscription failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "View subscription failed to complete successfully", args...) return } lm.logger.Info("View subscription completed successfully", args...) @@ -84,7 +84,7 @@ func (lm *loggingMiddleware) ListSubscriptions(ctx context.Context, token string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List subscriptions failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List subscriptions failed to complete successfully", args...) return } lm.logger.Info("List subscriptions completed successfully", args...) @@ -103,7 +103,7 @@ func (lm *loggingMiddleware) RemoveSubscription(ctx context.Context, token, id s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Remove subscription failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Remove subscription failed to complete successfully", args...) return } lm.logger.Info("Remove subscription completed successfully", args...) @@ -121,7 +121,7 @@ func (lm *loggingMiddleware) ConsumeBlocking(ctx context.Context, msg interface{ } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Blocking consumer failed to consume messages successfully", args...) + lm.logger.ErrorContext(ctx, "Blocking consumer failed to consume messages successfully", args...) return } lm.logger.Info("Blocking consumer consumed messages successfully", args...) diff --git a/consumers/writers/api/logging.go b/consumers/writers/api/logging.go index 472d5f6bff..69b07aa3e3 100644 --- a/consumers/writers/api/logging.go +++ b/consumers/writers/api/logging.go @@ -37,7 +37,7 @@ func (lm *loggingMiddleware) ConsumeBlocking(ctx context.Context, msgs interface } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Blocking consumer failed to consume messages successfully", args...) + lm.logger.ErrorContext(ctx, "Blocking consumer failed to consume messages successfully", args...) return } lm.logger.Info("Blocking consumer consumed messages successfully", args...) diff --git a/internal/groups/api/logging.go b/internal/groups/api/logging.go index 89f2b70d13..554fee4729 100644 --- a/internal/groups/api/logging.go +++ b/internal/groups/api/logging.go @@ -36,7 +36,7 @@ func (lm *loggingMiddleware) CreateGroup(ctx context.Context, token, kind string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Create group failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Create group failed to complete successfully", args...) return } lm.logger.Info("Create group completed successfully", args...) @@ -58,7 +58,7 @@ func (lm *loggingMiddleware) UpdateGroup(ctx context.Context, token string, grou } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update group failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update group failed to complete successfully", args...) return } lm.logger.Info("Update group completed successfully", args...) @@ -79,7 +79,7 @@ func (lm *loggingMiddleware) ViewGroup(ctx context.Context, token, id string) (g } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("View group failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "View group failed to complete successfully", args...) return } lm.logger.Info("View group completed successfully", args...) @@ -97,7 +97,7 @@ func (lm *loggingMiddleware) ViewGroupPerms(ctx context.Context, token, id strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("View group permissions failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "View group permissions failed to complete successfully", args...) return } lm.logger.Info("View group permissions completed successfully", args...) @@ -123,7 +123,7 @@ func (lm *loggingMiddleware) ListGroups(ctx context.Context, token, memberKind, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List groups failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List groups failed to complete successfully", args...) return } lm.logger.Info("List groups completed successfully", args...) @@ -144,7 +144,7 @@ func (lm *loggingMiddleware) EnableGroup(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Enable group failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Enable group failed to complete successfully", args...) return } lm.logger.Info("Enable group completed successfully", args...) @@ -165,7 +165,7 @@ func (lm *loggingMiddleware) DisableGroup(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Disable group failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Disable group failed to complete successfully", args...) return } lm.logger.Info("Disable group completed successfully", args...) @@ -185,7 +185,7 @@ func (lm *loggingMiddleware) ListMembers(ctx context.Context, token, groupID, pe } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List members failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List members failed to complete successfully", args...) return } lm.logger.Info("List members completed successfully", args...) @@ -204,7 +204,7 @@ func (lm *loggingMiddleware) Assign(ctx context.Context, token, groupID, relatio } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Assign member to group failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Assign member to group failed to complete successfully", args...) return } lm.logger.Info("Assign member to group completed successfully", args...) @@ -224,7 +224,7 @@ func (lm *loggingMiddleware) Unassign(ctx context.Context, token, groupID, relat } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Unassign member to group failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Unassign member to group failed to complete successfully", args...) return } lm.logger.Info("Unassign member to group completed successfully", args...) @@ -241,7 +241,7 @@ func (lm *loggingMiddleware) DeleteGroup(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Delete group failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Delete group failed to complete successfully", args...) return } lm.logger.Info("Delete group completed successfully", args...) diff --git a/invitations/middleware/logging.go b/invitations/middleware/logging.go index 9ffae54d05..ace1540c91 100644 --- a/invitations/middleware/logging.go +++ b/invitations/middleware/logging.go @@ -31,7 +31,7 @@ func (lm *logging) SendInvitation(ctx context.Context, token string, invitation } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Send invitation failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Send invitation failed to complete successfully", args...) return } lm.logger.Info("Send invitation completed successfully", args...) @@ -48,7 +48,7 @@ func (lm *logging) ViewInvitation(ctx context.Context, token, userID, domainID s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("View invitation failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "View invitation failed to complete successfully", args...) return } lm.logger.Info("View invitation completed successfully", args...) @@ -68,7 +68,7 @@ func (lm *logging) ListInvitations(ctx context.Context, token string, page invit } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List invitations failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List invitations failed to complete successfully", args...) return } lm.logger.Info("List invitations completed successfully", args...) @@ -84,7 +84,7 @@ func (lm *logging) AcceptInvitation(ctx context.Context, token, domainID string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Accept invitation failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Accept invitation failed to complete successfully", args...) return } lm.logger.Info("Accept invitation completed successfully", args...) @@ -101,7 +101,7 @@ func (lm *logging) DeleteInvitation(ctx context.Context, token, userID, domainID } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Delete invitation failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Delete invitation failed to complete successfully", args...) return } lm.logger.Info("Delete invitation completed successfully", args...) diff --git a/lora/api/logging.go b/lora/api/logging.go index 0fb175777a..93b68feb20 100644 --- a/lora/api/logging.go +++ b/lora/api/logging.go @@ -37,7 +37,7 @@ func (lm loggingMiddleware) CreateThing(ctx context.Context, thingID, loraDevEUI } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Create thing route-map failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Create thing route-map failed to complete successfully", args...) return } lm.logger.Info("Create thing route-map completed successfully", args...) @@ -55,7 +55,7 @@ func (lm loggingMiddleware) UpdateThing(ctx context.Context, thingID, loraDevEUI } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update thing route-map failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update thing route-map failed to complete successfully", args...) return } lm.logger.Info("Update thing route-map completed successfully", args...) @@ -72,7 +72,7 @@ func (lm loggingMiddleware) RemoveThing(ctx context.Context, thingID string) (er } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Remove thing route-map failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Remove thing route-map failed to complete successfully", args...) return } lm.logger.Info("Remove thing route-map completed successfully", args...) @@ -90,7 +90,7 @@ func (lm loggingMiddleware) CreateChannel(ctx context.Context, chanID, loraApp s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Create channel route-map failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Create channel route-map failed to complete successfully", args...) return } lm.logger.Info("Create channel route-map completed successfully", args...) @@ -107,7 +107,7 @@ func (lm loggingMiddleware) UpdateChannel(ctx context.Context, chanID, loraApp s slog.String("lora_app", loraApp), } if err != nil { - lm.logger.Error("Update channel route-map failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update channel route-map failed to complete successfully", args...) return } lm.logger.Info("Update channel route-map completed successfully", args...) @@ -123,7 +123,7 @@ func (lm loggingMiddleware) RemoveChannel(ctx context.Context, chanID string) (e slog.String("channel_id", chanID), } if err != nil { - lm.logger.Error("Remove channel route-map failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Remove channel route-map failed to complete successfully", args...) return } lm.logger.Info("Remove channel route-map completed successfully", args...) @@ -141,7 +141,7 @@ func (lm loggingMiddleware) ConnectThing(ctx context.Context, chanID, thingID st } if err != nil { args := append(args, slog.String("error", err.Error())) - lm.logger.Error("Connect thing to channel failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Connect thing to channel failed to complete successfully", args...) return } lm.logger.Info("Connect thing to channel completed successfully", args...) @@ -159,7 +159,7 @@ func (lm loggingMiddleware) DisconnectThing(ctx context.Context, chanID, thingID } if err != nil { args := append(args, slog.String("error", err.Error())) - lm.logger.Error("Disconnect thing from channel failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Disconnect thing from channel failed to complete successfully", args...) return } lm.logger.Info("Disconnect thing from channel completed successfully", args...) @@ -179,7 +179,7 @@ func (lm loggingMiddleware) Publish(ctx context.Context, msg *lora.Message) (err } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Publish failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Publish failed to complete successfully", args...) return } lm.logger.Info("Publish completed successfully", args...) diff --git a/opcua/api/logging.go b/opcua/api/logging.go index 12d5f31191..36b0a7f574 100644 --- a/opcua/api/logging.go +++ b/opcua/api/logging.go @@ -37,7 +37,7 @@ func (lm loggingMiddleware) CreateThing(ctx context.Context, mgxThing, opcuaNode } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Create thing route-map failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Create thing route-map failed to complete successfully", args...) return } lm.logger.Info("Create thing route-map completed successfully", args...) @@ -55,7 +55,7 @@ func (lm loggingMiddleware) UpdateThing(ctx context.Context, mgxThing, opcuaNode } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update thing route-map failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update thing route-map failed to complete successfully", args...) return } lm.logger.Info("Update thing route-map completed successfully", args...) @@ -72,7 +72,7 @@ func (lm loggingMiddleware) RemoveThing(ctx context.Context, mgxThing string) (e } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Remove thing route-map failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Remove thing route-map failed to complete successfully", args...) return } lm.logger.Info("Remove thing route-map completed successfully", args...) @@ -90,7 +90,7 @@ func (lm loggingMiddleware) CreateChannel(ctx context.Context, mgxChan, opcuaSer } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Create channel route-map failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Create channel route-map failed to complete successfully", args...) return } lm.logger.Info("Create channel route-map completed successfully", args...) @@ -108,7 +108,7 @@ func (lm loggingMiddleware) UpdateChannel(ctx context.Context, mgxChanID, opcuaS } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update channel route-map failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update channel route-map failed to complete successfully", args...) return } lm.logger.Info("Update channel route-map completed successfully", args...) @@ -125,7 +125,7 @@ func (lm loggingMiddleware) RemoveChannel(ctx context.Context, mgxChanID string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Remove channel route-map failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Remove channel route-map failed to complete successfully", args...) return } lm.logger.Info("Remove channel route-map completed successfully", args...) @@ -143,7 +143,7 @@ func (lm loggingMiddleware) ConnectThing(ctx context.Context, mgxChanID string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Connect thing to channel failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Connect thing to channel failed to complete successfully", args...) return } lm.logger.Info("Connect thing to channel completed successfully", args...) @@ -161,7 +161,7 @@ func (lm loggingMiddleware) DisconnectThing(ctx context.Context, mgxChanID strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Disconnect thing from channel failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Disconnect thing from channel failed to complete successfully", args...) return } lm.logger.Info("Disconnect thing from channel completed successfully", args...) @@ -181,7 +181,7 @@ func (lm loggingMiddleware) Browse(ctx context.Context, serverURI, namespace, id } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Browse available nodes failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Browse available nodes failed to complete successfully", args...) return } lm.logger.Info("Browse available nodes completed successfully", args...) diff --git a/pkg/messaging/handler/logging.go b/pkg/messaging/handler/logging.go index 30bf57b7e8..9c1b0d54bb 100644 --- a/pkg/messaging/handler/logging.go +++ b/pkg/messaging/handler/logging.go @@ -83,7 +83,7 @@ func (lm *loggingMiddleware) logAction(action string, topics *[]string, t time.T } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error(action+" failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, action+" failed to complete successfully", args...) return } lm.logger.Info(action+" completed successfully", args...) diff --git a/things/api/logging.go b/things/api/logging.go index 22fbee6230..fcf05bef3d 100644 --- a/things/api/logging.go +++ b/things/api/logging.go @@ -32,7 +32,7 @@ func (lm *loggingMiddleware) CreateThings(ctx context.Context, token string, cli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error(fmt.Sprintf("Create %d things failed to complete successfully", len(clients)), args...) + lm.logger.ErrorContext(ctx, fmt.Sprintf("Create %d things failed to complete successfully", len(clients)), args...) return } lm.logger.Info(fmt.Sprintf("Create %d things completed successfully", len(clients)), args...) @@ -51,7 +51,7 @@ func (lm *loggingMiddleware) ViewClient(ctx context.Context, token, id string) ( } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("View thing failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "View thing failed to complete successfully", args...) return } lm.logger.Info("View thing completed successfully", args...) @@ -67,7 +67,7 @@ func (lm *loggingMiddleware) ViewClientPerms(ctx context.Context, token, id stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("View thing permissions failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "View thing permissions failed to complete successfully", args...) return } lm.logger.Info("View thing permissions completed successfully", args...) @@ -88,7 +88,7 @@ func (lm *loggingMiddleware) ListClients(ctx context.Context, token, reqUserID s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List things failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List things failed to complete successfully", args...) return } lm.logger.Info("List things completed successfully", args...) @@ -108,7 +108,7 @@ func (lm *loggingMiddleware) UpdateClient(ctx context.Context, token string, cli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update thing failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update thing failed to complete successfully", args...) return } lm.logger.Info("Update thing completed successfully", args...) @@ -128,7 +128,7 @@ func (lm *loggingMiddleware) UpdateClientTags(ctx context.Context, token string, } if err != nil { args := append(args, slog.String("error", err.Error())) - lm.logger.Error("Update thing tags failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update thing tags failed to complete successfully", args...) return } lm.logger.Info("Update thing tags completed successfully", args...) @@ -147,7 +147,7 @@ func (lm *loggingMiddleware) UpdateClientSecret(ctx context.Context, token, oldS } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update thing secret failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update thing secret failed to complete successfully", args...) return } lm.logger.Info("Update thing secret completed successfully", args...) @@ -166,7 +166,7 @@ func (lm *loggingMiddleware) EnableClient(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Enable thing failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Enable thing failed to complete successfully", args...) return } lm.logger.Info("Enable thing completed successfully", args...) @@ -185,7 +185,7 @@ func (lm *loggingMiddleware) DisableClient(ctx context.Context, token, id string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Disable thing failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Disable thing failed to complete successfully", args...) return } lm.logger.Info("Disable thing completed successfully", args...) @@ -206,7 +206,7 @@ func (lm *loggingMiddleware) ListClientsByGroup(ctx context.Context, token, chan } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List things by group failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List things by group failed to complete successfully", args...) return } lm.logger.Info("List things by group completed successfully", args...) @@ -222,7 +222,7 @@ func (lm *loggingMiddleware) Identify(ctx context.Context, key string) (id strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Identify thing failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Identify thing failed to complete successfully", args...) return } lm.logger.Info("Identify thing completed successfully", args...) @@ -241,7 +241,7 @@ func (lm *loggingMiddleware) Authorize(ctx context.Context, req *magistrala.Auth } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Authorize failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Authorize failed to complete successfully", args...) return } lm.logger.Info("Authorize completed successfully", args...) @@ -259,7 +259,7 @@ func (lm *loggingMiddleware) Share(ctx context.Context, token, id, relation stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Share thing failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Share thing failed to complete successfully", args...) return } lm.logger.Info("Share thing completed successfully", args...) @@ -277,7 +277,7 @@ func (lm *loggingMiddleware) Unshare(ctx context.Context, token, id, relation st } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Unshare thing failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Unshare thing failed to complete successfully", args...) return } lm.logger.Info("Unshare thing completed successfully", args...) @@ -293,7 +293,7 @@ func (lm *loggingMiddleware) DeleteClient(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Delete thing failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Delete thing failed to complete successfully", args...) return } lm.logger.Info("Delete thing completed successfully", args...) diff --git a/twins/api/logging.go b/twins/api/logging.go index 07b4f51480..1460e1af80 100644 --- a/twins/api/logging.go +++ b/twins/api/logging.go @@ -38,7 +38,7 @@ func (lm *loggingMiddleware) AddTwin(ctx context.Context, token string, twin twi } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Add twin failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Add twin failed to complete successfully", args...) return } lm.logger.Info("Add twin completed successfully", args...) @@ -59,7 +59,7 @@ func (lm *loggingMiddleware) UpdateTwin(ctx context.Context, token string, twin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update twin failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update twin failed to complete successfully", args...) return } lm.logger.Info("Update twin completed successfully", args...) @@ -76,7 +76,7 @@ func (lm *loggingMiddleware) ViewTwin(ctx context.Context, token, twinID string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("View twin failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "View twin failed to complete successfully", args...) return } lm.logger.Info("View twin completed successfully", args...) @@ -98,7 +98,7 @@ func (lm *loggingMiddleware) ListTwins(ctx context.Context, token string, offset } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List twins failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List twins failed to complete successfully", args...) return } lm.logger.Info("List twins completed successfully", args...) @@ -119,7 +119,7 @@ func (lm *loggingMiddleware) SaveStates(ctx context.Context, msg *messaging.Mess } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Save states failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Save states failed to complete successfully", args...) return } lm.logger.Info("Save states completed successfully", args...) @@ -141,7 +141,7 @@ func (lm *loggingMiddleware) ListStates(ctx context.Context, token string, offse } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List states failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List states failed to complete successfully", args...) return } lm.logger.Info("List states completed successfully", args...) @@ -158,7 +158,7 @@ func (lm *loggingMiddleware) RemoveTwin(ctx context.Context, token, twinID strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Remove twin failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Remove twin failed to complete successfully", args...) return } lm.logger.Info("Remove twin completed successfully", args...) diff --git a/users/api/logging.go b/users/api/logging.go index 592a7ed0ad..f090b423d8 100644 --- a/users/api/logging.go +++ b/users/api/logging.go @@ -38,7 +38,7 @@ func (lm *loggingMiddleware) RegisterClient(ctx context.Context, token string, c } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Register user failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Register user failed to complete successfully", args...) return } lm.logger.Info("Register user completed successfully", args...) @@ -59,7 +59,7 @@ func (lm *loggingMiddleware) IssueToken(ctx context.Context, identity, secret, d } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Issue token failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Issue token failed to complete successfully", args...) return } lm.logger.Info("Issue token completed successfully", args...) @@ -80,7 +80,7 @@ func (lm *loggingMiddleware) RefreshToken(ctx context.Context, refreshToken, dom } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Refresh token failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Refresh token failed to complete successfully", args...) return } lm.logger.Info("Refresh token completed successfully", args...) @@ -101,7 +101,7 @@ func (lm *loggingMiddleware) ViewClient(ctx context.Context, token, id string) ( } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("View user failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "View user failed to complete successfully", args...) return } lm.logger.Info("View user completed successfully", args...) @@ -122,7 +122,7 @@ func (lm *loggingMiddleware) ViewProfile(ctx context.Context, token string) (c m } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("View profile failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "View profile failed to complete successfully", args...) return } lm.logger.Info("View profile completed successfully", args...) @@ -144,7 +144,7 @@ func (lm *loggingMiddleware) ListClients(ctx context.Context, token string, pm m } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List users failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List users failed to complete successfully", args...) return } lm.logger.Info("List users completed successfully", args...) @@ -166,7 +166,7 @@ func (lm *loggingMiddleware) UpdateClient(ctx context.Context, token string, cli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update user failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update user failed to complete successfully", args...) return } lm.logger.Info("Update user completed successfully", args...) @@ -188,7 +188,7 @@ func (lm *loggingMiddleware) UpdateClientTags(ctx context.Context, token string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update user tags failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update user tags failed to complete successfully", args...) return } lm.logger.Info("Update user tags completed successfully", args...) @@ -209,7 +209,7 @@ func (lm *loggingMiddleware) UpdateClientIdentity(ctx context.Context, token, id } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update client identity failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update client identity failed to complete successfully", args...) return } lm.logger.Info("Update client identity completed successfully", args...) @@ -230,7 +230,7 @@ func (lm *loggingMiddleware) UpdateClientSecret(ctx context.Context, token, oldS } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update user secret failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update user secret failed to complete successfully", args...) return } lm.logger.Info("Update user secret completed successfully", args...) @@ -248,7 +248,7 @@ func (lm *loggingMiddleware) GenerateResetToken(ctx context.Context, email, host } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Generate reset token failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Generate reset token failed to complete successfully", args...) return } lm.logger.Info("Generate reset token completed successfully", args...) @@ -265,7 +265,7 @@ func (lm *loggingMiddleware) ResetSecret(ctx context.Context, token, secret stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Reset secret failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Reset secret failed to complete successfully", args...) return } lm.logger.Info("Reset secret completed successfully", args...) @@ -283,7 +283,7 @@ func (lm *loggingMiddleware) SendPasswordReset(ctx context.Context, host, email, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Send password reset failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Send password reset failed to complete successfully", args...) return } lm.logger.Info("Send password reset completed successfully", args...) @@ -305,7 +305,7 @@ func (lm *loggingMiddleware) UpdateClientRole(ctx context.Context, token string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Update user role failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Update user role failed to complete successfully", args...) return } lm.logger.Info("Update user role completed successfully", args...) @@ -326,7 +326,7 @@ func (lm *loggingMiddleware) EnableClient(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Enable user failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Enable user failed to complete successfully", args...) return } lm.logger.Info("Enable user completed successfully", args...) @@ -347,7 +347,7 @@ func (lm *loggingMiddleware) DisableClient(ctx context.Context, token, id string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Disable user failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Disable user failed to complete successfully", args...) return } lm.logger.Info("Disable user completed successfully", args...) @@ -373,7 +373,7 @@ func (lm *loggingMiddleware) ListMembers(ctx context.Context, token, objectKind, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("List members failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "List members failed to complete successfully", args...) return } lm.logger.Info("List members completed successfully", args...) @@ -390,7 +390,7 @@ func (lm *loggingMiddleware) Identify(ctx context.Context, token string) (id str } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Identify user failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Identify user failed to complete successfully", args...) return } lm.logger.Info("Identify user completed successfully", args...) @@ -406,7 +406,7 @@ func (lm *loggingMiddleware) OAuthCallback(ctx context.Context, client mgclients } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("OAuth callback failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "OAuth callback failed to complete successfully", args...) return } lm.logger.Info("OAuth callback completed successfully", args...) From 322eb956594fafe88e61cdf08e451d45d07734a2 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Mon, 6 May 2024 12:31:53 +0300 Subject: [PATCH 08/20] Changed from error to errorcontext Signed-off-by: nyagamunene --- coap/api/transport.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coap/api/transport.go b/coap/api/transport.go index 8d2e78f19f..c7265c99fb 100644 --- a/coap/api/transport.go +++ b/coap/api/transport.go @@ -126,7 +126,7 @@ func handleGet(m *mux.Message, w mux.ResponseWriter, msg *messaging.Message, key var obs uint32 obs, err := m.Options().Observe() if err != nil { - logger.ErrorContext(ctx,fmt.Sprintf("Error reading observe option: %s", err)) + logger.ErrorContext(ctx, fmt.Sprintf("Error reading observe option: %s", err)) return errBadOptions } if obs == startObserve { From b7a7346182d7d2e95c7c48e99c2b58e2ca5e3009 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Mon, 6 May 2024 12:55:43 +0300 Subject: [PATCH 09/20] Changed from error to errorcontext Signed-off-by: nyagamunene --- coap/api/logging.go | 6 +++--- consumers/messages.go | 2 +- ws/api/logging.go | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/coap/api/logging.go b/coap/api/logging.go index b65d70e923..08fa27ce11 100644 --- a/coap/api/logging.go +++ b/coap/api/logging.go @@ -39,7 +39,7 @@ func (lm *loggingMiddleware) Publish(ctx context.Context, key string, msg *messa } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Publish message failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Publish message failed to complete successfully", args...) return } lm.logger.Info("Publish message completed successfully", args...) @@ -61,7 +61,7 @@ func (lm *loggingMiddleware) Subscribe(ctx context.Context, key, chanID, subtopi } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Subscribe failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Subscribe failed to complete successfully", args...) return } lm.logger.Info("Subscribe completed successfully", args...) @@ -83,7 +83,7 @@ func (lm *loggingMiddleware) Unsubscribe(ctx context.Context, key, chanID, subto } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Unsubscribe failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Unsubscribe failed to complete successfully", args...) return } lm.logger.Info("Unsubscribe completed successfully", args...) diff --git a/consumers/messages.go b/consumers/messages.go index 39d15c0907..a635547be2 100644 --- a/consumers/messages.go +++ b/consumers/messages.go @@ -36,7 +36,7 @@ var ( func Start(ctx context.Context, id string, sub messaging.Subscriber, consumer interface{}, configPath string, logger *slog.Logger) error { cfg, err := loadConfig(configPath) if err != nil { - logger.Error(fmt.Sprintf("Failed to load consumer config: %s", err)) + logger.Warn(fmt.Sprintf("Failed to load consumer config: %s", err)) } transformer := makeTransformer(cfg.TransformerCfg, logger) diff --git a/ws/api/logging.go b/ws/api/logging.go index 8b5881ff03..61cc787de6 100644 --- a/ws/api/logging.go +++ b/ws/api/logging.go @@ -36,7 +36,7 @@ func (lm *loggingMiddleware) Subscribe(ctx context.Context, thingKey, chanID, su } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.Error("Subscibe failed to complete successfully", args...) + lm.logger.ErrorContext(ctx, "Subscibe failed to complete successfully", args...) return } lm.logger.Info("Subscribe completed successfully", args...) From 78c260dfb0d106cfd55f420dd937064a508db416 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Mon, 6 May 2024 13:02:04 +0300 Subject: [PATCH 10/20] Changed from error to errorcontext in redis handle Signed-off-by: nyagamunene --- pkg/events/redis/subscriber.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/events/redis/subscriber.go b/pkg/events/redis/subscriber.go index 910ecca348..925589c77e 100644 --- a/pkg/events/redis/subscriber.go +++ b/pkg/events/redis/subscriber.go @@ -103,13 +103,13 @@ func (es *subEventStore) handle(ctx context.Context, stream string, msgs []redis } if err := h.Handle(ctx, event); err != nil { - es.logger.Warn(fmt.Sprintf("failed to handle redis event: %s", err)) + es.logger.ErrorContext(ctx, fmt.Sprintf("failed to handle redis event: %s", err)) return } if err := es.client.XAck(ctx, stream, group, msg.ID).Err(); err != nil { - es.logger.Warn(fmt.Sprintf("failed to ack redis event: %s", err)) + es.logger.ErrorContext(ctx, fmt.Sprintf("failed to ack redis event: %s", err)) return } From 895d279563aefa10971122576f15f660471ebcf1 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Tue, 21 May 2024 01:31:39 +0300 Subject: [PATCH 11/20] Used parent context Signed-off-by: nyagamunene --- pkg/messaging/handler/logging.go | 2 +- ws/api/endpoints.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/messaging/handler/logging.go b/pkg/messaging/handler/logging.go index 9c1b0d54bb..30bf57b7e8 100644 --- a/pkg/messaging/handler/logging.go +++ b/pkg/messaging/handler/logging.go @@ -83,7 +83,7 @@ func (lm *loggingMiddleware) logAction(action string, topics *[]string, t time.T } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, action+" failed to complete successfully", args...) + lm.logger.Error(action+" failed to complete successfully", args...) return } lm.logger.Info(action+" completed successfully", args...) diff --git a/ws/api/endpoints.go b/ws/api/endpoints.go index cb83a8ced4..43160949a9 100644 --- a/ws/api/endpoints.go +++ b/ws/api/endpoints.go @@ -27,7 +27,7 @@ func handshake(ctx context.Context, svc ws.Service) http.HandlerFunc { } conn, err := upgrader.Upgrade(w, r, nil) if err != nil { - logger.Error(fmt.Sprintf("Failed to upgrade connection to websocket: %s", err.Error())) + logger.ErrorContext(ctx, fmt.Sprintf("Failed to upgrade connection to websocket: %s", err.Error())) return } req.conn = conn From cc76620c1f1d3ec0ccca36be86fb83ce7d25e99c Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Tue, 21 May 2024 12:35:24 +0300 Subject: [PATCH 12/20] used request context Signed-off-by: nyagamunene --- ws/api/endpoints.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ws/api/endpoints.go b/ws/api/endpoints.go index 43160949a9..7466b470be 100644 --- a/ws/api/endpoints.go +++ b/ws/api/endpoints.go @@ -62,7 +62,7 @@ func decodeRequest(r *http.Request) (connReq, error) { channelParts := channelPartRegExp.FindStringSubmatch(r.RequestURI) if len(channelParts) < 2 { - logger.Error("Empty channel id or malformed url") + logger.ErrorContext(r.Context(), "Empty channel id or malformed url") return connReq{}, errors.ErrMalformedEntity } From 20d785635565e28de46226448c07e68715a4de0d Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Wed, 22 May 2024 13:20:45 +0300 Subject: [PATCH 13/20] Reverted to warn context Signed-off-by: nyagamunene --- auth/api/logging.go | 50 +++++++++++++++--------------- bootstrap/api/logging.go | 26 ++++++++-------- certs/api/logging.go | 10 +++--- coap/api/logging.go | 6 ++-- coap/api/transport.go | 2 +- consumers/notifiers/api/logging.go | 10 +++--- consumers/writers/api/logging.go | 2 +- internal/groups/api/logging.go | 22 ++++++------- invitations/middleware/logging.go | 10 +++--- lora/api/logging.go | 18 +++++------ opcua/api/logging.go | 18 +++++------ pkg/events/redis/subscriber.go | 4 +-- things/api/logging.go | 30 +++++++++--------- twins/api/logging.go | 14 ++++----- users/api/logging.go | 38 +++++++++++------------ ws/api/endpoints.go | 4 +-- ws/api/logging.go | 2 +- 17 files changed, 133 insertions(+), 133 deletions(-) diff --git a/auth/api/logging.go b/auth/api/logging.go index cba1b1ca7b..1bef22f59c 100644 --- a/auth/api/logging.go +++ b/auth/api/logging.go @@ -34,7 +34,7 @@ func (lm *loggingMiddleware) ListObjects(ctx context.Context, pr auth.PolicyReq, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List objects failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List objects failed to complete successfully", args...) return } lm.logger.Info("List objects completed successfully", args...) @@ -56,7 +56,7 @@ func (lm *loggingMiddleware) ListAllObjects(ctx context.Context, pr auth.PolicyR } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List all objects failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List all objects failed to complete successfully", args...) return } lm.logger.Info("List all objects completed successfully", args...) @@ -72,7 +72,7 @@ func (lm *loggingMiddleware) CountObjects(ctx context.Context, pr auth.PolicyReq } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Count objects failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Count objects failed to complete successfully", args...) return } lm.logger.Info("Count objects completed successfully", args...) @@ -87,7 +87,7 @@ func (lm *loggingMiddleware) ListSubjects(ctx context.Context, pr auth.PolicyReq } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List subjects failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List subjects failed to complete successfully", args...) return } lm.logger.Info("List subjects completed successfully", args...) @@ -109,7 +109,7 @@ func (lm *loggingMiddleware) ListAllSubjects(ctx context.Context, pr auth.Policy } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List all subjects failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List all subjects failed to complete successfully", args...) return } lm.logger.Info("List all subjects completed successfully", args...) @@ -125,7 +125,7 @@ func (lm *loggingMiddleware) CountSubjects(ctx context.Context, pr auth.PolicyRe } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Count subjects failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Count subjects failed to complete successfully", args...) return } lm.logger.Info("Count subjects completed successfully", args...) @@ -147,7 +147,7 @@ func (lm *loggingMiddleware) ListPermissions(ctx context.Context, pr auth.Policy } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List permissions failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List permissions failed to complete successfully", args...) return } lm.logger.Info("List permissions completed successfully", args...) @@ -167,7 +167,7 @@ func (lm *loggingMiddleware) Issue(ctx context.Context, token string, key auth.K } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Issue key failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Issue key failed to complete successfully", args...) return } lm.logger.Info("Issue key completed successfully", args...) @@ -184,7 +184,7 @@ func (lm *loggingMiddleware) Revoke(ctx context.Context, token, id string) (err } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Revoke key failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Revoke key failed to complete successfully", args...) return } lm.logger.Info("Revoke key completed successfully", args...) @@ -201,7 +201,7 @@ func (lm *loggingMiddleware) RetrieveKey(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Retrieve key failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Retrieve key failed to complete successfully", args...) return } lm.logger.Info("Retrieve key completed successfully", args...) @@ -221,7 +221,7 @@ func (lm *loggingMiddleware) Identify(ctx context.Context, token string) (id aut } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Identify key failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Identify key failed to complete successfully", args...) return } lm.logger.Info("Identify key completed successfully", args...) @@ -247,7 +247,7 @@ func (lm *loggingMiddleware) Authorize(ctx context.Context, pr auth.PolicyReq) ( } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Authorize failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Authorize failed to complete successfully", args...) return } lm.logger.Info("Authorize completed successfully", args...) @@ -269,7 +269,7 @@ func (lm *loggingMiddleware) AddPolicy(ctx context.Context, pr auth.PolicyReq) ( } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Add policy failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Add policy failed to complete successfully", args...) return } lm.logger.Info("Add policy completed successfully", args...) @@ -284,7 +284,7 @@ func (lm *loggingMiddleware) AddPolicies(ctx context.Context, prs []auth.PolicyR } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, fmt.Sprintf("Add %d policies failed to complete successfully", len(prs)), args...) + lm.logger.WarnContext(ctx, fmt.Sprintf("Add %d policies failed to complete successfully", len(prs)), args...) return } lm.logger.Info(fmt.Sprintf("Add %d policies completed successfully", len(prs)), args...) @@ -307,7 +307,7 @@ func (lm *loggingMiddleware) DeletePolicy(ctx context.Context, pr auth.PolicyReq } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Delete policy failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Delete policy failed to complete successfully", args...) return } lm.logger.Info("Delete policy completed successfully", args...) @@ -322,7 +322,7 @@ func (lm *loggingMiddleware) DeletePolicies(ctx context.Context, prs []auth.Poli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, fmt.Sprintf("Delete %d policies failed to complete successfully", len(prs)), args...) + lm.logger.WarnContext(ctx, fmt.Sprintf("Delete %d policies failed to complete successfully", len(prs)), args...) return } lm.logger.Info(fmt.Sprintf("Delete %d policies completed successfully", len(prs)), args...) @@ -341,7 +341,7 @@ func (lm *loggingMiddleware) CreateDomain(ctx context.Context, token string, d a } if err != nil { args := append(args, slog.String("error", err.Error())) - lm.logger.ErrorContext(ctx, "Create domain failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Create domain failed to complete successfully", args...) return } lm.logger.Info("Create domain completed successfully", args...) @@ -357,7 +357,7 @@ func (lm *loggingMiddleware) RetrieveDomain(ctx context.Context, token, id strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Retrieve domain failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Retrieve domain failed to complete successfully", args...) return } lm.logger.Info("Retrieve domain completed successfully", args...) @@ -373,7 +373,7 @@ func (lm *loggingMiddleware) RetrieveDomainPermissions(ctx context.Context, toke } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Retrieve domain permissions failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Retrieve domain permissions failed to complete successfully", args...) return } lm.logger.Info("Retrieve domain permissions completed successfully", args...) @@ -392,7 +392,7 @@ func (lm *loggingMiddleware) UpdateDomain(ctx context.Context, token, id string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update domain failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update domain failed to complete successfully", args...) return } lm.logger.Info("Update domain completed successfully", args...) @@ -412,7 +412,7 @@ func (lm *loggingMiddleware) ChangeDomainStatus(ctx context.Context, token, id s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Change domain status failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Change domain status failed to complete successfully", args...) return } lm.logger.Info("Change domain status completed successfully", args...) @@ -432,7 +432,7 @@ func (lm *loggingMiddleware) ListDomains(ctx context.Context, token string, page } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List domains failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List domains failed to complete successfully", args...) return } lm.logger.Info("List domains completed successfully", args...) @@ -450,7 +450,7 @@ func (lm *loggingMiddleware) AssignUsers(ctx context.Context, token, id string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Assign users to domain failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Assign users to domain failed to complete successfully", args...) return } lm.logger.Info("Assign users to domain completed successfully", args...) @@ -468,7 +468,7 @@ func (lm *loggingMiddleware) UnassignUsers(ctx context.Context, token, id string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Unassign users to domain failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Unassign users to domain failed to complete successfully", args...) return } lm.logger.Info("Unassign users to domain completed successfully", args...) @@ -484,7 +484,7 @@ func (lm *loggingMiddleware) ListUserDomains(ctx context.Context, token, userID } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List user domains failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List user domains failed to complete successfully", args...) return } lm.logger.Info("List user domains completed successfully", args...) diff --git a/bootstrap/api/logging.go b/bootstrap/api/logging.go index 22f8f73f31..3a17598bd1 100644 --- a/bootstrap/api/logging.go +++ b/bootstrap/api/logging.go @@ -35,7 +35,7 @@ func (lm *loggingMiddleware) Add(ctx context.Context, token string, cfg bootstra } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Add new bootstrap failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Add new bootstrap failed to complete successfully", args...) return } lm.logger.Info("Add new bootstrap completed successfully", args...) @@ -54,7 +54,7 @@ func (lm *loggingMiddleware) View(ctx context.Context, token, id string) (saved } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "View thing config failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "View thing config failed to complete successfully", args...) return } lm.logger.Info("View thing config completed successfully", args...) @@ -76,7 +76,7 @@ func (lm *loggingMiddleware) Update(ctx context.Context, token string, cfg boots } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update bootstrap config failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update bootstrap config failed to complete successfully", args...) return } lm.logger.Info("Update bootstrap config completed successfully", args...) @@ -95,7 +95,7 @@ func (lm *loggingMiddleware) UpdateCert(ctx context.Context, token, thingID, cli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update bootstrap config certificate failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update bootstrap config certificate failed to complete successfully", args...) return } lm.logger.Info("Update bootstrap config certificate completed successfully", args...) @@ -115,7 +115,7 @@ func (lm *loggingMiddleware) UpdateConnections(ctx context.Context, token, id st } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update config connections failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update config connections failed to complete successfully", args...) return } lm.logger.Info("Update config connections completed successfully", args...) @@ -139,7 +139,7 @@ func (lm *loggingMiddleware) List(ctx context.Context, token string, filter boot } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List configs failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List configs failed to complete successfully", args...) return } lm.logger.Info("List configs completed successfully", args...) @@ -158,7 +158,7 @@ func (lm *loggingMiddleware) Remove(ctx context.Context, token, id string) (err } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Remove bootstrap config failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Remove bootstrap config failed to complete successfully", args...) return } lm.logger.Info("Remove bootstrap config completed successfully", args...) @@ -175,7 +175,7 @@ func (lm *loggingMiddleware) Bootstrap(ctx context.Context, externalKey, externa } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "View bootstrap config failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "View bootstrap config failed to complete successfully", args...) return } lm.logger.Info("View bootstrap completed successfully", args...) @@ -193,7 +193,7 @@ func (lm *loggingMiddleware) ChangeState(ctx context.Context, token, id string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Change thing state failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Change thing state failed to complete successfully", args...) return } lm.logger.Info("Change thing state completed successfully", args...) @@ -214,7 +214,7 @@ func (lm *loggingMiddleware) UpdateChannelHandler(ctx context.Context, channel b } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update channel handler failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update channel handler failed to complete successfully", args...) return } lm.logger.Info("Update channel handler completed successfully", args...) @@ -231,7 +231,7 @@ func (lm *loggingMiddleware) RemoveConfigHandler(ctx context.Context, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Remove config handler failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Remove config handler failed to complete successfully", args...) return } lm.logger.Info("Remove config handler completed successfully", args...) @@ -248,7 +248,7 @@ func (lm *loggingMiddleware) RemoveChannelHandler(ctx context.Context, id string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Remove channel handler failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Remove channel handler failed to complete successfully", args...) return } lm.logger.Info("Remove channel handler completed successfully", args...) @@ -266,7 +266,7 @@ func (lm *loggingMiddleware) DisconnectThingHandler(ctx context.Context, channel } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Disconnect thing handler failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Disconnect thing handler failed to complete successfully", args...) return } lm.logger.Info("Disconnect thing handler completed successfully", args...) diff --git a/certs/api/logging.go b/certs/api/logging.go index 599bd5147f..4a36a11300 100644 --- a/certs/api/logging.go +++ b/certs/api/logging.go @@ -36,7 +36,7 @@ func (lm *loggingMiddleware) IssueCert(ctx context.Context, token, thingID, ttl } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Issue certificate failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Issue certificate failed to complete successfully", args...) return } lm.logger.Info("Issue certificate completed successfully", args...) @@ -59,7 +59,7 @@ func (lm *loggingMiddleware) ListCerts(ctx context.Context, token, thingID strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List certificates failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List certificates failed to complete successfully", args...) return } lm.logger.Info("List certificates completed successfully", args...) @@ -83,7 +83,7 @@ func (lm *loggingMiddleware) ListSerials(ctx context.Context, token, thingID str } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List certifcates serials failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List certifcates serials failed to complete successfully", args...) return } lm.logger.Info("List certificates serials completed successfully", args...) @@ -102,7 +102,7 @@ func (lm *loggingMiddleware) ViewCert(ctx context.Context, token, serialID strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "View certificate failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "View certificate failed to complete successfully", args...) return } lm.logger.Info("View certificate completed successfully", args...) @@ -121,7 +121,7 @@ func (lm *loggingMiddleware) RevokeCert(ctx context.Context, token, thingID stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Revoke certificate failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Revoke certificate failed to complete successfully", args...) return } lm.logger.Info("Revoke certificate completed successfully", args...) diff --git a/coap/api/logging.go b/coap/api/logging.go index 08fa27ce11..c5ab82a54b 100644 --- a/coap/api/logging.go +++ b/coap/api/logging.go @@ -39,7 +39,7 @@ func (lm *loggingMiddleware) Publish(ctx context.Context, key string, msg *messa } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Publish message failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Publish message failed to complete successfully", args...) return } lm.logger.Info("Publish message completed successfully", args...) @@ -61,7 +61,7 @@ func (lm *loggingMiddleware) Subscribe(ctx context.Context, key, chanID, subtopi } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Subscribe failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Subscribe failed to complete successfully", args...) return } lm.logger.Info("Subscribe completed successfully", args...) @@ -83,7 +83,7 @@ func (lm *loggingMiddleware) Unsubscribe(ctx context.Context, key, chanID, subto } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Unsubscribe failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Unsubscribe failed to complete successfully", args...) return } lm.logger.Info("Unsubscribe completed successfully", args...) diff --git a/coap/api/transport.go b/coap/api/transport.go index c7265c99fb..acbe36c3c9 100644 --- a/coap/api/transport.go +++ b/coap/api/transport.go @@ -126,7 +126,7 @@ func handleGet(m *mux.Message, w mux.ResponseWriter, msg *messaging.Message, key var obs uint32 obs, err := m.Options().Observe() if err != nil { - logger.ErrorContext(ctx, fmt.Sprintf("Error reading observe option: %s", err)) + logger.WarnContext(ctx, fmt.Sprintf("Error reading observe option: %s", err)) return errBadOptions } if obs == startObserve { diff --git a/consumers/notifiers/api/logging.go b/consumers/notifiers/api/logging.go index de6586c353..d38e6de5c4 100644 --- a/consumers/notifiers/api/logging.go +++ b/consumers/notifiers/api/logging.go @@ -38,7 +38,7 @@ func (lm *loggingMiddleware) CreateSubscription(ctx context.Context, token strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Create subscription failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Create subscription failed to complete successfully", args...) return } lm.logger.Info("Create subscription completed successfully", args...) @@ -60,7 +60,7 @@ func (lm *loggingMiddleware) ViewSubscription(ctx context.Context, token, topic } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "View subscription failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "View subscription failed to complete successfully", args...) return } lm.logger.Info("View subscription completed successfully", args...) @@ -84,7 +84,7 @@ func (lm *loggingMiddleware) ListSubscriptions(ctx context.Context, token string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List subscriptions failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List subscriptions failed to complete successfully", args...) return } lm.logger.Info("List subscriptions completed successfully", args...) @@ -103,7 +103,7 @@ func (lm *loggingMiddleware) RemoveSubscription(ctx context.Context, token, id s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Remove subscription failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Remove subscription failed to complete successfully", args...) return } lm.logger.Info("Remove subscription completed successfully", args...) @@ -121,7 +121,7 @@ func (lm *loggingMiddleware) ConsumeBlocking(ctx context.Context, msg interface{ } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Blocking consumer failed to consume messages successfully", args...) + lm.logger.WarnContext(ctx, "Blocking consumer failed to consume messages successfully", args...) return } lm.logger.Info("Blocking consumer consumed messages successfully", args...) diff --git a/consumers/writers/api/logging.go b/consumers/writers/api/logging.go index 69b07aa3e3..4d826d6d86 100644 --- a/consumers/writers/api/logging.go +++ b/consumers/writers/api/logging.go @@ -37,7 +37,7 @@ func (lm *loggingMiddleware) ConsumeBlocking(ctx context.Context, msgs interface } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Blocking consumer failed to consume messages successfully", args...) + lm.logger.WarnContext(ctx, "Blocking consumer failed to consume messages successfully", args...) return } lm.logger.Info("Blocking consumer consumed messages successfully", args...) diff --git a/internal/groups/api/logging.go b/internal/groups/api/logging.go index 554fee4729..4698052f73 100644 --- a/internal/groups/api/logging.go +++ b/internal/groups/api/logging.go @@ -36,7 +36,7 @@ func (lm *loggingMiddleware) CreateGroup(ctx context.Context, token, kind string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Create group failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Create group failed to complete successfully", args...) return } lm.logger.Info("Create group completed successfully", args...) @@ -58,7 +58,7 @@ func (lm *loggingMiddleware) UpdateGroup(ctx context.Context, token string, grou } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update group failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update group failed to complete successfully", args...) return } lm.logger.Info("Update group completed successfully", args...) @@ -79,7 +79,7 @@ func (lm *loggingMiddleware) ViewGroup(ctx context.Context, token, id string) (g } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "View group failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "View group failed to complete successfully", args...) return } lm.logger.Info("View group completed successfully", args...) @@ -97,7 +97,7 @@ func (lm *loggingMiddleware) ViewGroupPerms(ctx context.Context, token, id strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "View group permissions failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "View group permissions failed to complete successfully", args...) return } lm.logger.Info("View group permissions completed successfully", args...) @@ -123,7 +123,7 @@ func (lm *loggingMiddleware) ListGroups(ctx context.Context, token, memberKind, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List groups failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List groups failed to complete successfully", args...) return } lm.logger.Info("List groups completed successfully", args...) @@ -144,7 +144,7 @@ func (lm *loggingMiddleware) EnableGroup(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Enable group failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Enable group failed to complete successfully", args...) return } lm.logger.Info("Enable group completed successfully", args...) @@ -165,7 +165,7 @@ func (lm *loggingMiddleware) DisableGroup(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Disable group failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Disable group failed to complete successfully", args...) return } lm.logger.Info("Disable group completed successfully", args...) @@ -185,7 +185,7 @@ func (lm *loggingMiddleware) ListMembers(ctx context.Context, token, groupID, pe } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List members failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List members failed to complete successfully", args...) return } lm.logger.Info("List members completed successfully", args...) @@ -204,7 +204,7 @@ func (lm *loggingMiddleware) Assign(ctx context.Context, token, groupID, relatio } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Assign member to group failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Assign member to group failed to complete successfully", args...) return } lm.logger.Info("Assign member to group completed successfully", args...) @@ -224,7 +224,7 @@ func (lm *loggingMiddleware) Unassign(ctx context.Context, token, groupID, relat } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Unassign member to group failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Unassign member to group failed to complete successfully", args...) return } lm.logger.Info("Unassign member to group completed successfully", args...) @@ -241,7 +241,7 @@ func (lm *loggingMiddleware) DeleteGroup(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Delete group failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Delete group failed to complete successfully", args...) return } lm.logger.Info("Delete group completed successfully", args...) diff --git a/invitations/middleware/logging.go b/invitations/middleware/logging.go index ace1540c91..3cd974db9b 100644 --- a/invitations/middleware/logging.go +++ b/invitations/middleware/logging.go @@ -31,7 +31,7 @@ func (lm *logging) SendInvitation(ctx context.Context, token string, invitation } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Send invitation failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Send invitation failed to complete successfully", args...) return } lm.logger.Info("Send invitation completed successfully", args...) @@ -48,7 +48,7 @@ func (lm *logging) ViewInvitation(ctx context.Context, token, userID, domainID s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "View invitation failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "View invitation failed to complete successfully", args...) return } lm.logger.Info("View invitation completed successfully", args...) @@ -68,7 +68,7 @@ func (lm *logging) ListInvitations(ctx context.Context, token string, page invit } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List invitations failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List invitations failed to complete successfully", args...) return } lm.logger.Info("List invitations completed successfully", args...) @@ -84,7 +84,7 @@ func (lm *logging) AcceptInvitation(ctx context.Context, token, domainID string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Accept invitation failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Accept invitation failed to complete successfully", args...) return } lm.logger.Info("Accept invitation completed successfully", args...) @@ -101,7 +101,7 @@ func (lm *logging) DeleteInvitation(ctx context.Context, token, userID, domainID } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Delete invitation failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Delete invitation failed to complete successfully", args...) return } lm.logger.Info("Delete invitation completed successfully", args...) diff --git a/lora/api/logging.go b/lora/api/logging.go index 93b68feb20..e9f8c0febf 100644 --- a/lora/api/logging.go +++ b/lora/api/logging.go @@ -37,7 +37,7 @@ func (lm loggingMiddleware) CreateThing(ctx context.Context, thingID, loraDevEUI } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Create thing route-map failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Create thing route-map failed to complete successfully", args...) return } lm.logger.Info("Create thing route-map completed successfully", args...) @@ -55,7 +55,7 @@ func (lm loggingMiddleware) UpdateThing(ctx context.Context, thingID, loraDevEUI } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update thing route-map failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update thing route-map failed to complete successfully", args...) return } lm.logger.Info("Update thing route-map completed successfully", args...) @@ -72,7 +72,7 @@ func (lm loggingMiddleware) RemoveThing(ctx context.Context, thingID string) (er } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Remove thing route-map failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Remove thing route-map failed to complete successfully", args...) return } lm.logger.Info("Remove thing route-map completed successfully", args...) @@ -90,7 +90,7 @@ func (lm loggingMiddleware) CreateChannel(ctx context.Context, chanID, loraApp s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Create channel route-map failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Create channel route-map failed to complete successfully", args...) return } lm.logger.Info("Create channel route-map completed successfully", args...) @@ -107,7 +107,7 @@ func (lm loggingMiddleware) UpdateChannel(ctx context.Context, chanID, loraApp s slog.String("lora_app", loraApp), } if err != nil { - lm.logger.ErrorContext(ctx, "Update channel route-map failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update channel route-map failed to complete successfully", args...) return } lm.logger.Info("Update channel route-map completed successfully", args...) @@ -123,7 +123,7 @@ func (lm loggingMiddleware) RemoveChannel(ctx context.Context, chanID string) (e slog.String("channel_id", chanID), } if err != nil { - lm.logger.ErrorContext(ctx, "Remove channel route-map failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Remove channel route-map failed to complete successfully", args...) return } lm.logger.Info("Remove channel route-map completed successfully", args...) @@ -141,7 +141,7 @@ func (lm loggingMiddleware) ConnectThing(ctx context.Context, chanID, thingID st } if err != nil { args := append(args, slog.String("error", err.Error())) - lm.logger.ErrorContext(ctx, "Connect thing to channel failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Connect thing to channel failed to complete successfully", args...) return } lm.logger.Info("Connect thing to channel completed successfully", args...) @@ -159,7 +159,7 @@ func (lm loggingMiddleware) DisconnectThing(ctx context.Context, chanID, thingID } if err != nil { args := append(args, slog.String("error", err.Error())) - lm.logger.ErrorContext(ctx, "Disconnect thing from channel failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Disconnect thing from channel failed to complete successfully", args...) return } lm.logger.Info("Disconnect thing from channel completed successfully", args...) @@ -179,7 +179,7 @@ func (lm loggingMiddleware) Publish(ctx context.Context, msg *lora.Message) (err } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Publish failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Publish failed to complete successfully", args...) return } lm.logger.Info("Publish completed successfully", args...) diff --git a/opcua/api/logging.go b/opcua/api/logging.go index 36b0a7f574..9a68bb1b75 100644 --- a/opcua/api/logging.go +++ b/opcua/api/logging.go @@ -37,7 +37,7 @@ func (lm loggingMiddleware) CreateThing(ctx context.Context, mgxThing, opcuaNode } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Create thing route-map failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Create thing route-map failed to complete successfully", args...) return } lm.logger.Info("Create thing route-map completed successfully", args...) @@ -55,7 +55,7 @@ func (lm loggingMiddleware) UpdateThing(ctx context.Context, mgxThing, opcuaNode } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update thing route-map failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update thing route-map failed to complete successfully", args...) return } lm.logger.Info("Update thing route-map completed successfully", args...) @@ -72,7 +72,7 @@ func (lm loggingMiddleware) RemoveThing(ctx context.Context, mgxThing string) (e } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Remove thing route-map failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Remove thing route-map failed to complete successfully", args...) return } lm.logger.Info("Remove thing route-map completed successfully", args...) @@ -90,7 +90,7 @@ func (lm loggingMiddleware) CreateChannel(ctx context.Context, mgxChan, opcuaSer } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Create channel route-map failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Create channel route-map failed to complete successfully", args...) return } lm.logger.Info("Create channel route-map completed successfully", args...) @@ -108,7 +108,7 @@ func (lm loggingMiddleware) UpdateChannel(ctx context.Context, mgxChanID, opcuaS } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update channel route-map failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update channel route-map failed to complete successfully", args...) return } lm.logger.Info("Update channel route-map completed successfully", args...) @@ -125,7 +125,7 @@ func (lm loggingMiddleware) RemoveChannel(ctx context.Context, mgxChanID string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Remove channel route-map failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Remove channel route-map failed to complete successfully", args...) return } lm.logger.Info("Remove channel route-map completed successfully", args...) @@ -143,7 +143,7 @@ func (lm loggingMiddleware) ConnectThing(ctx context.Context, mgxChanID string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Connect thing to channel failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Connect thing to channel failed to complete successfully", args...) return } lm.logger.Info("Connect thing to channel completed successfully", args...) @@ -161,7 +161,7 @@ func (lm loggingMiddleware) DisconnectThing(ctx context.Context, mgxChanID strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Disconnect thing from channel failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Disconnect thing from channel failed to complete successfully", args...) return } lm.logger.Info("Disconnect thing from channel completed successfully", args...) @@ -181,7 +181,7 @@ func (lm loggingMiddleware) Browse(ctx context.Context, serverURI, namespace, id } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Browse available nodes failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Browse available nodes failed to complete successfully", args...) return } lm.logger.Info("Browse available nodes completed successfully", args...) diff --git a/pkg/events/redis/subscriber.go b/pkg/events/redis/subscriber.go index 925589c77e..737d0aae4b 100644 --- a/pkg/events/redis/subscriber.go +++ b/pkg/events/redis/subscriber.go @@ -103,13 +103,13 @@ func (es *subEventStore) handle(ctx context.Context, stream string, msgs []redis } if err := h.Handle(ctx, event); err != nil { - es.logger.ErrorContext(ctx, fmt.Sprintf("failed to handle redis event: %s", err)) + es.logger.WarnContext(ctx, fmt.Sprintf("failed to handle redis event: %s", err)) return } if err := es.client.XAck(ctx, stream, group, msg.ID).Err(); err != nil { - es.logger.ErrorContext(ctx, fmt.Sprintf("failed to ack redis event: %s", err)) + es.logger.WarnContext(ctx, fmt.Sprintf("failed to ack redis event: %s", err)) return } diff --git a/things/api/logging.go b/things/api/logging.go index fcf05bef3d..4fc0bd4f6b 100644 --- a/things/api/logging.go +++ b/things/api/logging.go @@ -32,7 +32,7 @@ func (lm *loggingMiddleware) CreateThings(ctx context.Context, token string, cli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, fmt.Sprintf("Create %d things failed to complete successfully", len(clients)), args...) + lm.logger.WarnContext(ctx, fmt.Sprintf("Create %d things failed to complete successfully", len(clients)), args...) return } lm.logger.Info(fmt.Sprintf("Create %d things completed successfully", len(clients)), args...) @@ -51,7 +51,7 @@ func (lm *loggingMiddleware) ViewClient(ctx context.Context, token, id string) ( } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "View thing failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "View thing failed to complete successfully", args...) return } lm.logger.Info("View thing completed successfully", args...) @@ -67,7 +67,7 @@ func (lm *loggingMiddleware) ViewClientPerms(ctx context.Context, token, id stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "View thing permissions failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "View thing permissions failed to complete successfully", args...) return } lm.logger.Info("View thing permissions completed successfully", args...) @@ -88,7 +88,7 @@ func (lm *loggingMiddleware) ListClients(ctx context.Context, token, reqUserID s } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List things failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List things failed to complete successfully", args...) return } lm.logger.Info("List things completed successfully", args...) @@ -108,7 +108,7 @@ func (lm *loggingMiddleware) UpdateClient(ctx context.Context, token string, cli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update thing failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update thing failed to complete successfully", args...) return } lm.logger.Info("Update thing completed successfully", args...) @@ -128,7 +128,7 @@ func (lm *loggingMiddleware) UpdateClientTags(ctx context.Context, token string, } if err != nil { args := append(args, slog.String("error", err.Error())) - lm.logger.ErrorContext(ctx, "Update thing tags failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update thing tags failed to complete successfully", args...) return } lm.logger.Info("Update thing tags completed successfully", args...) @@ -147,7 +147,7 @@ func (lm *loggingMiddleware) UpdateClientSecret(ctx context.Context, token, oldS } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update thing secret failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update thing secret failed to complete successfully", args...) return } lm.logger.Info("Update thing secret completed successfully", args...) @@ -166,7 +166,7 @@ func (lm *loggingMiddleware) EnableClient(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Enable thing failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Enable thing failed to complete successfully", args...) return } lm.logger.Info("Enable thing completed successfully", args...) @@ -185,7 +185,7 @@ func (lm *loggingMiddleware) DisableClient(ctx context.Context, token, id string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Disable thing failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Disable thing failed to complete successfully", args...) return } lm.logger.Info("Disable thing completed successfully", args...) @@ -206,7 +206,7 @@ func (lm *loggingMiddleware) ListClientsByGroup(ctx context.Context, token, chan } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List things by group failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List things by group failed to complete successfully", args...) return } lm.logger.Info("List things by group completed successfully", args...) @@ -222,7 +222,7 @@ func (lm *loggingMiddleware) Identify(ctx context.Context, key string) (id strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Identify thing failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Identify thing failed to complete successfully", args...) return } lm.logger.Info("Identify thing completed successfully", args...) @@ -241,7 +241,7 @@ func (lm *loggingMiddleware) Authorize(ctx context.Context, req *magistrala.Auth } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Authorize failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Authorize failed to complete successfully", args...) return } lm.logger.Info("Authorize completed successfully", args...) @@ -259,7 +259,7 @@ func (lm *loggingMiddleware) Share(ctx context.Context, token, id, relation stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Share thing failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Share thing failed to complete successfully", args...) return } lm.logger.Info("Share thing completed successfully", args...) @@ -277,7 +277,7 @@ func (lm *loggingMiddleware) Unshare(ctx context.Context, token, id, relation st } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Unshare thing failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Unshare thing failed to complete successfully", args...) return } lm.logger.Info("Unshare thing completed successfully", args...) @@ -293,7 +293,7 @@ func (lm *loggingMiddleware) DeleteClient(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Delete thing failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Delete thing failed to complete successfully", args...) return } lm.logger.Info("Delete thing completed successfully", args...) diff --git a/twins/api/logging.go b/twins/api/logging.go index 1460e1af80..a124eebb42 100644 --- a/twins/api/logging.go +++ b/twins/api/logging.go @@ -38,7 +38,7 @@ func (lm *loggingMiddleware) AddTwin(ctx context.Context, token string, twin twi } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Add twin failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Add twin failed to complete successfully", args...) return } lm.logger.Info("Add twin completed successfully", args...) @@ -59,7 +59,7 @@ func (lm *loggingMiddleware) UpdateTwin(ctx context.Context, token string, twin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update twin failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update twin failed to complete successfully", args...) return } lm.logger.Info("Update twin completed successfully", args...) @@ -76,7 +76,7 @@ func (lm *loggingMiddleware) ViewTwin(ctx context.Context, token, twinID string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "View twin failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "View twin failed to complete successfully", args...) return } lm.logger.Info("View twin completed successfully", args...) @@ -98,7 +98,7 @@ func (lm *loggingMiddleware) ListTwins(ctx context.Context, token string, offset } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List twins failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List twins failed to complete successfully", args...) return } lm.logger.Info("List twins completed successfully", args...) @@ -119,7 +119,7 @@ func (lm *loggingMiddleware) SaveStates(ctx context.Context, msg *messaging.Mess } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Save states failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Save states failed to complete successfully", args...) return } lm.logger.Info("Save states completed successfully", args...) @@ -141,7 +141,7 @@ func (lm *loggingMiddleware) ListStates(ctx context.Context, token string, offse } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List states failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List states failed to complete successfully", args...) return } lm.logger.Info("List states completed successfully", args...) @@ -158,7 +158,7 @@ func (lm *loggingMiddleware) RemoveTwin(ctx context.Context, token, twinID strin } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Remove twin failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Remove twin failed to complete successfully", args...) return } lm.logger.Info("Remove twin completed successfully", args...) diff --git a/users/api/logging.go b/users/api/logging.go index f090b423d8..8c23818fb3 100644 --- a/users/api/logging.go +++ b/users/api/logging.go @@ -38,7 +38,7 @@ func (lm *loggingMiddleware) RegisterClient(ctx context.Context, token string, c } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Register user failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Register user failed to complete successfully", args...) return } lm.logger.Info("Register user completed successfully", args...) @@ -59,7 +59,7 @@ func (lm *loggingMiddleware) IssueToken(ctx context.Context, identity, secret, d } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Issue token failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Issue token failed to complete successfully", args...) return } lm.logger.Info("Issue token completed successfully", args...) @@ -80,7 +80,7 @@ func (lm *loggingMiddleware) RefreshToken(ctx context.Context, refreshToken, dom } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Refresh token failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Refresh token failed to complete successfully", args...) return } lm.logger.Info("Refresh token completed successfully", args...) @@ -101,7 +101,7 @@ func (lm *loggingMiddleware) ViewClient(ctx context.Context, token, id string) ( } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "View user failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "View user failed to complete successfully", args...) return } lm.logger.Info("View user completed successfully", args...) @@ -122,7 +122,7 @@ func (lm *loggingMiddleware) ViewProfile(ctx context.Context, token string) (c m } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "View profile failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "View profile failed to complete successfully", args...) return } lm.logger.Info("View profile completed successfully", args...) @@ -144,7 +144,7 @@ func (lm *loggingMiddleware) ListClients(ctx context.Context, token string, pm m } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List users failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List users failed to complete successfully", args...) return } lm.logger.Info("List users completed successfully", args...) @@ -166,7 +166,7 @@ func (lm *loggingMiddleware) UpdateClient(ctx context.Context, token string, cli } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update user failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update user failed to complete successfully", args...) return } lm.logger.Info("Update user completed successfully", args...) @@ -188,7 +188,7 @@ func (lm *loggingMiddleware) UpdateClientTags(ctx context.Context, token string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update user tags failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update user tags failed to complete successfully", args...) return } lm.logger.Info("Update user tags completed successfully", args...) @@ -209,7 +209,7 @@ func (lm *loggingMiddleware) UpdateClientIdentity(ctx context.Context, token, id } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update client identity failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update client identity failed to complete successfully", args...) return } lm.logger.Info("Update client identity completed successfully", args...) @@ -230,7 +230,7 @@ func (lm *loggingMiddleware) UpdateClientSecret(ctx context.Context, token, oldS } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update user secret failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update user secret failed to complete successfully", args...) return } lm.logger.Info("Update user secret completed successfully", args...) @@ -248,7 +248,7 @@ func (lm *loggingMiddleware) GenerateResetToken(ctx context.Context, email, host } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Generate reset token failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Generate reset token failed to complete successfully", args...) return } lm.logger.Info("Generate reset token completed successfully", args...) @@ -265,7 +265,7 @@ func (lm *loggingMiddleware) ResetSecret(ctx context.Context, token, secret stri } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Reset secret failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Reset secret failed to complete successfully", args...) return } lm.logger.Info("Reset secret completed successfully", args...) @@ -283,7 +283,7 @@ func (lm *loggingMiddleware) SendPasswordReset(ctx context.Context, host, email, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Send password reset failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Send password reset failed to complete successfully", args...) return } lm.logger.Info("Send password reset completed successfully", args...) @@ -305,7 +305,7 @@ func (lm *loggingMiddleware) UpdateClientRole(ctx context.Context, token string, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Update user role failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Update user role failed to complete successfully", args...) return } lm.logger.Info("Update user role completed successfully", args...) @@ -326,7 +326,7 @@ func (lm *loggingMiddleware) EnableClient(ctx context.Context, token, id string) } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Enable user failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Enable user failed to complete successfully", args...) return } lm.logger.Info("Enable user completed successfully", args...) @@ -347,7 +347,7 @@ func (lm *loggingMiddleware) DisableClient(ctx context.Context, token, id string } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Disable user failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Disable user failed to complete successfully", args...) return } lm.logger.Info("Disable user completed successfully", args...) @@ -373,7 +373,7 @@ func (lm *loggingMiddleware) ListMembers(ctx context.Context, token, objectKind, } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "List members failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "List members failed to complete successfully", args...) return } lm.logger.Info("List members completed successfully", args...) @@ -390,7 +390,7 @@ func (lm *loggingMiddleware) Identify(ctx context.Context, token string) (id str } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Identify user failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Identify user failed to complete successfully", args...) return } lm.logger.Info("Identify user completed successfully", args...) @@ -406,7 +406,7 @@ func (lm *loggingMiddleware) OAuthCallback(ctx context.Context, client mgclients } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "OAuth callback failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "OAuth callback failed to complete successfully", args...) return } lm.logger.Info("OAuth callback completed successfully", args...) diff --git a/ws/api/endpoints.go b/ws/api/endpoints.go index 7466b470be..984077f706 100644 --- a/ws/api/endpoints.go +++ b/ws/api/endpoints.go @@ -27,7 +27,7 @@ func handshake(ctx context.Context, svc ws.Service) http.HandlerFunc { } conn, err := upgrader.Upgrade(w, r, nil) if err != nil { - logger.ErrorContext(ctx, fmt.Sprintf("Failed to upgrade connection to websocket: %s", err.Error())) + logger.WarnContext(ctx, fmt.Sprintf("Failed to upgrade connection to websocket: %s", err.Error())) return } req.conn = conn @@ -62,7 +62,7 @@ func decodeRequest(r *http.Request) (connReq, error) { channelParts := channelPartRegExp.FindStringSubmatch(r.RequestURI) if len(channelParts) < 2 { - logger.ErrorContext(r.Context(), "Empty channel id or malformed url") + logger.WarnContext(r.Context(), "Empty channel id or malformed url") return connReq{}, errors.ErrMalformedEntity } diff --git a/ws/api/logging.go b/ws/api/logging.go index 61cc787de6..b9e4111b8a 100644 --- a/ws/api/logging.go +++ b/ws/api/logging.go @@ -36,7 +36,7 @@ func (lm *loggingMiddleware) Subscribe(ctx context.Context, thingKey, chanID, su } if err != nil { args = append(args, slog.Any("error", err)) - lm.logger.ErrorContext(ctx, "Subscibe failed to complete successfully", args...) + lm.logger.WarnContext(ctx, "Subscibe failed to complete successfully", args...) return } lm.logger.Info("Subscribe completed successfully", args...) From f1ef0400615adf1c13c843bd9bf3257339df605a Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Tue, 11 Jun 2024 22:06:04 +0300 Subject: [PATCH 14/20] Refactor: Pkg Error Package Signed-off-by: nyagamunene --- coap/api/transport.go | 4 ++-- pkg/errors/errors.go | 15 ++++++++------- pkg/errors/sdk_errors.go | 4 ++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/coap/api/transport.go b/coap/api/transport.go index acbe36c3c9..208308ad3e 100644 --- a/coap/api/transport.go +++ b/coap/api/transport.go @@ -98,7 +98,7 @@ func handler(w mux.ResponseWriter, m *mux.Message) { switch m.Code() { case codes.GET: resp.SetCode(codes.Content) - err = handleGet(m, w, msg, key) + err = handleGet(m.Context(), m, w, msg, key) case codes.POST: resp.SetCode(codes.Created) err = service.Publish(m.Context(), key, msg) @@ -122,7 +122,7 @@ func handler(w mux.ResponseWriter, m *mux.Message) { } } -func handleGet(m *mux.Message, w mux.ResponseWriter, msg *messaging.Message, key string) error { +func handleGet(ctx context.Context, m *mux.Message, w mux.ResponseWriter, msg *messaging.Message, key string) error { var obs uint32 obs, err := m.Options().Observe() if err != nil { diff --git a/pkg/errors/errors.go b/pkg/errors/errors.go index 6ca1637db4..7a079ba5f0 100644 --- a/pkg/errors/errors.go +++ b/pkg/errors/errors.go @@ -86,24 +86,24 @@ func Contains(e1, e2 error) bool { } // Wrap returns an Error that wrap err with wrapper. -func Wrap(wrapper, err error) error { +func Wrap(wrapper, err error) Error { if wrapper == nil || err == nil { - return wrapper + return wrapper.(Error) } if w, ok := wrapper.(Error); ok { return &customError{ msg: w.Msg(), - err: cast(err), + err: Cast(err), } } return &customError{ msg: wrapper.Error(), - err: cast(err), + err: Cast(err), } } // Unwrap returns the wrapper and the error by separating the Wrapper from the error. -func Unwrap(err error) (error, error) { +func Unwrap(err error) (Error, Error) { if ce, ok := err.(Error); ok { if ce.Err() == nil { return nil, New(ce.Msg()) @@ -111,10 +111,11 @@ func Unwrap(err error) (error, error) { return New(ce.Msg()), ce.Err() } - return nil, err + return nil, Cast(err) } -func cast(err error) Error { +// Cast returns an Error from an error. +func Cast(err error) Error { if err == nil { return nil } diff --git a/pkg/errors/sdk_errors.go b/pkg/errors/sdk_errors.go index 61535c9165..2550bdc9e5 100644 --- a/pkg/errors/sdk_errors.go +++ b/pkg/errors/sdk_errors.go @@ -56,7 +56,7 @@ func NewSDKError(err error) SDKError { statusCode: 0, customError: &customError{ msg: e.Msg(), - err: cast(e.Err()), + err: Cast(e.Err()), }, } } @@ -80,7 +80,7 @@ func NewSDKErrorWithStatus(err error, statusCode int) SDKError { statusCode: statusCode, customError: &customError{ msg: e.Msg(), - err: cast(e.Err()), + err: Cast(e.Err()), }, } } From 30d26948fb5942a9c54e910dd1b2125e77bee867 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Wed, 12 Jun 2024 13:03:53 +0300 Subject: [PATCH 15/20] Refactor: Users and things Signed-off-by: nyagamunene --- cmd/things/main.go | 6 +- cmd/users/main.go | 25 +-- pkg/clients/clients.go | 22 +-- pkg/clients/postgres/clients.go | 86 +++++----- pkg/clients/postgres/clients_test.go | 6 +- pkg/errors/types.go | 11 +- things/api/logging.go | 31 ++-- things/api/metrics.go | 31 ++-- things/cache/things.go | 6 +- things/events/streams.go | 63 ++++---- things/mocks/cache.go | 33 ++-- things/mocks/repository.go | 168 +++++++++++--------- things/mocks/service.go | 176 ++++++++++++--------- things/postgres/clients.go | 24 +-- things/service.go | 82 +++++----- things/things.go | 37 ++--- things/tracing/tracing.go | 31 ++-- users/api/logging.go | 39 ++--- users/api/metrics.go | 39 ++--- users/clients.go | 39 ++--- users/emailer.go | 4 +- users/emailer/emailer.go | 9 +- users/events/streams.go | 75 ++++----- users/hasher.go | 6 +- users/hasher/hasher.go | 4 +- users/mocks/emailer.go | 15 +- users/mocks/hasher.go | 27 ++-- users/mocks/repository.go | 156 +++++++++++-------- users/mocks/service.go | 224 ++++++++++++++++----------- users/postgres/clients.go | 57 +++---- users/service.go | 90 +++++------ users/tracing/tracing.go | 39 ++--- 32 files changed, 915 insertions(+), 746 deletions(-) diff --git a/cmd/things/main.go b/cmd/things/main.go index 1df5bc2b9f..e8d680896c 100644 --- a/cmd/things/main.go +++ b/cmd/things/main.go @@ -237,9 +237,9 @@ func newService(ctx context.Context, db *sqlx.DB, dbConfig pgclient.Config, auth return nil, nil, err } - gsvc, err = gevents.NewEventStoreMiddleware(ctx, gsvc, esURL, streamID) - if err != nil { - return nil, nil, err + gsvc, Err := gevents.NewEventStoreMiddleware(ctx, gsvc, esURL, streamID) + if Err != nil { + return nil, nil, Err } csvc = ctracing.New(csvc, tracer) diff --git a/cmd/users/main.go b/cmd/users/main.go index e7b7659f66..7755e01e7a 100644 --- a/cmd/users/main.go +++ b/cmd/users/main.go @@ -32,6 +32,7 @@ import ( mglog "github.com/absmach/magistrala/logger" "github.com/absmach/magistrala/pkg/auth" mgclients "github.com/absmach/magistrala/pkg/clients" + "github.com/absmach/magistrala/pkg/errors" svcerr "github.com/absmach/magistrala/pkg/errors/service" "github.com/absmach/magistrala/pkg/groups" "github.com/absmach/magistrala/pkg/oauth2" @@ -226,9 +227,9 @@ func newService(ctx context.Context, authClient magistrala.AuthServiceClient, db if err != nil { return nil, nil, err } - gsvc, err = gevents.NewEventStoreMiddleware(ctx, gsvc, c.ESURL, streamID) - if err != nil { - return nil, nil, err + gsvc, Err := gevents.NewEventStoreMiddleware(ctx, gsvc, c.ESURL, streamID) + if Err != nil { + return nil, nil, Err } csvc = ctracing.New(csvc, tracer) @@ -251,14 +252,14 @@ func newService(ctx context.Context, authClient magistrala.AuthServiceClient, db return csvc, gsvc, err } -func createAdmin(ctx context.Context, c config, crepo clientspg.Repository, hsr users.Hasher, svc users.Service) (string, error) { +func createAdmin(ctx context.Context, c config, crepo clientspg.Repository, hsr users.Hasher, svc users.Service) (string, errors.Error) { id, err := uuid.New().ID() if err != nil { - return "", err + return "", errors.Cast(err) } - hash, err := hsr.Hash(c.AdminPassword) - if err != nil { - return "", err + hash, Err := hsr.Hash(c.AdminPassword) + if Err != nil { + return "", Err } client := mgclients.Client{ @@ -282,11 +283,11 @@ func createAdmin(ctx context.Context, c config, crepo clientspg.Repository, hsr } // Create an admin - if _, err = crepo.Save(ctx, client); err != nil { - return "", err + if _, Err = crepo.Save(ctx, client); err != nil { + return "", Err } - if _, err = svc.IssueToken(ctx, c.AdminEmail, c.AdminPassword, ""); err != nil { - return "", err + if _, Err = svc.IssueToken(ctx, c.AdminEmail, c.AdminPassword, ""); err != nil { + return "", Err } return client.ID, nil } diff --git a/pkg/clients/clients.go b/pkg/clients/clients.go index 8d16fe9130..2f66e9bf23 100644 --- a/pkg/clients/clients.go +++ b/pkg/clients/clients.go @@ -70,37 +70,37 @@ type MembersPage struct { // Repository specifies an account persistence API. type Repository interface { // RetrieveByID retrieves client by its unique ID. - RetrieveByID(ctx context.Context, id string) (Client, error) + RetrieveByID(ctx context.Context, id string) (Client, errors.Error) // RetrieveByIdentity retrieves client by its unique credentials - RetrieveByIdentity(ctx context.Context, identity string) (Client, error) + RetrieveByIdentity(ctx context.Context, identity string) (Client, errors.Error) // RetrieveAll retrieves all clients. - RetrieveAll(ctx context.Context, pm Page) (ClientsPage, error) + RetrieveAll(ctx context.Context, pm Page) (ClientsPage, errors.Error) // RetrieveAllBasicInfo list all clients only with basic information. - RetrieveAllBasicInfo(ctx context.Context, pm Page) (ClientsPage, error) + RetrieveAllBasicInfo(ctx context.Context, pm Page) (ClientsPage, errors.Error) // RetrieveAllByIDs retrieves for given client IDs . - RetrieveAllByIDs(ctx context.Context, pm Page) (ClientsPage, error) + RetrieveAllByIDs(ctx context.Context, pm Page) (ClientsPage, errors.Error) // Update updates the client name and metadata. - Update(ctx context.Context, client Client) (Client, error) + Update(ctx context.Context, client Client) (Client, errors.Error) // UpdateTags updates the client tags. - UpdateTags(ctx context.Context, client Client) (Client, error) + UpdateTags(ctx context.Context, client Client) (Client, errors.Error) // UpdateIdentity updates identity for client with given id. - UpdateIdentity(ctx context.Context, client Client) (Client, error) + UpdateIdentity(ctx context.Context, client Client) (Client, errors.Error) // UpdateSecret updates secret for client with given identity. - UpdateSecret(ctx context.Context, client Client) (Client, error) + UpdateSecret(ctx context.Context, client Client) (Client, errors.Error) // UpdateRole updates role for client with given id. - UpdateRole(ctx context.Context, client Client) (Client, error) + UpdateRole(ctx context.Context, client Client) (Client, errors.Error) // ChangeStatus changes client status to enabled or disabled - ChangeStatus(ctx context.Context, client Client) (Client, error) + ChangeStatus(ctx context.Context, client Client) (Client, errors.Error) } // Validate returns an error if client representation is invalid. diff --git a/pkg/clients/postgres/clients.go b/pkg/clients/postgres/clients.go index 1ada83f485..971122e4b4 100644 --- a/pkg/clients/postgres/clients.go +++ b/pkg/clients/postgres/clients.go @@ -24,7 +24,7 @@ type Repository struct { DB postgres.Database } -func (repo *Repository) Update(ctx context.Context, client clients.Client) (clients.Client, error) { +func (repo *Repository) Update(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { var query []string var upq string if client.Name != "" { @@ -45,7 +45,7 @@ func (repo *Repository) Update(ctx context.Context, client clients.Client) (clie return repo.update(ctx, client, q) } -func (repo *Repository) UpdateTags(ctx context.Context, client clients.Client) (clients.Client, error) { +func (repo *Repository) UpdateTags(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { q := `UPDATE clients SET tags = :tags, updated_at = :updated_at, updated_by = :updated_by WHERE id = :id AND status = :status RETURNING id, name, tags, identity, metadata, COALESCE(domain_id, '') AS domain_id, status, created_at, updated_at, updated_by` @@ -53,7 +53,7 @@ func (repo *Repository) UpdateTags(ctx context.Context, client clients.Client) ( return repo.update(ctx, client, q) } -func (repo *Repository) UpdateIdentity(ctx context.Context, client clients.Client) (clients.Client, error) { +func (repo *Repository) UpdateIdentity(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { q := `UPDATE clients SET identity = :identity, updated_at = :updated_at, updated_by = :updated_by WHERE id = :id AND status = :status RETURNING id, name, tags, identity, metadata, COALESCE(domain_id, '') AS domain_id, status, created_at, updated_at, updated_by` @@ -61,7 +61,7 @@ func (repo *Repository) UpdateIdentity(ctx context.Context, client clients.Clien return repo.update(ctx, client, q) } -func (repo *Repository) UpdateSecret(ctx context.Context, client clients.Client) (clients.Client, error) { +func (repo *Repository) UpdateSecret(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { q := `UPDATE clients SET secret = :secret, updated_at = :updated_at, updated_by = :updated_by WHERE id = :id AND status = :status RETURNING id, name, tags, identity, metadata, COALESCE(domain_id, '') AS domain_id, status, created_at, updated_at, updated_by` @@ -69,15 +69,16 @@ func (repo *Repository) UpdateSecret(ctx context.Context, client clients.Client) return repo.update(ctx, client, q) } -func (repo *Repository) UpdateRole(ctx context.Context, client clients.Client) (clients.Client, error) { +func (repo *Repository) UpdateRole(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { q := `UPDATE clients SET role = :role, updated_at = :updated_at, updated_by = :updated_by WHERE id = :id AND status = :status RETURNING id, name, tags, identity, metadata, COALESCE(domain_id, '') AS domain_id, status, role, created_at, updated_at, updated_by` client.Status = clients.EnabledStatus - return repo.update(ctx, client, q) + cl, err := repo.update(ctx, client, q) + return cl, errors.Cast(err) } -func (repo *Repository) ChangeStatus(ctx context.Context, client clients.Client) (clients.Client, error) { +func (repo *Repository) ChangeStatus(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { q := `UPDATE clients SET status = :status, updated_at = :updated_at, updated_by = :updated_by WHERE id = :id RETURNING id, name, tags, identity, metadata, COALESCE(domain_id, '') AS domain_id, status, created_at, updated_at, updated_by` @@ -85,7 +86,7 @@ func (repo *Repository) ChangeStatus(ctx context.Context, client clients.Client) return repo.update(ctx, client, q) } -func (repo *Repository) RetrieveByID(ctx context.Context, id string) (clients.Client, error) { +func (repo *Repository) RetrieveByID(ctx context.Context, id string) (clients.Client, errors.Error) { q := `SELECT id, name, tags, COALESCE(domain_id, '') AS domain_id, identity, secret, metadata, created_at, updated_at, updated_by, status FROM clients WHERE id = :id` @@ -105,13 +106,14 @@ func (repo *Repository) RetrieveByID(ctx context.Context, id string) (clients.Cl return clients.Client{}, errors.Wrap(repoerr.ErrViewEntity, err) } - return ToClient(dbc) + cl, err := ToClient(dbc) + return cl, errors.Cast(err) } return clients.Client{}, repoerr.ErrNotFound } -func (repo *Repository) RetrieveByIdentity(ctx context.Context, identity string) (clients.Client, error) { +func (repo *Repository) RetrieveByIdentity(ctx context.Context, identity string) (clients.Client, errors.Error) { q := `SELECT id, name, tags, COALESCE(domain_id, '') AS domain_id, identity, secret, metadata, created_at, updated_at, updated_by, status FROM clients WHERE identity = :identity AND status = :status` @@ -122,7 +124,7 @@ func (repo *Repository) RetrieveByIdentity(ctx context.Context, identity string) row, err := repo.DB.NamedQueryContext(ctx, q, dbc) if err != nil { - return clients.Client{}, postgres.HandleError(repoerr.ErrViewEntity, err) + return clients.Client{}, errors.Cast(postgres.HandleError(repoerr.ErrViewEntity, err)) } defer row.Close() @@ -138,7 +140,7 @@ func (repo *Repository) RetrieveByIdentity(ctx context.Context, identity string) return clients.Client{}, repoerr.ErrNotFound } -func (repo *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clients.ClientsPage, error) { +func (repo *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clients.ClientsPage, errors.Error) { query, err := PageQuery(pm) if err != nil { return clients.ClientsPage{}, errors.Wrap(repoerr.ErrViewEntity, err) @@ -151,9 +153,9 @@ func (repo *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clien if err != nil { return clients.ClientsPage{}, errors.Wrap(repoerr.ErrFailedToRetrieveAllGroups, err) } - rows, err := repo.DB.NamedQueryContext(ctx, q, dbPage) - if err != nil { - return clients.ClientsPage{}, errors.Wrap(repoerr.ErrFailedToRetrieveAllGroups, err) + rows, Err := repo.DB.NamedQueryContext(ctx, q, dbPage) + if Err != nil { + return clients.ClientsPage{}, errors.Wrap(repoerr.ErrFailedToRetrieveAllGroups, Err) } defer rows.Close() @@ -173,9 +175,9 @@ func (repo *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clien } cq := fmt.Sprintf(`SELECT COUNT(*) FROM clients c %s;`, query) - total, err := postgres.Total(ctx, repo.DB, cq, dbPage) - if err != nil { - return clients.ClientsPage{}, errors.Wrap(repoerr.ErrViewEntity, err) + total, Err := postgres.Total(ctx, repo.DB, cq, dbPage) + if Err != nil { + return clients.ClientsPage{}, errors.Wrap(repoerr.ErrViewEntity, Err) } page := clients.ClientsPage{ @@ -190,7 +192,7 @@ func (repo *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clien return page, nil } -func (repo *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Page) (clients.ClientsPage, error) { +func (repo *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Page) (clients.ClientsPage, errors.Error) { sq, tq := constructSearchQuery(pm) q := fmt.Sprintf(`SELECT c.id, c.name, c.created_at, c.updated_at FROM clients c %s LIMIT :limit OFFSET :offset;`, sq) @@ -200,9 +202,9 @@ func (repo *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Pag return clients.ClientsPage{}, errors.Wrap(repoerr.ErrFailedToRetrieveAllGroups, err) } - rows, err := repo.DB.NamedQueryContext(ctx, q, dbPage) - if err != nil { - return clients.ClientsPage{}, errors.Wrap(repoerr.ErrFailedToRetrieveAllGroups, err) + rows, Err := repo.DB.NamedQueryContext(ctx, q, dbPage) + if Err != nil { + return clients.ClientsPage{}, errors.Wrap(repoerr.ErrFailedToRetrieveAllGroups, Err) } defer rows.Close() @@ -222,9 +224,9 @@ func (repo *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Pag } cq := fmt.Sprintf(`SELECT COUNT(*) FROM clients c %s;`, tq) - total, err := postgres.Total(ctx, repo.DB, cq, dbPage) - if err != nil { - return clients.ClientsPage{}, errors.Wrap(repoerr.ErrViewEntity, err) + total, Err := postgres.Total(ctx, repo.DB, cq, dbPage) + if Err != nil { + return clients.ClientsPage{}, errors.Wrap(repoerr.ErrViewEntity, Err) } page := clients.ClientsPage{ @@ -239,7 +241,7 @@ func (repo *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Pag return page, nil } -func (repo *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) (clients.ClientsPage, error) { +func (repo *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) (clients.ClientsPage, errors.Error) { if (len(pm.IDs) == 0) && (pm.Domain == "") { return clients.ClientsPage{ Page: clients.Page{Total: pm.Total, Offset: pm.Offset, Limit: pm.Limit}, @@ -257,9 +259,9 @@ func (repo *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) ( if err != nil { return clients.ClientsPage{}, errors.Wrap(repoerr.ErrFailedToRetrieveAllGroups, err) } - rows, err := repo.DB.NamedQueryContext(ctx, q, dbPage) - if err != nil { - return clients.ClientsPage{}, errors.Wrap(repoerr.ErrFailedToRetrieveAllGroups, err) + rows, Err := repo.DB.NamedQueryContext(ctx, q, dbPage) + if Err != nil { + return clients.ClientsPage{}, errors.Wrap(repoerr.ErrFailedToRetrieveAllGroups, Err) } defer rows.Close() @@ -279,9 +281,9 @@ func (repo *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) ( } cq := fmt.Sprintf(`SELECT COUNT(*) FROM clients c %s;`, query) - total, err := postgres.Total(ctx, repo.DB, cq, dbPage) - if err != nil { - return clients.ClientsPage{}, errors.Wrap(repoerr.ErrViewEntity, err) + total, Err := postgres.Total(ctx, repo.DB, cq, dbPage) + if Err != nil { + return clients.ClientsPage{}, errors.Wrap(repoerr.ErrViewEntity, Err) } page := clients.ClientsPage{ @@ -296,15 +298,15 @@ func (repo *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) ( return page, nil } -func (repo *Repository) update(ctx context.Context, client clients.Client, query string) (clients.Client, error) { +func (repo *Repository) update(ctx context.Context, client clients.Client, query string) (clients.Client, errors.Error) { dbc, err := ToDBClient(client) if err != nil { return clients.Client{}, errors.Wrap(repoerr.ErrUpdateEntity, err) } - row, err := repo.DB.NamedQueryContext(ctx, query, dbc) - if err != nil { - return clients.Client{}, postgres.HandleError(repoerr.ErrUpdateEntity, err) + row, Err := repo.DB.NamedQueryContext(ctx, query, dbc) + if Err != nil { + return clients.Client{}, errors.Cast(postgres.HandleError(repoerr.ErrUpdateEntity, Err)) } defer row.Close() @@ -336,7 +338,7 @@ type DBClient struct { Role *clients.Role `db:"role,omitempty"` } -func ToDBClient(c clients.Client) (DBClient, error) { +func ToDBClient(c clients.Client) (DBClient, errors.Error) { data := []byte("{}") if len(c.Metadata) > 0 { b, err := json.Marshal(c.Metadata) @@ -346,8 +348,8 @@ func ToDBClient(c clients.Client) (DBClient, error) { data = b } var tags pgtype.TextArray - if err := tags.Set(c.Tags); err != nil { - return DBClient{}, err + if Err := tags.Set(c.Tags); Err != nil { + return DBClient{}, errors.Cast(Err) } var updatedBy *string if c.UpdatedBy != "" { @@ -374,7 +376,7 @@ func ToDBClient(c clients.Client) (DBClient, error) { }, nil } -func ToClient(c DBClient) (clients.Client, error) { +func ToClient(c DBClient) (clients.Client, errors.Error) { var metadata clients.Metadata if c.Metadata != nil { if err := json.Unmarshal([]byte(c.Metadata), &metadata); err != nil { @@ -415,7 +417,7 @@ func ToClient(c DBClient) (clients.Client, error) { return cli, nil } -func ToDBClientsPage(pm clients.Page) (dbClientsPage, error) { +func ToDBClientsPage(pm clients.Page) (dbClientsPage, errors.Error) { _, data, err := postgres.CreateMetadataQuery("", pm.Metadata) if err != nil { return dbClientsPage{}, errors.Wrap(repoerr.ErrViewEntity, err) @@ -448,7 +450,7 @@ type dbClientsPage struct { Role clients.Role `db:"role"` } -func PageQuery(pm clients.Page) (string, error) { +func PageQuery(pm clients.Page) (string, errors.Error) { mq, _, err := postgres.CreateMetadataQuery("", pm.Metadata) if err != nil { return "", errors.Wrap(errors.ErrMalformedEntity, err) diff --git a/pkg/clients/postgres/clients_test.go b/pkg/clients/postgres/clients_test.go index aeb855b001..a47587ee82 100644 --- a/pkg/clients/postgres/clients_test.go +++ b/pkg/clients/postgres/clients_test.go @@ -1848,9 +1848,9 @@ func save(ctx context.Context, repo *postgres.Repository, c mgclients.Client) (m return mgclients.Client{}, errors.Wrap(repoerr.ErrCreateEntity, err) } - row, err := repo.DB.NamedQueryContext(ctx, q, dbc) - if err != nil { - return mgclients.Client{}, ipostgres.HandleError(repoerr.ErrCreateEntity, err) + row, Err := repo.DB.NamedQueryContext(ctx, q, dbc) + if Err != nil { + return mgclients.Client{}, ipostgres.HandleError(repoerr.ErrCreateEntity, Err) } defer row.Close() diff --git a/pkg/errors/types.go b/pkg/errors/types.go index c84456e48b..2d047d3972 100644 --- a/pkg/errors/types.go +++ b/pkg/errors/types.go @@ -3,24 +3,23 @@ package errors -import "errors" var ( // ErrMalformedEntity indicates a malformed entity specification. ErrMalformedEntity = New("malformed entity specification") // ErrUnsupportedContentType indicates invalid content type. - ErrUnsupportedContentType = errors.New("invalid content type") + ErrUnsupportedContentType = New("invalid content type") // ErrUnidentified indicates unidentified error. - ErrUnidentified = errors.New("unidentified error") + ErrUnidentified = New("unidentified error") // ErrEmptyPath indicates empty file path. - ErrEmptyPath = errors.New("empty file path") + ErrEmptyPath = New("empty file path") // ErrStatusAlreadyAssigned indicated that the client or group has already been assigned the status. - ErrStatusAlreadyAssigned = errors.New("status already assigned") + ErrStatusAlreadyAssigned = New("status already assigned") // ErrRollbackTx indicates failed to rollback transaction. - ErrRollbackTx = errors.New("failed to rollback transaction") + ErrRollbackTx = New("failed to rollback transaction") ) diff --git a/things/api/logging.go b/things/api/logging.go index 4fc0bd4f6b..af28403f72 100644 --- a/things/api/logging.go +++ b/things/api/logging.go @@ -11,6 +11,7 @@ import ( "github.com/absmach/magistrala" mgclients "github.com/absmach/magistrala/pkg/clients" + "github.com/absmach/magistrala/pkg/errors" "github.com/absmach/magistrala/things" ) @@ -25,7 +26,7 @@ func LoggingMiddleware(svc things.Service, logger *slog.Logger) things.Service { return &loggingMiddleware{logger, svc} } -func (lm *loggingMiddleware) CreateThings(ctx context.Context, token string, clients ...mgclients.Client) (cs []mgclients.Client, err error) { +func (lm *loggingMiddleware) CreateThings(ctx context.Context, token string, clients ...mgclients.Client) (cs []mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -40,7 +41,7 @@ func (lm *loggingMiddleware) CreateThings(ctx context.Context, token string, cli return lm.svc.CreateThings(ctx, token, clients...) } -func (lm *loggingMiddleware) ViewClient(ctx context.Context, token, id string) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) ViewClient(ctx context.Context, token, id string) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -59,7 +60,7 @@ func (lm *loggingMiddleware) ViewClient(ctx context.Context, token, id string) ( return lm.svc.ViewClient(ctx, token, id) } -func (lm *loggingMiddleware) ViewClientPerms(ctx context.Context, token, id string) (p []string, err error) { +func (lm *loggingMiddleware) ViewClientPerms(ctx context.Context, token, id string) (p []string, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -75,7 +76,7 @@ func (lm *loggingMiddleware) ViewClientPerms(ctx context.Context, token, id stri return lm.svc.ViewClientPerms(ctx, token, id) } -func (lm *loggingMiddleware) ListClients(ctx context.Context, token, reqUserID string, pm mgclients.Page) (cp mgclients.ClientsPage, err error) { +func (lm *loggingMiddleware) ListClients(ctx context.Context, token, reqUserID string, pm mgclients.Page) (cp mgclients.ClientsPage, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -96,7 +97,7 @@ func (lm *loggingMiddleware) ListClients(ctx context.Context, token, reqUserID s return lm.svc.ListClients(ctx, token, reqUserID, pm) } -func (lm *loggingMiddleware) UpdateClient(ctx context.Context, token string, client mgclients.Client) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) UpdateClient(ctx context.Context, token string, client mgclients.Client) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -116,7 +117,7 @@ func (lm *loggingMiddleware) UpdateClient(ctx context.Context, token string, cli return lm.svc.UpdateClient(ctx, token, client) } -func (lm *loggingMiddleware) UpdateClientTags(ctx context.Context, token string, client mgclients.Client) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) UpdateClientTags(ctx context.Context, token string, client mgclients.Client) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -136,7 +137,7 @@ func (lm *loggingMiddleware) UpdateClientTags(ctx context.Context, token string, return lm.svc.UpdateClientTags(ctx, token, client) } -func (lm *loggingMiddleware) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -155,7 +156,7 @@ func (lm *loggingMiddleware) UpdateClientSecret(ctx context.Context, token, oldS return lm.svc.UpdateClientSecret(ctx, token, oldSecret, newSecret) } -func (lm *loggingMiddleware) EnableClient(ctx context.Context, token, id string) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) EnableClient(ctx context.Context, token, id string) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -174,7 +175,7 @@ func (lm *loggingMiddleware) EnableClient(ctx context.Context, token, id string) return lm.svc.EnableClient(ctx, token, id) } -func (lm *loggingMiddleware) DisableClient(ctx context.Context, token, id string) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) DisableClient(ctx context.Context, token, id string) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -193,7 +194,7 @@ func (lm *loggingMiddleware) DisableClient(ctx context.Context, token, id string return lm.svc.DisableClient(ctx, token, id) } -func (lm *loggingMiddleware) ListClientsByGroup(ctx context.Context, token, channelID string, cp mgclients.Page) (mp mgclients.MembersPage, err error) { +func (lm *loggingMiddleware) ListClientsByGroup(ctx context.Context, token, channelID string, cp mgclients.Page) (mp mgclients.MembersPage, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -214,7 +215,7 @@ func (lm *loggingMiddleware) ListClientsByGroup(ctx context.Context, token, chan return lm.svc.ListClientsByGroup(ctx, token, channelID, cp) } -func (lm *loggingMiddleware) Identify(ctx context.Context, key string) (id string, err error) { +func (lm *loggingMiddleware) Identify(ctx context.Context, key string) (id string, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -230,7 +231,7 @@ func (lm *loggingMiddleware) Identify(ctx context.Context, key string) (id strin return lm.svc.Identify(ctx, key) } -func (lm *loggingMiddleware) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (id string, err error) { +func (lm *loggingMiddleware) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (id string, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -249,7 +250,7 @@ func (lm *loggingMiddleware) Authorize(ctx context.Context, req *magistrala.Auth return lm.svc.Authorize(ctx, req) } -func (lm *loggingMiddleware) Share(ctx context.Context, token, id, relation string, userids ...string) (err error) { +func (lm *loggingMiddleware) Share(ctx context.Context, token, id, relation string, userids ...string) (err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -267,7 +268,7 @@ func (lm *loggingMiddleware) Share(ctx context.Context, token, id, relation stri return lm.svc.Share(ctx, token, id, relation, userids...) } -func (lm *loggingMiddleware) Unshare(ctx context.Context, token, id, relation string, userids ...string) (err error) { +func (lm *loggingMiddleware) Unshare(ctx context.Context, token, id, relation string, userids ...string) (err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -285,7 +286,7 @@ func (lm *loggingMiddleware) Unshare(ctx context.Context, token, id, relation st return lm.svc.Unshare(ctx, token, id, relation, userids...) } -func (lm *loggingMiddleware) DeleteClient(ctx context.Context, token, id string) (err error) { +func (lm *loggingMiddleware) DeleteClient(ctx context.Context, token, id string) (err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), diff --git a/things/api/metrics.go b/things/api/metrics.go index 24976d39a8..cabacfeb2c 100644 --- a/things/api/metrics.go +++ b/things/api/metrics.go @@ -9,6 +9,7 @@ import ( "github.com/absmach/magistrala" mgclients "github.com/absmach/magistrala/pkg/clients" + "github.com/absmach/magistrala/pkg/errors" "github.com/absmach/magistrala/things" "github.com/go-kit/kit/metrics" ) @@ -30,7 +31,7 @@ func MetricsMiddleware(svc things.Service, counter metrics.Counter, latency metr } } -func (ms *metricsMiddleware) CreateThings(ctx context.Context, token string, clients ...mgclients.Client) ([]mgclients.Client, error) { +func (ms *metricsMiddleware) CreateThings(ctx context.Context, token string, clients ...mgclients.Client) ([]mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "register_things").Add(1) ms.latency.With("method", "register_things").Observe(time.Since(begin).Seconds()) @@ -38,7 +39,7 @@ func (ms *metricsMiddleware) CreateThings(ctx context.Context, token string, cli return ms.svc.CreateThings(ctx, token, clients...) } -func (ms *metricsMiddleware) ViewClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (ms *metricsMiddleware) ViewClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "view_thing").Add(1) ms.latency.With("method", "view_thing").Observe(time.Since(begin).Seconds()) @@ -46,7 +47,7 @@ func (ms *metricsMiddleware) ViewClient(ctx context.Context, token, id string) ( return ms.svc.ViewClient(ctx, token, id) } -func (ms *metricsMiddleware) ViewClientPerms(ctx context.Context, token, id string) ([]string, error) { +func (ms *metricsMiddleware) ViewClientPerms(ctx context.Context, token, id string) ([]string, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "view_thing_permissions").Add(1) ms.latency.With("method", "view_thing_permissions").Observe(time.Since(begin).Seconds()) @@ -54,7 +55,7 @@ func (ms *metricsMiddleware) ViewClientPerms(ctx context.Context, token, id stri return ms.svc.ViewClientPerms(ctx, token, id) } -func (ms *metricsMiddleware) ListClients(ctx context.Context, token, reqUserID string, pm mgclients.Page) (mgclients.ClientsPage, error) { +func (ms *metricsMiddleware) ListClients(ctx context.Context, token, reqUserID string, pm mgclients.Page) (mgclients.ClientsPage, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "list_things").Add(1) ms.latency.With("method", "list_things").Observe(time.Since(begin).Seconds()) @@ -62,7 +63,7 @@ func (ms *metricsMiddleware) ListClients(ctx context.Context, token, reqUserID s return ms.svc.ListClients(ctx, token, reqUserID, pm) } -func (ms *metricsMiddleware) UpdateClient(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, error) { +func (ms *metricsMiddleware) UpdateClient(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "update_thing_name_and_metadata").Add(1) ms.latency.With("method", "update_thing_name_and_metadata").Observe(time.Since(begin).Seconds()) @@ -70,7 +71,7 @@ func (ms *metricsMiddleware) UpdateClient(ctx context.Context, token string, cli return ms.svc.UpdateClient(ctx, token, client) } -func (ms *metricsMiddleware) UpdateClientTags(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, error) { +func (ms *metricsMiddleware) UpdateClientTags(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "update_thing_tags").Add(1) ms.latency.With("method", "update_thing_tags").Observe(time.Since(begin).Seconds()) @@ -78,7 +79,7 @@ func (ms *metricsMiddleware) UpdateClientTags(ctx context.Context, token string, return ms.svc.UpdateClientTags(ctx, token, client) } -func (ms *metricsMiddleware) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (mgclients.Client, error) { +func (ms *metricsMiddleware) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "update_thing_secret").Add(1) ms.latency.With("method", "update_thing_secret").Observe(time.Since(begin).Seconds()) @@ -86,7 +87,7 @@ func (ms *metricsMiddleware) UpdateClientSecret(ctx context.Context, token, oldS return ms.svc.UpdateClientSecret(ctx, token, oldSecret, newSecret) } -func (ms *metricsMiddleware) EnableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (ms *metricsMiddleware) EnableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "enable_thing").Add(1) ms.latency.With("method", "enable_thing").Observe(time.Since(begin).Seconds()) @@ -94,7 +95,7 @@ func (ms *metricsMiddleware) EnableClient(ctx context.Context, token, id string) return ms.svc.EnableClient(ctx, token, id) } -func (ms *metricsMiddleware) DisableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (ms *metricsMiddleware) DisableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "disable_thing").Add(1) ms.latency.With("method", "disable_thing").Observe(time.Since(begin).Seconds()) @@ -102,7 +103,7 @@ func (ms *metricsMiddleware) DisableClient(ctx context.Context, token, id string return ms.svc.DisableClient(ctx, token, id) } -func (ms *metricsMiddleware) ListClientsByGroup(ctx context.Context, token, groupID string, pm mgclients.Page) (mp mgclients.MembersPage, err error) { +func (ms *metricsMiddleware) ListClientsByGroup(ctx context.Context, token, groupID string, pm mgclients.Page) (mp mgclients.MembersPage, err errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "list_things_by_channel").Add(1) ms.latency.With("method", "list_things_by_channel").Observe(time.Since(begin).Seconds()) @@ -110,7 +111,7 @@ func (ms *metricsMiddleware) ListClientsByGroup(ctx context.Context, token, grou return ms.svc.ListClientsByGroup(ctx, token, groupID, pm) } -func (ms *metricsMiddleware) Identify(ctx context.Context, key string) (string, error) { +func (ms *metricsMiddleware) Identify(ctx context.Context, key string) (string, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "identify_thing").Add(1) ms.latency.With("method", "identify_thing").Observe(time.Since(begin).Seconds()) @@ -118,7 +119,7 @@ func (ms *metricsMiddleware) Identify(ctx context.Context, key string) (string, return ms.svc.Identify(ctx, key) } -func (ms *metricsMiddleware) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (id string, err error) { +func (ms *metricsMiddleware) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (id string, err errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "authorize").Add(1) ms.latency.With("method", "authorize").Observe(time.Since(begin).Seconds()) @@ -126,7 +127,7 @@ func (ms *metricsMiddleware) Authorize(ctx context.Context, req *magistrala.Auth return ms.svc.Authorize(ctx, req) } -func (ms *metricsMiddleware) Share(ctx context.Context, token, id, relation string, userids ...string) error { +func (ms *metricsMiddleware) Share(ctx context.Context, token, id, relation string, userids ...string) errors.Error { defer func(begin time.Time) { ms.counter.With("method", "share").Add(1) ms.latency.With("method", "share").Observe(time.Since(begin).Seconds()) @@ -134,7 +135,7 @@ func (ms *metricsMiddleware) Share(ctx context.Context, token, id, relation stri return ms.svc.Share(ctx, token, id, relation, userids...) } -func (ms *metricsMiddleware) Unshare(ctx context.Context, token, id, relation string, userids ...string) error { +func (ms *metricsMiddleware) Unshare(ctx context.Context, token, id, relation string, userids ...string) errors.Error { defer func(begin time.Time) { ms.counter.With("method", "unshare").Add(1) ms.latency.With("method", "unshare").Observe(time.Since(begin).Seconds()) @@ -142,7 +143,7 @@ func (ms *metricsMiddleware) Unshare(ctx context.Context, token, id, relation st return ms.svc.Unshare(ctx, token, id, relation, userids...) } -func (ms *metricsMiddleware) DeleteClient(ctx context.Context, token, id string) error { +func (ms *metricsMiddleware) DeleteClient(ctx context.Context, token, id string) errors.Error { defer func(begin time.Time) { ms.counter.With("method", "delete_client").Add(1) ms.latency.With("method", "delete_client").Observe(time.Since(begin).Seconds()) diff --git a/things/cache/things.go b/things/cache/things.go index 9c2619ce48..ff28eea5f7 100644 --- a/things/cache/things.go +++ b/things/cache/things.go @@ -34,7 +34,7 @@ func NewCache(client *redis.Client, duration time.Duration) things.Cache { } } -func (tc *thingCache) Save(ctx context.Context, thingKey, thingID string) error { +func (tc *thingCache) Save(ctx context.Context, thingKey, thingID string) errors.Error { if thingKey == "" || thingID == "" { return errors.Wrap(repoerr.ErrCreateEntity, errors.New("thing key or thing id is empty")) } @@ -51,7 +51,7 @@ func (tc *thingCache) Save(ctx context.Context, thingKey, thingID string) error return nil } -func (tc *thingCache) ID(ctx context.Context, thingKey string) (string, error) { +func (tc *thingCache) ID(ctx context.Context, thingKey string) (string, errors.Error) { if thingKey == "" { return "", repoerr.ErrNotFound } @@ -65,7 +65,7 @@ func (tc *thingCache) ID(ctx context.Context, thingKey string) (string, error) { return thingID, nil } -func (tc *thingCache) Remove(ctx context.Context, thingID string) error { +func (tc *thingCache) Remove(ctx context.Context, thingID string) errors.Error { tid := fmt.Sprintf("%s:%s", idPrefix, thingID) key, err := tc.client.Get(ctx, tid).Result() // Redis returns Nil Reply when key does not exist. diff --git a/things/events/streams.go b/things/events/streams.go index ca6a392fb2..b47226410e 100644 --- a/things/events/streams.go +++ b/things/events/streams.go @@ -8,6 +8,7 @@ import ( "github.com/absmach/magistrala" mgclients "github.com/absmach/magistrala/pkg/clients" + "github.com/absmach/magistrala/pkg/errors" "github.com/absmach/magistrala/pkg/events" "github.com/absmach/magistrala/pkg/events/store" "github.com/absmach/magistrala/things" @@ -24,10 +25,10 @@ type eventStore struct { // NewEventStoreMiddleware returns wrapper around things service that sends // events to event store. -func NewEventStoreMiddleware(ctx context.Context, svc things.Service, url string) (things.Service, error) { +func NewEventStoreMiddleware(ctx context.Context, svc things.Service, url string) (things.Service, errors.Error) { publisher, err := store.NewPublisher(ctx, url, streamID) if err != nil { - return nil, err + return nil, errors.Cast(err) } return &eventStore{ @@ -36,7 +37,7 @@ func NewEventStoreMiddleware(ctx context.Context, svc things.Service, url string }, nil } -func (es *eventStore) CreateThings(ctx context.Context, token string, thing ...mgclients.Client) ([]mgclients.Client, error) { +func (es *eventStore) CreateThings(ctx context.Context, token string, thing ...mgclients.Client) ([]mgclients.Client, errors.Error) { sths, err := es.svc.CreateThings(ctx, token, thing...) if err != nil { return sths, err @@ -47,14 +48,14 @@ func (es *eventStore) CreateThings(ctx context.Context, token string, thing ...m th, } if err := es.Publish(ctx, event); err != nil { - return sths, err + return sths, errors.Cast(err) } } return sths, nil } -func (es *eventStore) UpdateClient(ctx context.Context, token string, thing mgclients.Client) (mgclients.Client, error) { +func (es *eventStore) UpdateClient(ctx context.Context, token string, thing mgclients.Client) (mgclients.Client, errors.Error) { cli, err := es.svc.UpdateClient(ctx, token, thing) if err != nil { return cli, err @@ -63,7 +64,7 @@ func (es *eventStore) UpdateClient(ctx context.Context, token string, thing mgcl return es.update(ctx, "", cli) } -func (es *eventStore) UpdateClientTags(ctx context.Context, token string, thing mgclients.Client) (mgclients.Client, error) { +func (es *eventStore) UpdateClientTags(ctx context.Context, token string, thing mgclients.Client) (mgclients.Client, errors.Error) { cli, err := es.svc.UpdateClientTags(ctx, token, thing) if err != nil { return cli, err @@ -72,7 +73,7 @@ func (es *eventStore) UpdateClientTags(ctx context.Context, token string, thing return es.update(ctx, "tags", cli) } -func (es *eventStore) UpdateClientSecret(ctx context.Context, token, id, key string) (mgclients.Client, error) { +func (es *eventStore) UpdateClientSecret(ctx context.Context, token, id, key string) (mgclients.Client, errors.Error) { cli, err := es.svc.UpdateClientSecret(ctx, token, id, key) if err != nil { return cli, err @@ -81,19 +82,19 @@ func (es *eventStore) UpdateClientSecret(ctx context.Context, token, id, key str return es.update(ctx, "secret", cli) } -func (es *eventStore) update(ctx context.Context, operation string, thing mgclients.Client) (mgclients.Client, error) { +func (es *eventStore) update(ctx context.Context, operation string, thing mgclients.Client) (mgclients.Client, errors.Error) { event := updateClientEvent{ thing, operation, } if err := es.Publish(ctx, event); err != nil { - return thing, err + return thing, errors.Cast(err) } return thing, nil } -func (es *eventStore) ViewClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (es *eventStore) ViewClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { cli, err := es.svc.ViewClient(ctx, token, id) if err != nil { return cli, err @@ -103,13 +104,13 @@ func (es *eventStore) ViewClient(ctx context.Context, token, id string) (mgclien cli, } if err := es.Publish(ctx, event); err != nil { - return cli, err + return cli, errors.Cast(err) } return cli, nil } -func (es *eventStore) ViewClientPerms(ctx context.Context, token, id string) ([]string, error) { +func (es *eventStore) ViewClientPerms(ctx context.Context, token, id string) ([]string, errors.Error) { permissions, err := es.svc.ViewClientPerms(ctx, token, id) if err != nil { return permissions, err @@ -119,13 +120,13 @@ func (es *eventStore) ViewClientPerms(ctx context.Context, token, id string) ([] permissions, } if err := es.Publish(ctx, event); err != nil { - return permissions, err + return permissions, errors.Cast(err) } return permissions, nil } -func (es *eventStore) ListClients(ctx context.Context, token, reqUserID string, pm mgclients.Page) (mgclients.ClientsPage, error) { +func (es *eventStore) ListClients(ctx context.Context, token, reqUserID string, pm mgclients.Page) (mgclients.ClientsPage, errors.Error) { cp, err := es.svc.ListClients(ctx, token, reqUserID, pm) if err != nil { return cp, err @@ -135,13 +136,13 @@ func (es *eventStore) ListClients(ctx context.Context, token, reqUserID string, pm, } if err := es.Publish(ctx, event); err != nil { - return cp, err + return cp, errors.Cast(err) } return cp, nil } -func (es *eventStore) ListClientsByGroup(ctx context.Context, token, chID string, pm mgclients.Page) (mgclients.MembersPage, error) { +func (es *eventStore) ListClientsByGroup(ctx context.Context, token, chID string, pm mgclients.Page) (mgclients.MembersPage, errors.Error) { mp, err := es.svc.ListClientsByGroup(ctx, token, chID, pm) if err != nil { return mp, err @@ -150,13 +151,13 @@ func (es *eventStore) ListClientsByGroup(ctx context.Context, token, chID string pm, chID, } if err := es.Publish(ctx, event); err != nil { - return mp, err + return mp, errors.Cast(err) } return mp, nil } -func (es *eventStore) EnableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (es *eventStore) EnableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { cli, err := es.svc.EnableClient(ctx, token, id) if err != nil { return cli, err @@ -165,7 +166,7 @@ func (es *eventStore) EnableClient(ctx context.Context, token, id string) (mgcli return es.changeStatus(ctx, cli) } -func (es *eventStore) DisableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (es *eventStore) DisableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { cli, err := es.svc.DisableClient(ctx, token, id) if err != nil { return cli, err @@ -174,7 +175,7 @@ func (es *eventStore) DisableClient(ctx context.Context, token, id string) (mgcl return es.changeStatus(ctx, cli) } -func (es *eventStore) changeStatus(ctx context.Context, cli mgclients.Client) (mgclients.Client, error) { +func (es *eventStore) changeStatus(ctx context.Context, cli mgclients.Client) (mgclients.Client, errors.Error) { event := changeStatusClientEvent{ id: cli.ID, updatedAt: cli.UpdatedAt, @@ -182,13 +183,13 @@ func (es *eventStore) changeStatus(ctx context.Context, cli mgclients.Client) (m status: cli.Status.String(), } if err := es.Publish(ctx, event); err != nil { - return cli, err + return cli, errors.Cast(err) } return cli, nil } -func (es *eventStore) Identify(ctx context.Context, key string) (string, error) { +func (es *eventStore) Identify(ctx context.Context, key string) (string, errors.Error) { thingID, err := es.svc.Identify(ctx, key) if err != nil { return thingID, err @@ -198,12 +199,12 @@ func (es *eventStore) Identify(ctx context.Context, key string) (string, error) } if err := es.Publish(ctx, event); err != nil { - return thingID, err + return thingID, errors.Cast(err) } return thingID, nil } -func (es *eventStore) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (string, error) { +func (es *eventStore) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (string, errors.Error) { thingID, err := es.svc.Authorize(ctx, req) if err != nil { return thingID, err @@ -216,13 +217,13 @@ func (es *eventStore) Authorize(ctx context.Context, req *magistrala.AuthorizeRe } if err := es.Publish(ctx, event); err != nil { - return thingID, err + return thingID, errors.Cast(err) } return thingID, nil } -func (es *eventStore) Share(ctx context.Context, token, id, relation string, userids ...string) error { +func (es *eventStore) Share(ctx context.Context, token, id, relation string, userids ...string) errors.Error { if err := es.svc.Share(ctx, token, id, relation, userids...); err != nil { return err } @@ -234,10 +235,10 @@ func (es *eventStore) Share(ctx context.Context, token, id, relation string, use userIDs: userids, } - return es.Publish(ctx, event) + return errors.Cast(es.Publish(ctx, event)) } -func (es *eventStore) Unshare(ctx context.Context, token, id, relation string, userids ...string) error { +func (es *eventStore) Unshare(ctx context.Context, token, id, relation string, userids ...string) errors.Error { if err := es.svc.Unshare(ctx, token, id, relation, userids...); err != nil { return err } @@ -249,10 +250,10 @@ func (es *eventStore) Unshare(ctx context.Context, token, id, relation string, u userIDs: userids, } - return es.Publish(ctx, event) + return errors.Cast(es.Publish(ctx, event)) } -func (es *eventStore) DeleteClient(ctx context.Context, token, id string) error { +func (es *eventStore) DeleteClient(ctx context.Context, token, id string) errors.Error { if err := es.svc.DeleteClient(ctx, token, id); err != nil { return err } @@ -260,7 +261,7 @@ func (es *eventStore) DeleteClient(ctx context.Context, token, id string) error event := removeClientEvent{id} if err := es.Publish(ctx, event); err != nil { - return err + return errors.Cast(err) } return nil diff --git a/things/mocks/cache.go b/things/mocks/cache.go index 6342309997..8320f7b464 100644 --- a/things/mocks/cache.go +++ b/things/mocks/cache.go @@ -7,6 +7,7 @@ package mocks import ( context "context" + errors "github.com/absmach/magistrala/pkg/errors" mock "github.com/stretchr/testify/mock" ) @@ -16,7 +17,7 @@ type Cache struct { } // ID provides a mock function with given fields: ctx, thingSecret -func (_m *Cache) ID(ctx context.Context, thingSecret string) (string, error) { +func (_m *Cache) ID(ctx context.Context, thingSecret string) (string, errors.Error) { ret := _m.Called(ctx, thingSecret) if len(ret) == 0 { @@ -24,8 +25,8 @@ func (_m *Cache) ID(ctx context.Context, thingSecret string) (string, error) { } var r0 string - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (string, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string) (string, errors.Error)); ok { return rf(ctx, thingSecret) } if rf, ok := ret.Get(0).(func(context.Context, string) string); ok { @@ -34,46 +35,52 @@ func (_m *Cache) ID(ctx context.Context, thingSecret string) (string, error) { r0 = ret.Get(0).(string) } - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string) errors.Error); ok { r1 = rf(ctx, thingSecret) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // Remove provides a mock function with given fields: ctx, thingID -func (_m *Cache) Remove(ctx context.Context, thingID string) error { +func (_m *Cache) Remove(ctx context.Context, thingID string) errors.Error { ret := _m.Called(ctx, thingID) if len(ret) == 0 { panic("no return value specified for Remove") } - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string) error); ok { + var r0 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string) errors.Error); ok { r0 = rf(ctx, thingID) } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).(errors.Error) + } } return r0 } // Save provides a mock function with given fields: ctx, thingSecret, thingID -func (_m *Cache) Save(ctx context.Context, thingSecret string, thingID string) error { +func (_m *Cache) Save(ctx context.Context, thingSecret string, thingID string) errors.Error { ret := _m.Called(ctx, thingSecret, thingID) if len(ret) == 0 { panic("no return value specified for Save") } - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) error); ok { + var r0 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string) errors.Error); ok { r0 = rf(ctx, thingSecret, thingID) } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).(errors.Error) + } } return r0 diff --git a/things/mocks/repository.go b/things/mocks/repository.go index 3640bfc14f..6ddcd836d8 100644 --- a/things/mocks/repository.go +++ b/things/mocks/repository.go @@ -9,6 +9,8 @@ import ( clients "github.com/absmach/magistrala/pkg/clients" + errors "github.com/absmach/magistrala/pkg/errors" + mock "github.com/stretchr/testify/mock" ) @@ -18,7 +20,7 @@ type Repository struct { } // ChangeStatus provides a mock function with given fields: ctx, client -func (_m *Repository) ChangeStatus(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) ChangeStatus(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -26,8 +28,8 @@ func (_m *Repository) ChangeStatus(ctx context.Context, client clients.Client) ( } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -36,35 +38,39 @@ func (_m *Repository) ChangeStatus(ctx context.Context, client clients.Client) ( r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // Delete provides a mock function with given fields: ctx, id -func (_m *Repository) Delete(ctx context.Context, id string) error { +func (_m *Repository) Delete(ctx context.Context, id string) errors.Error { ret := _m.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for Delete") } - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string) error); ok { + var r0 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string) errors.Error); ok { r0 = rf(ctx, id) } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).(errors.Error) + } } return r0 } // RetrieveAll provides a mock function with given fields: ctx, pm -func (_m *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clients.ClientsPage, error) { +func (_m *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clients.ClientsPage, errors.Error) { ret := _m.Called(ctx, pm) if len(ret) == 0 { @@ -72,8 +78,8 @@ func (_m *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clients } var r0 clients.ClientsPage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Page) (clients.ClientsPage, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Page) (clients.ClientsPage, errors.Error)); ok { return rf(ctx, pm) } if rf, ok := ret.Get(0).(func(context.Context, clients.Page) clients.ClientsPage); ok { @@ -82,17 +88,19 @@ func (_m *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clients r0 = ret.Get(0).(clients.ClientsPage) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Page) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Page) errors.Error); ok { r1 = rf(ctx, pm) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // RetrieveAllBasicInfo provides a mock function with given fields: ctx, pm -func (_m *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Page) (clients.ClientsPage, error) { +func (_m *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Page) (clients.ClientsPage, errors.Error) { ret := _m.Called(ctx, pm) if len(ret) == 0 { @@ -100,8 +108,8 @@ func (_m *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Page) } var r0 clients.ClientsPage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Page) (clients.ClientsPage, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Page) (clients.ClientsPage, errors.Error)); ok { return rf(ctx, pm) } if rf, ok := ret.Get(0).(func(context.Context, clients.Page) clients.ClientsPage); ok { @@ -110,17 +118,19 @@ func (_m *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Page) r0 = ret.Get(0).(clients.ClientsPage) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Page) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Page) errors.Error); ok { r1 = rf(ctx, pm) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // RetrieveAllByIDs provides a mock function with given fields: ctx, pm -func (_m *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) (clients.ClientsPage, error) { +func (_m *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) (clients.ClientsPage, errors.Error) { ret := _m.Called(ctx, pm) if len(ret) == 0 { @@ -128,8 +138,8 @@ func (_m *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) (cl } var r0 clients.ClientsPage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Page) (clients.ClientsPage, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Page) (clients.ClientsPage, errors.Error)); ok { return rf(ctx, pm) } if rf, ok := ret.Get(0).(func(context.Context, clients.Page) clients.ClientsPage); ok { @@ -138,17 +148,19 @@ func (_m *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) (cl r0 = ret.Get(0).(clients.ClientsPage) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Page) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Page) errors.Error); ok { r1 = rf(ctx, pm) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // RetrieveByID provides a mock function with given fields: ctx, id -func (_m *Repository) RetrieveByID(ctx context.Context, id string) (clients.Client, error) { +func (_m *Repository) RetrieveByID(ctx context.Context, id string) (clients.Client, errors.Error) { ret := _m.Called(ctx, id) if len(ret) == 0 { @@ -156,8 +168,8 @@ func (_m *Repository) RetrieveByID(ctx context.Context, id string) (clients.Clie } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string) (clients.Client, errors.Error)); ok { return rf(ctx, id) } if rf, ok := ret.Get(0).(func(context.Context, string) clients.Client); ok { @@ -166,17 +178,19 @@ func (_m *Repository) RetrieveByID(ctx context.Context, id string) (clients.Clie r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string) errors.Error); ok { r1 = rf(ctx, id) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // RetrieveByIdentity provides a mock function with given fields: ctx, identity -func (_m *Repository) RetrieveByIdentity(ctx context.Context, identity string) (clients.Client, error) { +func (_m *Repository) RetrieveByIdentity(ctx context.Context, identity string) (clients.Client, errors.Error) { ret := _m.Called(ctx, identity) if len(ret) == 0 { @@ -184,8 +198,8 @@ func (_m *Repository) RetrieveByIdentity(ctx context.Context, identity string) ( } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string) (clients.Client, errors.Error)); ok { return rf(ctx, identity) } if rf, ok := ret.Get(0).(func(context.Context, string) clients.Client); ok { @@ -194,17 +208,19 @@ func (_m *Repository) RetrieveByIdentity(ctx context.Context, identity string) ( r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string) errors.Error); ok { r1 = rf(ctx, identity) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // RetrieveBySecret provides a mock function with given fields: ctx, key -func (_m *Repository) RetrieveBySecret(ctx context.Context, key string) (clients.Client, error) { +func (_m *Repository) RetrieveBySecret(ctx context.Context, key string) (clients.Client, errors.Error) { ret := _m.Called(ctx, key) if len(ret) == 0 { @@ -212,8 +228,8 @@ func (_m *Repository) RetrieveBySecret(ctx context.Context, key string) (clients } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string) (clients.Client, errors.Error)); ok { return rf(ctx, key) } if rf, ok := ret.Get(0).(func(context.Context, string) clients.Client); ok { @@ -222,17 +238,19 @@ func (_m *Repository) RetrieveBySecret(ctx context.Context, key string) (clients r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string) errors.Error); ok { r1 = rf(ctx, key) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // Save provides a mock function with given fields: ctx, client -func (_m *Repository) Save(ctx context.Context, client ...clients.Client) ([]clients.Client, error) { +func (_m *Repository) Save(ctx context.Context, client ...clients.Client) ([]clients.Client, errors.Error) { _va := make([]interface{}, len(client)) for _i := range client { _va[_i] = client[_i] @@ -247,8 +265,8 @@ func (_m *Repository) Save(ctx context.Context, client ...clients.Client) ([]cli } var r0 []clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, ...clients.Client) ([]clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, ...clients.Client) ([]clients.Client, errors.Error)); ok { return rf(ctx, client...) } if rf, ok := ret.Get(0).(func(context.Context, ...clients.Client) []clients.Client); ok { @@ -259,17 +277,19 @@ func (_m *Repository) Save(ctx context.Context, client ...clients.Client) ([]cli } } - if rf, ok := ret.Get(1).(func(context.Context, ...clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, ...clients.Client) errors.Error); ok { r1 = rf(ctx, client...) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // Update provides a mock function with given fields: ctx, client -func (_m *Repository) Update(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) Update(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -277,8 +297,8 @@ func (_m *Repository) Update(ctx context.Context, client clients.Client) (client } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -287,17 +307,19 @@ func (_m *Repository) Update(ctx context.Context, client clients.Client) (client r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateIdentity provides a mock function with given fields: ctx, client -func (_m *Repository) UpdateIdentity(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) UpdateIdentity(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -305,8 +327,8 @@ func (_m *Repository) UpdateIdentity(ctx context.Context, client clients.Client) } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -315,17 +337,19 @@ func (_m *Repository) UpdateIdentity(ctx context.Context, client clients.Client) r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateRole provides a mock function with given fields: ctx, client -func (_m *Repository) UpdateRole(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) UpdateRole(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -333,8 +357,8 @@ func (_m *Repository) UpdateRole(ctx context.Context, client clients.Client) (cl } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -343,17 +367,19 @@ func (_m *Repository) UpdateRole(ctx context.Context, client clients.Client) (cl r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateSecret provides a mock function with given fields: ctx, client -func (_m *Repository) UpdateSecret(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) UpdateSecret(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -361,8 +387,8 @@ func (_m *Repository) UpdateSecret(ctx context.Context, client clients.Client) ( } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -371,17 +397,19 @@ func (_m *Repository) UpdateSecret(ctx context.Context, client clients.Client) ( r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateTags provides a mock function with given fields: ctx, client -func (_m *Repository) UpdateTags(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) UpdateTags(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -389,8 +417,8 @@ func (_m *Repository) UpdateTags(ctx context.Context, client clients.Client) (cl } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -399,10 +427,12 @@ func (_m *Repository) UpdateTags(ctx context.Context, client clients.Client) (cl r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 diff --git a/things/mocks/service.go b/things/mocks/service.go index f66ec85574..029a8bb106 100644 --- a/things/mocks/service.go +++ b/things/mocks/service.go @@ -9,6 +9,8 @@ import ( clients "github.com/absmach/magistrala/pkg/clients" + errors "github.com/absmach/magistrala/pkg/errors" + magistrala "github.com/absmach/magistrala" mock "github.com/stretchr/testify/mock" @@ -20,7 +22,7 @@ type Service struct { } // Authorize provides a mock function with given fields: ctx, req -func (_m *Service) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (string, error) { +func (_m *Service) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (string, errors.Error) { ret := _m.Called(ctx, req) if len(ret) == 0 { @@ -28,8 +30,8 @@ func (_m *Service) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) } var r0 string - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, *magistrala.AuthorizeReq) (string, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, *magistrala.AuthorizeReq) (string, errors.Error)); ok { return rf(ctx, req) } if rf, ok := ret.Get(0).(func(context.Context, *magistrala.AuthorizeReq) string); ok { @@ -38,17 +40,19 @@ func (_m *Service) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) r0 = ret.Get(0).(string) } - if rf, ok := ret.Get(1).(func(context.Context, *magistrala.AuthorizeReq) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, *magistrala.AuthorizeReq) errors.Error); ok { r1 = rf(ctx, req) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // CreateThings provides a mock function with given fields: ctx, token, client -func (_m *Service) CreateThings(ctx context.Context, token string, client ...clients.Client) ([]clients.Client, error) { +func (_m *Service) CreateThings(ctx context.Context, token string, client ...clients.Client) ([]clients.Client, errors.Error) { _va := make([]interface{}, len(client)) for _i := range client { _va[_i] = client[_i] @@ -63,8 +67,8 @@ func (_m *Service) CreateThings(ctx context.Context, token string, client ...cli } var r0 []clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, ...clients.Client) ([]clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, ...clients.Client) ([]clients.Client, errors.Error)); ok { return rf(ctx, token, client...) } if rf, ok := ret.Get(0).(func(context.Context, string, ...clients.Client) []clients.Client); ok { @@ -75,35 +79,39 @@ func (_m *Service) CreateThings(ctx context.Context, token string, client ...cli } } - if rf, ok := ret.Get(1).(func(context.Context, string, ...clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, ...clients.Client) errors.Error); ok { r1 = rf(ctx, token, client...) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // DeleteClient provides a mock function with given fields: ctx, token, id -func (_m *Service) DeleteClient(ctx context.Context, token string, id string) error { +func (_m *Service) DeleteClient(ctx context.Context, token string, id string) errors.Error { ret := _m.Called(ctx, token, id) if len(ret) == 0 { panic("no return value specified for DeleteClient") } - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) error); ok { + var r0 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string) errors.Error); ok { r0 = rf(ctx, token, id) } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).(errors.Error) + } } return r0 } // DisableClient provides a mock function with given fields: ctx, token, id -func (_m *Service) DisableClient(ctx context.Context, token string, id string) (clients.Client, error) { +func (_m *Service) DisableClient(ctx context.Context, token string, id string) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, id) if len(ret) == 0 { @@ -111,8 +119,8 @@ func (_m *Service) DisableClient(ctx context.Context, token string, id string) ( } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string) (clients.Client, errors.Error)); ok { return rf(ctx, token, id) } if rf, ok := ret.Get(0).(func(context.Context, string, string) clients.Client); ok { @@ -121,17 +129,19 @@ func (_m *Service) DisableClient(ctx context.Context, token string, id string) ( r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string) errors.Error); ok { r1 = rf(ctx, token, id) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // EnableClient provides a mock function with given fields: ctx, token, id -func (_m *Service) EnableClient(ctx context.Context, token string, id string) (clients.Client, error) { +func (_m *Service) EnableClient(ctx context.Context, token string, id string) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, id) if len(ret) == 0 { @@ -139,8 +149,8 @@ func (_m *Service) EnableClient(ctx context.Context, token string, id string) (c } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string) (clients.Client, errors.Error)); ok { return rf(ctx, token, id) } if rf, ok := ret.Get(0).(func(context.Context, string, string) clients.Client); ok { @@ -149,17 +159,19 @@ func (_m *Service) EnableClient(ctx context.Context, token string, id string) (c r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string) errors.Error); ok { r1 = rf(ctx, token, id) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // Identify provides a mock function with given fields: ctx, key -func (_m *Service) Identify(ctx context.Context, key string) (string, error) { +func (_m *Service) Identify(ctx context.Context, key string) (string, errors.Error) { ret := _m.Called(ctx, key) if len(ret) == 0 { @@ -167,8 +179,8 @@ func (_m *Service) Identify(ctx context.Context, key string) (string, error) { } var r0 string - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (string, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string) (string, errors.Error)); ok { return rf(ctx, key) } if rf, ok := ret.Get(0).(func(context.Context, string) string); ok { @@ -177,17 +189,19 @@ func (_m *Service) Identify(ctx context.Context, key string) (string, error) { r0 = ret.Get(0).(string) } - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string) errors.Error); ok { r1 = rf(ctx, key) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // ListClients provides a mock function with given fields: ctx, token, reqUserID, pm -func (_m *Service) ListClients(ctx context.Context, token string, reqUserID string, pm clients.Page) (clients.ClientsPage, error) { +func (_m *Service) ListClients(ctx context.Context, token string, reqUserID string, pm clients.Page) (clients.ClientsPage, errors.Error) { ret := _m.Called(ctx, token, reqUserID, pm) if len(ret) == 0 { @@ -195,8 +209,8 @@ func (_m *Service) ListClients(ctx context.Context, token string, reqUserID stri } var r0 clients.ClientsPage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string, clients.Page) (clients.ClientsPage, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string, clients.Page) (clients.ClientsPage, errors.Error)); ok { return rf(ctx, token, reqUserID, pm) } if rf, ok := ret.Get(0).(func(context.Context, string, string, clients.Page) clients.ClientsPage); ok { @@ -205,17 +219,19 @@ func (_m *Service) ListClients(ctx context.Context, token string, reqUserID stri r0 = ret.Get(0).(clients.ClientsPage) } - if rf, ok := ret.Get(1).(func(context.Context, string, string, clients.Page) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string, clients.Page) errors.Error); ok { r1 = rf(ctx, token, reqUserID, pm) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // ListClientsByGroup provides a mock function with given fields: ctx, token, groupID, pm -func (_m *Service) ListClientsByGroup(ctx context.Context, token string, groupID string, pm clients.Page) (clients.MembersPage, error) { +func (_m *Service) ListClientsByGroup(ctx context.Context, token string, groupID string, pm clients.Page) (clients.MembersPage, errors.Error) { ret := _m.Called(ctx, token, groupID, pm) if len(ret) == 0 { @@ -223,8 +239,8 @@ func (_m *Service) ListClientsByGroup(ctx context.Context, token string, groupID } var r0 clients.MembersPage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string, clients.Page) (clients.MembersPage, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string, clients.Page) (clients.MembersPage, errors.Error)); ok { return rf(ctx, token, groupID, pm) } if rf, ok := ret.Get(0).(func(context.Context, string, string, clients.Page) clients.MembersPage); ok { @@ -233,17 +249,19 @@ func (_m *Service) ListClientsByGroup(ctx context.Context, token string, groupID r0 = ret.Get(0).(clients.MembersPage) } - if rf, ok := ret.Get(1).(func(context.Context, string, string, clients.Page) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string, clients.Page) errors.Error); ok { r1 = rf(ctx, token, groupID, pm) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // Share provides a mock function with given fields: ctx, token, id, relation, userids -func (_m *Service) Share(ctx context.Context, token string, id string, relation string, userids ...string) error { +func (_m *Service) Share(ctx context.Context, token string, id string, relation string, userids ...string) errors.Error { _va := make([]interface{}, len(userids)) for _i := range userids { _va[_i] = userids[_i] @@ -257,18 +275,20 @@ func (_m *Service) Share(ctx context.Context, token string, id string, relation panic("no return value specified for Share") } - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string, string, string, ...string) error); ok { + var r0 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string, string, ...string) errors.Error); ok { r0 = rf(ctx, token, id, relation, userids...) } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).(errors.Error) + } } return r0 } // Unshare provides a mock function with given fields: ctx, token, id, relation, userids -func (_m *Service) Unshare(ctx context.Context, token string, id string, relation string, userids ...string) error { +func (_m *Service) Unshare(ctx context.Context, token string, id string, relation string, userids ...string) errors.Error { _va := make([]interface{}, len(userids)) for _i := range userids { _va[_i] = userids[_i] @@ -282,18 +302,20 @@ func (_m *Service) Unshare(ctx context.Context, token string, id string, relatio panic("no return value specified for Unshare") } - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string, string, string, ...string) error); ok { + var r0 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string, string, ...string) errors.Error); ok { r0 = rf(ctx, token, id, relation, userids...) } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).(errors.Error) + } } return r0 } // UpdateClient provides a mock function with given fields: ctx, token, client -func (_m *Service) UpdateClient(ctx context.Context, token string, client clients.Client) (clients.Client, error) { +func (_m *Service) UpdateClient(ctx context.Context, token string, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, client) if len(ret) == 0 { @@ -301,8 +323,8 @@ func (_m *Service) UpdateClient(ctx context.Context, token string, client client } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, token, client) } if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) clients.Client); ok { @@ -311,17 +333,19 @@ func (_m *Service) UpdateClient(ctx context.Context, token string, client client r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, clients.Client) errors.Error); ok { r1 = rf(ctx, token, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateClientSecret provides a mock function with given fields: ctx, token, id, key -func (_m *Service) UpdateClientSecret(ctx context.Context, token string, id string, key string) (clients.Client, error) { +func (_m *Service) UpdateClientSecret(ctx context.Context, token string, id string, key string) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, id, key) if len(ret) == 0 { @@ -329,8 +353,8 @@ func (_m *Service) UpdateClientSecret(ctx context.Context, token string, id stri } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string, string) (clients.Client, errors.Error)); ok { return rf(ctx, token, id, key) } if rf, ok := ret.Get(0).(func(context.Context, string, string, string) clients.Client); ok { @@ -339,17 +363,19 @@ func (_m *Service) UpdateClientSecret(ctx context.Context, token string, id stri r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, string, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string, string) errors.Error); ok { r1 = rf(ctx, token, id, key) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateClientTags provides a mock function with given fields: ctx, token, client -func (_m *Service) UpdateClientTags(ctx context.Context, token string, client clients.Client) (clients.Client, error) { +func (_m *Service) UpdateClientTags(ctx context.Context, token string, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, client) if len(ret) == 0 { @@ -357,8 +383,8 @@ func (_m *Service) UpdateClientTags(ctx context.Context, token string, client cl } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, token, client) } if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) clients.Client); ok { @@ -367,17 +393,19 @@ func (_m *Service) UpdateClientTags(ctx context.Context, token string, client cl r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, clients.Client) errors.Error); ok { r1 = rf(ctx, token, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // ViewClient provides a mock function with given fields: ctx, token, id -func (_m *Service) ViewClient(ctx context.Context, token string, id string) (clients.Client, error) { +func (_m *Service) ViewClient(ctx context.Context, token string, id string) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, id) if len(ret) == 0 { @@ -385,8 +413,8 @@ func (_m *Service) ViewClient(ctx context.Context, token string, id string) (cli } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string) (clients.Client, errors.Error)); ok { return rf(ctx, token, id) } if rf, ok := ret.Get(0).(func(context.Context, string, string) clients.Client); ok { @@ -395,17 +423,19 @@ func (_m *Service) ViewClient(ctx context.Context, token string, id string) (cli r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string) errors.Error); ok { r1 = rf(ctx, token, id) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // ViewClientPerms provides a mock function with given fields: ctx, token, id -func (_m *Service) ViewClientPerms(ctx context.Context, token string, id string) ([]string, error) { +func (_m *Service) ViewClientPerms(ctx context.Context, token string, id string) ([]string, errors.Error) { ret := _m.Called(ctx, token, id) if len(ret) == 0 { @@ -413,8 +443,8 @@ func (_m *Service) ViewClientPerms(ctx context.Context, token string, id string) } var r0 []string - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) ([]string, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string) ([]string, errors.Error)); ok { return rf(ctx, token, id) } if rf, ok := ret.Get(0).(func(context.Context, string, string) []string); ok { @@ -425,10 +455,12 @@ func (_m *Service) ViewClientPerms(ctx context.Context, token string, id string) } } - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string) errors.Error); ok { r1 = rf(ctx, token, id) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 diff --git a/things/postgres/clients.go b/things/postgres/clients.go index 69e9f066fd..440b1b94e5 100644 --- a/things/postgres/clients.go +++ b/things/postgres/clients.go @@ -29,13 +29,13 @@ type Repository interface { // Save persists the client account. A non-nil error is returned to indicate // operation failure. - Save(ctx context.Context, client ...mgclients.Client) ([]mgclients.Client, error) + Save(ctx context.Context, client ...mgclients.Client) ([]mgclients.Client, errors.Error) // RetrieveBySecret retrieves a client based on the secret (key). - RetrieveBySecret(ctx context.Context, key string) (mgclients.Client, error) + RetrieveBySecret(ctx context.Context, key string) (mgclients.Client, errors.Error) // Delete deletes client with given id - Delete(ctx context.Context, id string) error + Delete(ctx context.Context, id string) errors.Error } // NewRepository instantiates a PostgreSQL @@ -46,7 +46,7 @@ func NewRepository(db postgres.Database) Repository { } } -func (repo clientRepo) Save(ctx context.Context, cs ...mgclients.Client) ([]mgclients.Client, error) { +func (repo clientRepo) Save(ctx context.Context, cs ...mgclients.Client) ([]mgclients.Client, errors.Error) { tx, err := repo.DB.BeginTxx(ctx, nil) if err != nil { return []mgclients.Client{}, errors.Wrap(repoerr.ErrCreateEntity, err) @@ -63,10 +63,10 @@ func (repo clientRepo) Save(ctx context.Context, cs ...mgclients.Client) ([]mgcl return []mgclients.Client{}, errors.Wrap(repoerr.ErrCreateEntity, err) } - row, err := repo.DB.NamedQueryContext(ctx, q, dbcli) - if err != nil { + row, Err := repo.DB.NamedQueryContext(ctx, q, dbcli) + if Err != nil { if err := tx.Rollback(); err != nil { - return []mgclients.Client{}, postgres.HandleError(repoerr.ErrCreateEntity, err) + return []mgclients.Client{}, errors.Cast(postgres.HandleError(repoerr.ErrCreateEntity, Err)) } return []mgclients.Client{}, errors.Wrap(repoerr.ErrCreateEntity, err) } @@ -93,7 +93,7 @@ func (repo clientRepo) Save(ctx context.Context, cs ...mgclients.Client) ([]mgcl return clients, nil } -func (repo clientRepo) RetrieveBySecret(ctx context.Context, key string) (mgclients.Client, error) { +func (repo clientRepo) RetrieveBySecret(ctx context.Context, key string) (mgclients.Client, errors.Error) { q := fmt.Sprintf(`SELECT id, name, tags, COALESCE(domain_id, '') AS domain_id, identity, secret, metadata, created_at, updated_at, updated_by, status FROM clients WHERE secret = :secret AND status = %d`, mgclients.EnabledStatus) @@ -104,14 +104,14 @@ func (repo clientRepo) RetrieveBySecret(ctx context.Context, key string) (mgclie rows, err := repo.DB.NamedQueryContext(ctx, q, dbc) if err != nil { - return mgclients.Client{}, postgres.HandleError(repoerr.ErrViewEntity, err) + return mgclients.Client{}, errors.Cast(postgres.HandleError(repoerr.ErrViewEntity, err)) } defer rows.Close() dbc = pgclients.DBClient{} if rows.Next() { if err = rows.StructScan(&dbc); err != nil { - return mgclients.Client{}, postgres.HandleError(repoerr.ErrViewEntity, err) + return mgclients.Client{}, errors.Cast(postgres.HandleError(repoerr.ErrViewEntity, err)) } client, err := pgclients.ToClient(dbc) @@ -125,12 +125,12 @@ func (repo clientRepo) RetrieveBySecret(ctx context.Context, key string) (mgclie return mgclients.Client{}, repoerr.ErrNotFound } -func (repo clientRepo) Delete(ctx context.Context, id string) error { +func (repo clientRepo) Delete(ctx context.Context, id string) errors.Error { q := "DELETE FROM clients AS c WHERE c.id = $1 ;" result, err := repo.DB.ExecContext(ctx, q, id) if err != nil { - return postgres.HandleError(repoerr.ErrRemoveEntity, err) + return errors.Cast(postgres.HandleError(repoerr.ErrRemoveEntity, err)) } if rows, _ := result.RowsAffected(); rows == 0 { return repoerr.ErrNotFound diff --git a/things/service.go b/things/service.go index 741d2550ec..105fac0820 100644 --- a/things/service.go +++ b/things/service.go @@ -35,7 +35,7 @@ func NewService(uauth magistrala.AuthServiceClient, c postgres.Repository, grepo } } -func (svc service) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (string, error) { +func (svc service) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (string, errors.Error) { thingID, err := svc.Identify(ctx, req.GetSubject()) if err != nil { return "", err @@ -48,9 +48,9 @@ func (svc service) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) Object: thingID, Permission: req.GetPermission(), } - resp, err := svc.auth.Authorize(ctx, r) - if err != nil { - return "", errors.Wrap(svcerr.ErrAuthorization, err) + resp, Err := svc.auth.Authorize(ctx, r) + if Err != nil { + return "", errors.Wrap(svcerr.ErrAuthorization, Err) } if !resp.GetAuthorized() { return "", svcerr.ErrAuthorization @@ -59,7 +59,7 @@ func (svc service) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) return thingID, nil } -func (svc service) CreateThings(ctx context.Context, token string, cls ...mgclients.Client) ([]mgclients.Client, error) { +func (svc service) CreateThings(ctx context.Context, token string, cls ...mgclients.Client) ([]mgclients.Client, errors.Error) { user, err := svc.identify(ctx, token) if err != nil { return []mgclients.Client{}, err @@ -74,14 +74,14 @@ func (svc service) CreateThings(ctx context.Context, token string, cls ...mgclie if c.ID == "" { clientID, err := svc.idProvider.ID() if err != nil { - return []mgclients.Client{}, err + return []mgclients.Client{}, errors.Cast(err) } c.ID = clientID } if c.Credentials.Secret == "" { key, err := svc.idProvider.ID() if err != nil { - return []mgclients.Client{}, err + return []mgclients.Client{}, errors.Cast(err) } c.Credentials.Secret = key } @@ -112,7 +112,7 @@ func (svc service) CreateThings(ctx context.Context, token string, cls ...mgclie return saved, nil } -func (svc service) ViewClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (svc service) ViewClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { _, err := svc.authorize(ctx, "", auth.UserType, auth.TokenKind, token, auth.ViewPermission, auth.ThingType, id) if err != nil { return mgclients.Client{}, err @@ -124,7 +124,7 @@ func (svc service) ViewClient(ctx context.Context, token, id string) (mgclients. return client, nil } -func (svc service) ViewClientPerms(ctx context.Context, token, id string) ([]string, error) { +func (svc service) ViewClientPerms(ctx context.Context, token, id string) ([]string, errors.Error) { res, err := svc.identify(ctx, token) if err != nil { return nil, err @@ -140,7 +140,7 @@ func (svc service) ViewClientPerms(ctx context.Context, token, id string) ([]str return permissions, nil } -func (svc service) ListClients(ctx context.Context, token, reqUserID string, pm mgclients.Page) (mgclients.ClientsPage, error) { +func (svc service) ListClients(ctx context.Context, token, reqUserID string, pm mgclients.Page) (mgclients.ClientsPage, errors.Error) { var ids []string res, err := svc.identify(ctx, token) @@ -198,14 +198,14 @@ func (svc service) ListClients(ctx context.Context, token, reqUserID string, pm } if err := g.Wait(); err != nil { - return mgclients.ClientsPage{}, err + return mgclients.ClientsPage{}, errors.Cast(err) } } return tp, nil } // Experimental functions used for async calling of svc.listUserThingPermission. This might be helpful during listing of large number of entities. -func (svc service) retrievePermissions(ctx context.Context, userID string, client *mgclients.Client) error { +func (svc service) retrievePermissions(ctx context.Context, userID string, client *mgclients.Client) errors.Error { permissions, err := svc.listUserThingPermission(ctx, userID, client.ID) if err != nil { return err @@ -214,7 +214,7 @@ func (svc service) retrievePermissions(ctx context.Context, userID string, clien return nil } -func (svc service) listUserThingPermission(ctx context.Context, userID, thingID string) ([]string, error) { +func (svc service) listUserThingPermission(ctx context.Context, userID, thingID string) ([]string, errors.Error) { lp, err := svc.auth.ListPermissions(ctx, &magistrala.ListPermissionsReq{ SubjectType: auth.UserType, Subject: userID, @@ -227,7 +227,7 @@ func (svc service) listUserThingPermission(ctx context.Context, userID, thingID return lp.GetPermissions(), nil } -func (svc service) listClientIDs(ctx context.Context, userID, permission string) ([]string, error) { +func (svc service) listClientIDs(ctx context.Context, userID, permission string) ([]string, errors.Error) { tids, err := svc.auth.ListAllObjects(ctx, &magistrala.ListObjectsReq{ SubjectType: auth.UserType, Subject: userID, @@ -240,7 +240,7 @@ func (svc service) listClientIDs(ctx context.Context, userID, permission string) return tids.Policies, nil } -func (svc service) filterAllowedThingIDs(ctx context.Context, userID, permission string, thingIDs []string) ([]string, error) { +func (svc service) filterAllowedThingIDs(ctx context.Context, userID, permission string, thingIDs []string) ([]string, errors.Error) { var ids []string tids, err := svc.auth.ListAllObjects(ctx, &magistrala.ListObjectsReq{ SubjectType: auth.UserType, @@ -261,7 +261,7 @@ func (svc service) filterAllowedThingIDs(ctx context.Context, userID, permission return ids, nil } -func (svc service) checkSuperAdmin(ctx context.Context, userID string) error { +func (svc service) checkSuperAdmin(ctx context.Context, userID string) errors.Error { res, err := svc.auth.Authorize(ctx, &magistrala.AuthorizeReq{ SubjectType: auth.UserType, Subject: userID, @@ -270,7 +270,7 @@ func (svc service) checkSuperAdmin(ctx context.Context, userID string) error { Object: auth.MagistralaObject, }) if err != nil { - return err + return errors.Cast(err) } if !res.Authorized { return svcerr.ErrAuthorization @@ -278,7 +278,7 @@ func (svc service) checkSuperAdmin(ctx context.Context, userID string) error { return nil } -func (svc service) UpdateClient(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, error) { +func (svc service) UpdateClient(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, errors.Error) { userID, err := svc.authorize(ctx, "", auth.UserType, auth.TokenKind, token, auth.EditPermission, auth.ThingType, cli.ID) if err != nil { return mgclients.Client{}, errors.Wrap(svcerr.ErrAuthorization, err) @@ -298,7 +298,7 @@ func (svc service) UpdateClient(ctx context.Context, token string, cli mgclients return client, nil } -func (svc service) UpdateClientTags(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, error) { +func (svc service) UpdateClientTags(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, errors.Error) { userID, err := svc.authorize(ctx, "", auth.UserType, auth.TokenKind, token, auth.EditPermission, auth.ThingType, cli.ID) if err != nil { return mgclients.Client{}, errors.Wrap(svcerr.ErrAuthorization, err) @@ -317,7 +317,7 @@ func (svc service) UpdateClientTags(ctx context.Context, token string, cli mgcli return client, nil } -func (svc service) UpdateClientSecret(ctx context.Context, token, id, key string) (mgclients.Client, error) { +func (svc service) UpdateClientSecret(ctx context.Context, token, id, key string) (mgclients.Client, errors.Error) { userID, err := svc.authorize(ctx, "", auth.UserType, auth.TokenKind, token, auth.EditPermission, auth.ThingType, id) if err != nil { return mgclients.Client{}, errors.Wrap(svcerr.ErrAuthorization, err) @@ -339,7 +339,7 @@ func (svc service) UpdateClientSecret(ctx context.Context, token, id, key string return client, nil } -func (svc service) EnableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (svc service) EnableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { client := mgclients.Client{ ID: id, Status: mgclients.EnabledStatus, @@ -353,7 +353,7 @@ func (svc service) EnableClient(ctx context.Context, token, id string) (mgclient return client, nil } -func (svc service) DisableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (svc service) DisableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { client := mgclients.Client{ ID: id, Status: mgclients.DisabledStatus, @@ -371,7 +371,7 @@ func (svc service) DisableClient(ctx context.Context, token, id string) (mgclien return client, nil } -func (svc service) Share(ctx context.Context, token, id, relation string, userids ...string) error { +func (svc service) Share(ctx context.Context, token, id, relation string, userids ...string) errors.Error { user, err := svc.identify(ctx, token) if err != nil { return err @@ -390,17 +390,17 @@ func (svc service) Share(ctx context.Context, token, id, relation string, userid Object: id, }) } - res, err := svc.auth.AddPolicies(ctx, &policies) - if err != nil { - return errors.Wrap(svcerr.ErrUpdateEntity, err) + res, Err := svc.auth.AddPolicies(ctx, &policies) + if Err != nil { + return errors.Wrap(svcerr.ErrUpdateEntity, Err) } if !res.Added { - return errors.Wrap(svcerr.ErrUpdateEntity, err) + return errors.Wrap(svcerr.ErrUpdateEntity, Err) } return nil } -func (svc service) Unshare(ctx context.Context, token, id, relation string, userids ...string) error { +func (svc service) Unshare(ctx context.Context, token, id, relation string, userids ...string) errors.Error { user, err := svc.identify(ctx, token) if err != nil { return err @@ -419,9 +419,9 @@ func (svc service) Unshare(ctx context.Context, token, id, relation string, user Object: id, }) } - res, err := svc.auth.DeletePolicies(ctx, &policies) - if err != nil { - return errors.Wrap(svcerr.ErrUpdateEntity, err) + res, Err := svc.auth.DeletePolicies(ctx, &policies) + if Err != nil { + return errors.Wrap(svcerr.ErrUpdateEntity, Err) } if !res.Deleted { return err @@ -429,7 +429,7 @@ func (svc service) Unshare(ctx context.Context, token, id, relation string, user return nil } -func (svc service) DeleteClient(ctx context.Context, token, id string) error { +func (svc service) DeleteClient(ctx context.Context, token, id string) errors.Error { res, err := svc.identify(ctx, token) if err != nil { return err @@ -478,7 +478,7 @@ func (svc service) DeleteClient(ctx context.Context, token, id string) error { return nil } -func (svc service) changeClientStatus(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, error) { +func (svc service) changeClientStatus(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, errors.Error) { userID, err := svc.authorize(ctx, "", auth.UserType, auth.TokenKind, token, auth.DeletePermission, auth.ThingType, client.ID) if err != nil { return mgclients.Client{}, errors.Wrap(svcerr.ErrAuthorization, err) @@ -500,7 +500,7 @@ func (svc service) changeClientStatus(ctx context.Context, token string, client return client, nil } -func (svc service) ListClientsByGroup(ctx context.Context, token, groupID string, pm mgclients.Page) (mgclients.MembersPage, error) { +func (svc service) ListClientsByGroup(ctx context.Context, token, groupID string, pm mgclients.Page) (mgclients.MembersPage, errors.Error) { res, err := svc.identify(ctx, token) if err != nil { return mgclients.MembersPage{}, err @@ -509,14 +509,14 @@ func (svc service) ListClientsByGroup(ctx context.Context, token, groupID string return mgclients.MembersPage{}, err } - tids, err := svc.auth.ListAllObjects(ctx, &magistrala.ListObjectsReq{ + tids, Err := svc.auth.ListAllObjects(ctx, &magistrala.ListObjectsReq{ SubjectType: auth.GroupType, Subject: groupID, Permission: auth.GroupRelation, ObjectType: auth.ThingType, }) - if err != nil { - return mgclients.MembersPage{}, errors.Wrap(svcerr.ErrNotFound, err) + if Err != nil { + return mgclients.MembersPage{}, errors.Wrap(svcerr.ErrNotFound, Err) } pm.IDs = tids.Policies @@ -538,7 +538,7 @@ func (svc service) ListClientsByGroup(ctx context.Context, token, groupID string } if err := g.Wait(); err != nil { - return mgclients.MembersPage{}, err + return mgclients.MembersPage{}, errors.Cast(err) } } @@ -548,7 +548,7 @@ func (svc service) ListClientsByGroup(ctx context.Context, token, groupID string }, nil } -func (svc service) Identify(ctx context.Context, key string) (string, error) { +func (svc service) Identify(ctx context.Context, key string) (string, errors.Error) { id, err := svc.clientCache.ID(ctx, key) if err == nil { return id, nil @@ -565,7 +565,7 @@ func (svc service) Identify(ctx context.Context, key string) (string, error) { return client.ID, nil } -func (svc service) identify(ctx context.Context, token string) (*magistrala.IdentityRes, error) { +func (svc service) identify(ctx context.Context, token string) (*magistrala.IdentityRes, errors.Error) { res, err := svc.auth.Identify(ctx, &magistrala.IdentityReq{Token: token}) if err != nil { return nil, errors.Wrap(svcerr.ErrAuthentication, err) @@ -576,7 +576,7 @@ func (svc service) identify(ctx context.Context, token string) (*magistrala.Iden return res, nil } -func (svc *service) authorize(ctx context.Context, domainID, subjType, subjKind, subj, perm, objType, obj string) (string, error) { +func (svc *service) authorize(ctx context.Context, domainID, subjType, subjKind, subj, perm, objType, obj string) (string, errors.Error) { req := &magistrala.AuthorizeReq{ Domain: domainID, SubjectType: subjType, diff --git a/things/things.go b/things/things.go index 270d59e131..3f9c7afdb0 100644 --- a/things/things.go +++ b/things/things.go @@ -8,6 +8,7 @@ import ( "github.com/absmach/magistrala" "github.com/absmach/magistrala/pkg/clients" + "github.com/absmach/magistrala/pkg/errors" ) // Service specifies an API that must be fullfiled by the domain service @@ -17,51 +18,51 @@ import ( type Service interface { // CreateThings creates new client. In case of the failed registration, a // non-nil error value is returned. - CreateThings(ctx context.Context, token string, client ...clients.Client) ([]clients.Client, error) + CreateThings(ctx context.Context, token string, client ...clients.Client) ([]clients.Client, errors.Error) // ViewClient retrieves client info for a given client ID and an authorized token. - ViewClient(ctx context.Context, token, id string) (clients.Client, error) + ViewClient(ctx context.Context, token, id string) (clients.Client, errors.Error) // ViewClientPerms retrieves permissions on the client id for the given authorized token. - ViewClientPerms(ctx context.Context, token, id string) ([]string, error) + ViewClientPerms(ctx context.Context, token, id string) ([]string, errors.Error) // ListClients retrieves clients list for a valid auth token. - ListClients(ctx context.Context, token string, reqUserID string, pm clients.Page) (clients.ClientsPage, error) + ListClients(ctx context.Context, token string, reqUserID string, pm clients.Page) (clients.ClientsPage, errors.Error) // ListClientsByGroup retrieves data about subset of things that are // connected or not connected to specified channel and belong to the user identified by // the provided key. - ListClientsByGroup(ctx context.Context, token, groupID string, pm clients.Page) (clients.MembersPage, error) + ListClientsByGroup(ctx context.Context, token, groupID string, pm clients.Page) (clients.MembersPage, errors.Error) // UpdateClient updates the client's name and metadata. - UpdateClient(ctx context.Context, token string, client clients.Client) (clients.Client, error) + UpdateClient(ctx context.Context, token string, client clients.Client) (clients.Client, errors.Error) // UpdateClientTags updates the client's tags. - UpdateClientTags(ctx context.Context, token string, client clients.Client) (clients.Client, error) + UpdateClientTags(ctx context.Context, token string, client clients.Client) (clients.Client, errors.Error) // UpdateClientSecret updates the client's secret - UpdateClientSecret(ctx context.Context, token, id, key string) (clients.Client, error) + UpdateClientSecret(ctx context.Context, token, id, key string) (clients.Client, errors.Error) // EnableClient logically enableds the client identified with the provided ID - EnableClient(ctx context.Context, token, id string) (clients.Client, error) + EnableClient(ctx context.Context, token, id string) (clients.Client, errors.Error) // DisableClient logically disables the client identified with the provided ID - DisableClient(ctx context.Context, token, id string) (clients.Client, error) + DisableClient(ctx context.Context, token, id string) (clients.Client, errors.Error) // Share add share policy to thing id with given relation for given user ids - Share(ctx context.Context, token, id string, relation string, userids ...string) error + Share(ctx context.Context, token, id string, relation string, userids ...string) errors.Error // Unshare remove share policy to thing id with given relation for given user ids - Unshare(ctx context.Context, token, id string, relation string, userids ...string) error + Unshare(ctx context.Context, token, id string, relation string, userids ...string) errors.Error // Identify returns thing ID for given thing key. - Identify(ctx context.Context, key string) (string, error) + Identify(ctx context.Context, key string) (string, errors.Error) // Authorize used for AuthZ gRPC server implementation and Things authorization. - Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (string, error) + Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (string, errors.Error) // DeleteClient deletes client with given ID. - DeleteClient(ctx context.Context, token, id string) error + DeleteClient(ctx context.Context, token, id string) errors.Error } // Cache contains thing caching interface. @@ -69,11 +70,11 @@ type Service interface { //go:generate mockery --name Cache --filename cache.go --quiet --note "Copyright (c) Abstract Machines" type Cache interface { // Save stores pair thing secret, thing id. - Save(ctx context.Context, thingSecret, thingID string) error + Save(ctx context.Context, thingSecret, thingID string) errors.Error // ID returns thing ID for given thing secret. - ID(ctx context.Context, thingSecret string) (string, error) + ID(ctx context.Context, thingSecret string) (string, errors.Error) // Removes thing from cache. - Remove(ctx context.Context, thingID string) error + Remove(ctx context.Context, thingID string) errors.Error } diff --git a/things/tracing/tracing.go b/things/tracing/tracing.go index f097163279..45c5b7a93b 100644 --- a/things/tracing/tracing.go +++ b/things/tracing/tracing.go @@ -8,6 +8,7 @@ import ( "github.com/absmach/magistrala" mgclients "github.com/absmach/magistrala/pkg/clients" + "github.com/absmach/magistrala/pkg/errors" "github.com/absmach/magistrala/things" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/trace" @@ -26,7 +27,7 @@ func New(svc things.Service, tracer trace.Tracer) things.Service { } // CreateThings traces the "CreateThings" operation of the wrapped policies.Service. -func (tm *tracingMiddleware) CreateThings(ctx context.Context, token string, clis ...mgclients.Client) ([]mgclients.Client, error) { +func (tm *tracingMiddleware) CreateThings(ctx context.Context, token string, clis ...mgclients.Client) ([]mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_create_client") defer span.End() @@ -34,28 +35,28 @@ func (tm *tracingMiddleware) CreateThings(ctx context.Context, token string, cli } // ViewClient traces the "ViewClient" operation of the wrapped policies.Service. -func (tm *tracingMiddleware) ViewClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (tm *tracingMiddleware) ViewClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_view_client", trace.WithAttributes(attribute.String("id", id))) defer span.End() return tm.svc.ViewClient(ctx, token, id) } // ViewClientPerms traces the "ViewClientPerms" operation of the wrapped policies.Service. -func (tm *tracingMiddleware) ViewClientPerms(ctx context.Context, token, id string) ([]string, error) { +func (tm *tracingMiddleware) ViewClientPerms(ctx context.Context, token, id string) ([]string, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_view_client_permissions", trace.WithAttributes(attribute.String("id", id))) defer span.End() return tm.svc.ViewClientPerms(ctx, token, id) } // ListClients traces the "ListClients" operation of the wrapped policies.Service. -func (tm *tracingMiddleware) ListClients(ctx context.Context, token, reqUserID string, pm mgclients.Page) (mgclients.ClientsPage, error) { +func (tm *tracingMiddleware) ListClients(ctx context.Context, token, reqUserID string, pm mgclients.Page) (mgclients.ClientsPage, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_list_clients") defer span.End() return tm.svc.ListClients(ctx, token, reqUserID, pm) } // UpdateClient traces the "UpdateClient" operation of the wrapped policies.Service. -func (tm *tracingMiddleware) UpdateClient(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, error) { +func (tm *tracingMiddleware) UpdateClient(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_update_client_name_and_metadata", trace.WithAttributes(attribute.String("id", cli.ID))) defer span.End() @@ -63,7 +64,7 @@ func (tm *tracingMiddleware) UpdateClient(ctx context.Context, token string, cli } // UpdateClientTags traces the "UpdateClientTags" operation of the wrapped policies.Service. -func (tm *tracingMiddleware) UpdateClientTags(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, error) { +func (tm *tracingMiddleware) UpdateClientTags(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_update_client_tags", trace.WithAttributes( attribute.String("id", cli.ID), attribute.StringSlice("tags", cli.Tags), @@ -74,7 +75,7 @@ func (tm *tracingMiddleware) UpdateClientTags(ctx context.Context, token string, } // UpdateClientSecret traces the "UpdateClientSecret" operation of the wrapped policies.Service. -func (tm *tracingMiddleware) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (mgclients.Client, error) { +func (tm *tracingMiddleware) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_update_client_secret") defer span.End() @@ -82,7 +83,7 @@ func (tm *tracingMiddleware) UpdateClientSecret(ctx context.Context, token, oldS } // EnableClient traces the "EnableClient" operation of the wrapped policies.Service. -func (tm *tracingMiddleware) EnableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (tm *tracingMiddleware) EnableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_enable_client", trace.WithAttributes(attribute.String("id", id))) defer span.End() @@ -90,7 +91,7 @@ func (tm *tracingMiddleware) EnableClient(ctx context.Context, token, id string) } // DisableClient traces the "DisableClient" operation of the wrapped policies.Service. -func (tm *tracingMiddleware) DisableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (tm *tracingMiddleware) DisableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_disable_client", trace.WithAttributes(attribute.String("id", id))) defer span.End() @@ -98,7 +99,7 @@ func (tm *tracingMiddleware) DisableClient(ctx context.Context, token, id string } // ListClientsByGroup traces the "ListClientsByGroup" operation of the wrapped policies.Service. -func (tm *tracingMiddleware) ListClientsByGroup(ctx context.Context, token, groupID string, pm mgclients.Page) (mgclients.MembersPage, error) { +func (tm *tracingMiddleware) ListClientsByGroup(ctx context.Context, token, groupID string, pm mgclients.Page) (mgclients.MembersPage, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_list_things_by_channel", trace.WithAttributes(attribute.String("groupID", groupID))) defer span.End() @@ -106,14 +107,14 @@ func (tm *tracingMiddleware) ListClientsByGroup(ctx context.Context, token, grou } // ListMemberships traces the "ListMemberships" operation of the wrapped policies.Service. -func (tm *tracingMiddleware) Identify(ctx context.Context, key string) (string, error) { +func (tm *tracingMiddleware) Identify(ctx context.Context, key string) (string, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_identify", trace.WithAttributes(attribute.String("key", key))) defer span.End() return tm.svc.Identify(ctx, key) } -func (tm *tracingMiddleware) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (string, error) { +func (tm *tracingMiddleware) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) (string, errors.Error) { ctx, span := tm.tracer.Start(ctx, "connect", trace.WithAttributes(attribute.String("subject", req.Subject), attribute.String("object", req.Object))) defer span.End() @@ -121,21 +122,21 @@ func (tm *tracingMiddleware) Authorize(ctx context.Context, req *magistrala.Auth } // Share traces the "Share" operation of the wrapped things.Service. -func (tm *tracingMiddleware) Share(ctx context.Context, token, id, relation string, userids ...string) error { +func (tm *tracingMiddleware) Share(ctx context.Context, token, id, relation string, userids ...string) errors.Error { ctx, span := tm.tracer.Start(ctx, "share", trace.WithAttributes(attribute.String("id", id), attribute.String("relation", relation), attribute.StringSlice("user_ids", userids))) defer span.End() return tm.svc.Share(ctx, token, id, relation, userids...) } // Unshare traces the "Unshare" operation of the wrapped things.Service. -func (tm *tracingMiddleware) Unshare(ctx context.Context, token, id, relation string, userids ...string) error { +func (tm *tracingMiddleware) Unshare(ctx context.Context, token, id, relation string, userids ...string) errors.Error { ctx, span := tm.tracer.Start(ctx, "unshare", trace.WithAttributes(attribute.String("id", id), attribute.String("relation", relation), attribute.StringSlice("user_ids", userids))) defer span.End() return tm.svc.Unshare(ctx, token, id, relation, userids...) } // DeleteClient traces the "DeleteClient" operation of the wrapped things.Service. -func (tm *tracingMiddleware) DeleteClient(ctx context.Context, token, id string) error { +func (tm *tracingMiddleware) DeleteClient(ctx context.Context, token, id string) errors.Error { ctx, span := tm.tracer.Start(ctx, "delete_client", trace.WithAttributes(attribute.String("id", id))) defer span.End() return tm.svc.DeleteClient(ctx, token, id) diff --git a/users/api/logging.go b/users/api/logging.go index 8c23818fb3..b58cef152c 100644 --- a/users/api/logging.go +++ b/users/api/logging.go @@ -10,6 +10,7 @@ import ( "github.com/absmach/magistrala" mgclients "github.com/absmach/magistrala/pkg/clients" + "github.com/absmach/magistrala/pkg/errors" "github.com/absmach/magistrala/users" ) @@ -27,7 +28,7 @@ func LoggingMiddleware(svc users.Service, logger *slog.Logger) users.Service { // RegisterClient logs the register_client request. It logs the client id and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) RegisterClient(ctx context.Context, token string, client mgclients.Client) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) RegisterClient(ctx context.Context, token string, client mgclients.Client) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -48,7 +49,7 @@ func (lm *loggingMiddleware) RegisterClient(ctx context.Context, token string, c // IssueToken logs the issue_token request. It logs the client identity type and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) IssueToken(ctx context.Context, identity, secret, domainID string) (t *magistrala.Token, err error) { +func (lm *loggingMiddleware) IssueToken(ctx context.Context, identity, secret, domainID string) (t *magistrala.Token, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -69,7 +70,7 @@ func (lm *loggingMiddleware) IssueToken(ctx context.Context, identity, secret, d // RefreshToken logs the refresh_token request. It logs the refreshtoken, token type and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) RefreshToken(ctx context.Context, refreshToken, domainID string) (t *magistrala.Token, err error) { +func (lm *loggingMiddleware) RefreshToken(ctx context.Context, refreshToken, domainID string) (t *magistrala.Token, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -90,7 +91,7 @@ func (lm *loggingMiddleware) RefreshToken(ctx context.Context, refreshToken, dom // ViewClient logs the view_client request. It logs the client id and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) ViewClient(ctx context.Context, token, id string) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) ViewClient(ctx context.Context, token, id string) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -111,7 +112,7 @@ func (lm *loggingMiddleware) ViewClient(ctx context.Context, token, id string) ( // ViewProfile logs the view_profile request. It logs the client id and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) ViewProfile(ctx context.Context, token string) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) ViewProfile(ctx context.Context, token string) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -132,7 +133,7 @@ func (lm *loggingMiddleware) ViewProfile(ctx context.Context, token string) (c m // ListClients logs the list_clients request. It logs the page metadata and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) ListClients(ctx context.Context, token string, pm mgclients.Page) (cp mgclients.ClientsPage, err error) { +func (lm *loggingMiddleware) ListClients(ctx context.Context, token string, pm mgclients.Page) (cp mgclients.ClientsPage, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -154,7 +155,7 @@ func (lm *loggingMiddleware) ListClients(ctx context.Context, token string, pm m // UpdateClient logs the update_client request. It logs the client id and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) UpdateClient(ctx context.Context, token string, client mgclients.Client) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) UpdateClient(ctx context.Context, token string, client mgclients.Client) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -176,7 +177,7 @@ func (lm *loggingMiddleware) UpdateClient(ctx context.Context, token string, cli // UpdateClientTags logs the update_client_tags request. It logs the client id and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) UpdateClientTags(ctx context.Context, token string, client mgclients.Client) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) UpdateClientTags(ctx context.Context, token string, client mgclients.Client) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -198,7 +199,7 @@ func (lm *loggingMiddleware) UpdateClientTags(ctx context.Context, token string, // UpdateClientIdentity logs the update_identity request. It logs the client id and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) UpdateClientIdentity(ctx context.Context, token, id, identity string) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) UpdateClientIdentity(ctx context.Context, token, id, identity string) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -219,7 +220,7 @@ func (lm *loggingMiddleware) UpdateClientIdentity(ctx context.Context, token, id // UpdateClientSecret logs the update_client_secret request. It logs the client id and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -240,7 +241,7 @@ func (lm *loggingMiddleware) UpdateClientSecret(ctx context.Context, token, oldS // GenerateResetToken logs the generate_reset_token request. It logs the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) GenerateResetToken(ctx context.Context, email, host string) (err error) { +func (lm *loggingMiddleware) GenerateResetToken(ctx context.Context, email, host string) (err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -258,7 +259,7 @@ func (lm *loggingMiddleware) GenerateResetToken(ctx context.Context, email, host // ResetSecret logs the reset_secret request. It logs the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) ResetSecret(ctx context.Context, token, secret string) (err error) { +func (lm *loggingMiddleware) ResetSecret(ctx context.Context, token, secret string) (err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -275,7 +276,7 @@ func (lm *loggingMiddleware) ResetSecret(ctx context.Context, token, secret stri // SendPasswordReset logs the send_password_reset request. It logs the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) SendPasswordReset(ctx context.Context, host, email, user, token string) (err error) { +func (lm *loggingMiddleware) SendPasswordReset(ctx context.Context, host, email, user, token string) (err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -293,7 +294,7 @@ func (lm *loggingMiddleware) SendPasswordReset(ctx context.Context, host, email, // UpdateClientRole logs the update_client_role request. It logs the client id and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) UpdateClientRole(ctx context.Context, token string, client mgclients.Client) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) UpdateClientRole(ctx context.Context, token string, client mgclients.Client) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -315,7 +316,7 @@ func (lm *loggingMiddleware) UpdateClientRole(ctx context.Context, token string, // EnableClient logs the enable_client request. It logs the client id and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) EnableClient(ctx context.Context, token, id string) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) EnableClient(ctx context.Context, token, id string) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -336,7 +337,7 @@ func (lm *loggingMiddleware) EnableClient(ctx context.Context, token, id string) // DisableClient logs the disable_client request. It logs the client id and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) DisableClient(ctx context.Context, token, id string) (c mgclients.Client, err error) { +func (lm *loggingMiddleware) DisableClient(ctx context.Context, token, id string) (c mgclients.Client, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -357,7 +358,7 @@ func (lm *loggingMiddleware) DisableClient(ctx context.Context, token, id string // ListMembers logs the list_members request. It logs the group id, and the time it took to complete the request. // If the request fails, it logs the error. -func (lm *loggingMiddleware) ListMembers(ctx context.Context, token, objectKind, objectID string, cp mgclients.Page) (mp mgclients.MembersPage, err error) { +func (lm *loggingMiddleware) ListMembers(ctx context.Context, token, objectKind, objectID string, cp mgclients.Page) (mp mgclients.MembersPage, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -382,7 +383,7 @@ func (lm *loggingMiddleware) ListMembers(ctx context.Context, token, objectKind, } // Identify logs the identify request. It logs the time it took to complete the request. -func (lm *loggingMiddleware) Identify(ctx context.Context, token string) (id string, err error) { +func (lm *loggingMiddleware) Identify(ctx context.Context, token string) (id string, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), @@ -398,7 +399,7 @@ func (lm *loggingMiddleware) Identify(ctx context.Context, token string) (id str return lm.svc.Identify(ctx, token) } -func (lm *loggingMiddleware) OAuthCallback(ctx context.Context, client mgclients.Client) (token *magistrala.Token, err error) { +func (lm *loggingMiddleware) OAuthCallback(ctx context.Context, client mgclients.Client) (token *magistrala.Token, err errors.Error) { defer func(begin time.Time) { args := []any{ slog.String("duration", time.Since(begin).String()), diff --git a/users/api/metrics.go b/users/api/metrics.go index ea4328e818..4521cd0630 100644 --- a/users/api/metrics.go +++ b/users/api/metrics.go @@ -9,6 +9,7 @@ import ( "github.com/absmach/magistrala" mgclients "github.com/absmach/magistrala/pkg/clients" + "github.com/absmach/magistrala/pkg/errors" "github.com/absmach/magistrala/users" "github.com/go-kit/kit/metrics" ) @@ -31,7 +32,7 @@ func MetricsMiddleware(svc users.Service, counter metrics.Counter, latency metri } // RegisterClient instruments RegisterClient method with metrics. -func (ms *metricsMiddleware) RegisterClient(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, error) { +func (ms *metricsMiddleware) RegisterClient(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "register_client").Add(1) ms.latency.With("method", "register_client").Observe(time.Since(begin).Seconds()) @@ -40,7 +41,7 @@ func (ms *metricsMiddleware) RegisterClient(ctx context.Context, token string, c } // IssueToken instruments IssueToken method with metrics. -func (ms *metricsMiddleware) IssueToken(ctx context.Context, identity, secret, domainID string) (*magistrala.Token, error) { +func (ms *metricsMiddleware) IssueToken(ctx context.Context, identity, secret, domainID string) (*magistrala.Token, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "issue_token").Add(1) ms.latency.With("method", "issue_token").Observe(time.Since(begin).Seconds()) @@ -49,7 +50,7 @@ func (ms *metricsMiddleware) IssueToken(ctx context.Context, identity, secret, d } // RefreshToken instruments RefreshToken method with metrics. -func (ms *metricsMiddleware) RefreshToken(ctx context.Context, refreshToken, domainID string) (token *magistrala.Token, err error) { +func (ms *metricsMiddleware) RefreshToken(ctx context.Context, refreshToken, domainID string) (token *magistrala.Token, err errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "refresh_token").Add(1) ms.latency.With("method", "refresh_token").Observe(time.Since(begin).Seconds()) @@ -58,7 +59,7 @@ func (ms *metricsMiddleware) RefreshToken(ctx context.Context, refreshToken, dom } // ViewClient instruments ViewClient method with metrics. -func (ms *metricsMiddleware) ViewClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (ms *metricsMiddleware) ViewClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "view_client").Add(1) ms.latency.With("method", "view_client").Observe(time.Since(begin).Seconds()) @@ -67,7 +68,7 @@ func (ms *metricsMiddleware) ViewClient(ctx context.Context, token, id string) ( } // ViewProfile instruments ViewProfile method with metrics. -func (ms *metricsMiddleware) ViewProfile(ctx context.Context, token string) (mgclients.Client, error) { +func (ms *metricsMiddleware) ViewProfile(ctx context.Context, token string) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "view_profile").Add(1) ms.latency.With("method", "view_profile").Observe(time.Since(begin).Seconds()) @@ -76,7 +77,7 @@ func (ms *metricsMiddleware) ViewProfile(ctx context.Context, token string) (mgc } // ListClients instruments ListClients method with metrics. -func (ms *metricsMiddleware) ListClients(ctx context.Context, token string, pm mgclients.Page) (mgclients.ClientsPage, error) { +func (ms *metricsMiddleware) ListClients(ctx context.Context, token string, pm mgclients.Page) (mgclients.ClientsPage, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "list_clients").Add(1) ms.latency.With("method", "list_clients").Observe(time.Since(begin).Seconds()) @@ -85,7 +86,7 @@ func (ms *metricsMiddleware) ListClients(ctx context.Context, token string, pm m } // UpdateClient instruments UpdateClient method with metrics. -func (ms *metricsMiddleware) UpdateClient(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, error) { +func (ms *metricsMiddleware) UpdateClient(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "update_client_name_and_metadata").Add(1) ms.latency.With("method", "update_client_name_and_metadata").Observe(time.Since(begin).Seconds()) @@ -94,7 +95,7 @@ func (ms *metricsMiddleware) UpdateClient(ctx context.Context, token string, cli } // UpdateClientTags instruments UpdateClientTags method with metrics. -func (ms *metricsMiddleware) UpdateClientTags(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, error) { +func (ms *metricsMiddleware) UpdateClientTags(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "update_client_tags").Add(1) ms.latency.With("method", "update_client_tags").Observe(time.Since(begin).Seconds()) @@ -103,7 +104,7 @@ func (ms *metricsMiddleware) UpdateClientTags(ctx context.Context, token string, } // UpdateClientIdentity instruments UpdateClientIdentity method with metrics. -func (ms *metricsMiddleware) UpdateClientIdentity(ctx context.Context, token, id, identity string) (mgclients.Client, error) { +func (ms *metricsMiddleware) UpdateClientIdentity(ctx context.Context, token, id, identity string) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "update_client_identity").Add(1) ms.latency.With("method", "update_client_identity").Observe(time.Since(begin).Seconds()) @@ -112,7 +113,7 @@ func (ms *metricsMiddleware) UpdateClientIdentity(ctx context.Context, token, id } // UpdateClientSecret instruments UpdateClientSecret method with metrics. -func (ms *metricsMiddleware) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (mgclients.Client, error) { +func (ms *metricsMiddleware) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "update_client_secret").Add(1) ms.latency.With("method", "update_client_secret").Observe(time.Since(begin).Seconds()) @@ -121,7 +122,7 @@ func (ms *metricsMiddleware) UpdateClientSecret(ctx context.Context, token, oldS } // GenerateResetToken instruments GenerateResetToken method with metrics. -func (ms *metricsMiddleware) GenerateResetToken(ctx context.Context, email, host string) error { +func (ms *metricsMiddleware) GenerateResetToken(ctx context.Context, email, host string) errors.Error { defer func(begin time.Time) { ms.counter.With("method", "generate_reset_token").Add(1) ms.latency.With("method", "generate_reset_token").Observe(time.Since(begin).Seconds()) @@ -130,7 +131,7 @@ func (ms *metricsMiddleware) GenerateResetToken(ctx context.Context, email, host } // ResetSecret instruments ResetSecret method with metrics. -func (ms *metricsMiddleware) ResetSecret(ctx context.Context, token, secret string) error { +func (ms *metricsMiddleware) ResetSecret(ctx context.Context, token, secret string) errors.Error { defer func(begin time.Time) { ms.counter.With("method", "reset_secret").Add(1) ms.latency.With("method", "reset_secret").Observe(time.Since(begin).Seconds()) @@ -139,7 +140,7 @@ func (ms *metricsMiddleware) ResetSecret(ctx context.Context, token, secret stri } // SendPasswordReset instruments SendPasswordReset method with metrics. -func (ms *metricsMiddleware) SendPasswordReset(ctx context.Context, host, email, user, token string) error { +func (ms *metricsMiddleware) SendPasswordReset(ctx context.Context, host, email, user, token string) errors.Error { defer func(begin time.Time) { ms.counter.With("method", "send_password_reset").Add(1) ms.latency.With("method", "send_password_reset").Observe(time.Since(begin).Seconds()) @@ -148,7 +149,7 @@ func (ms *metricsMiddleware) SendPasswordReset(ctx context.Context, host, email, } // UpdateClientRole instruments UpdateClientRole method with metrics. -func (ms *metricsMiddleware) UpdateClientRole(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, error) { +func (ms *metricsMiddleware) UpdateClientRole(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "update_client_role").Add(1) ms.latency.With("method", "update_client_role").Observe(time.Since(begin).Seconds()) @@ -157,7 +158,7 @@ func (ms *metricsMiddleware) UpdateClientRole(ctx context.Context, token string, } // EnableClient instruments EnableClient method with metrics. -func (ms *metricsMiddleware) EnableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (ms *metricsMiddleware) EnableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "enable_client").Add(1) ms.latency.With("method", "enable_client").Observe(time.Since(begin).Seconds()) @@ -166,7 +167,7 @@ func (ms *metricsMiddleware) EnableClient(ctx context.Context, token, id string) } // DisableClient instruments DisableClient method with metrics. -func (ms *metricsMiddleware) DisableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (ms *metricsMiddleware) DisableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "disable_client").Add(1) ms.latency.With("method", "disable_client").Observe(time.Since(begin).Seconds()) @@ -175,7 +176,7 @@ func (ms *metricsMiddleware) DisableClient(ctx context.Context, token, id string } // ListMembers instruments ListMembers method with metrics. -func (ms *metricsMiddleware) ListMembers(ctx context.Context, token, objectKind, objectID string, pm mgclients.Page) (mp mgclients.MembersPage, err error) { +func (ms *metricsMiddleware) ListMembers(ctx context.Context, token, objectKind, objectID string, pm mgclients.Page) (mp mgclients.MembersPage, err errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "list_members").Add(1) ms.latency.With("method", "list_members").Observe(time.Since(begin).Seconds()) @@ -184,7 +185,7 @@ func (ms *metricsMiddleware) ListMembers(ctx context.Context, token, objectKind, } // Identify instruments Identify method with metrics. -func (ms *metricsMiddleware) Identify(ctx context.Context, token string) (string, error) { +func (ms *metricsMiddleware) Identify(ctx context.Context, token string) (string, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "identify").Add(1) ms.latency.With("method", "identify").Observe(time.Since(begin).Seconds()) @@ -192,7 +193,7 @@ func (ms *metricsMiddleware) Identify(ctx context.Context, token string) (string return ms.svc.Identify(ctx, token) } -func (ms *metricsMiddleware) OAuthCallback(ctx context.Context, client mgclients.Client) (*magistrala.Token, error) { +func (ms *metricsMiddleware) OAuthCallback(ctx context.Context, client mgclients.Client) (*magistrala.Token, errors.Error) { defer func(begin time.Time) { ms.counter.With("method", "oauth_callback").Add(1) ms.latency.With("method", "oauth_callback").Observe(time.Since(begin).Seconds()) diff --git a/users/clients.go b/users/clients.go index 2f359d43e1..197c980334 100644 --- a/users/clients.go +++ b/users/clients.go @@ -8,6 +8,7 @@ import ( "github.com/absmach/magistrala" "github.com/absmach/magistrala/pkg/clients" + "github.com/absmach/magistrala/pkg/errors" ) // Service specifies an API that must be fullfiled by the domain service @@ -17,64 +18,64 @@ import ( type Service interface { // RegisterClient creates new client. In case of the failed registration, a // non-nil error value is returned. - RegisterClient(ctx context.Context, token string, client clients.Client) (clients.Client, error) + RegisterClient(ctx context.Context, token string, client clients.Client) (clients.Client, errors.Error) // ViewClient retrieves client info for a given client ID and an authorized token. - ViewClient(ctx context.Context, token, id string) (clients.Client, error) + ViewClient(ctx context.Context, token, id string) (clients.Client, errors.Error) // ViewProfile retrieves client info for a given token. - ViewProfile(ctx context.Context, token string) (clients.Client, error) + ViewProfile(ctx context.Context, token string) (clients.Client, errors.Error) // ListClients retrieves clients list for a valid auth token. - ListClients(ctx context.Context, token string, pm clients.Page) (clients.ClientsPage, error) + ListClients(ctx context.Context, token string, pm clients.Page) (clients.ClientsPage, errors.Error) // ListMembers retrieves everything that is assigned to a group/thing identified by objectID. - ListMembers(ctx context.Context, token, objectKind, objectID string, pm clients.Page) (clients.MembersPage, error) + ListMembers(ctx context.Context, token, objectKind, objectID string, pm clients.Page) (clients.MembersPage, errors.Error) // UpdateClient updates the client's name and metadata. - UpdateClient(ctx context.Context, token string, client clients.Client) (clients.Client, error) + UpdateClient(ctx context.Context, token string, client clients.Client) (clients.Client, errors.Error) // UpdateClientTags updates the client's tags. - UpdateClientTags(ctx context.Context, token string, client clients.Client) (clients.Client, error) + UpdateClientTags(ctx context.Context, token string, client clients.Client) (clients.Client, errors.Error) // UpdateClientIdentity updates the client's identity. - UpdateClientIdentity(ctx context.Context, token, id, identity string) (clients.Client, error) + UpdateClientIdentity(ctx context.Context, token, id, identity string) (clients.Client, errors.Error) // GenerateResetToken email where mail will be sent. // host is used for generating reset link. - GenerateResetToken(ctx context.Context, email, host string) error + GenerateResetToken(ctx context.Context, email, host string) errors.Error // UpdateClientSecret updates the client's secret. - UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (clients.Client, error) + UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (clients.Client, errors.Error) // ResetSecret change users secret in reset flow. // token can be authentication token or secret reset token. - ResetSecret(ctx context.Context, resetToken, secret string) error + ResetSecret(ctx context.Context, resetToken, secret string) errors.Error // SendPasswordReset sends reset password link to email. - SendPasswordReset(ctx context.Context, host, email, user, token string) error + SendPasswordReset(ctx context.Context, host, email, user, token string) errors.Error // UpdateClientRole updates the client's Role. - UpdateClientRole(ctx context.Context, token string, client clients.Client) (clients.Client, error) + UpdateClientRole(ctx context.Context, token string, client clients.Client) (clients.Client, errors.Error) // EnableClient logically enableds the client identified with the provided ID. - EnableClient(ctx context.Context, token, id string) (clients.Client, error) + EnableClient(ctx context.Context, token, id string) (clients.Client, errors.Error) // DisableClient logically disables the client identified with the provided ID. - DisableClient(ctx context.Context, token, id string) (clients.Client, error) + DisableClient(ctx context.Context, token, id string) (clients.Client, errors.Error) // Identify returns the client id from the given token. - Identify(ctx context.Context, tkn string) (string, error) + Identify(ctx context.Context, tkn string) (string, errors.Error) // IssueToken issues a new access and refresh token. - IssueToken(ctx context.Context, identity, secret, domainID string) (*magistrala.Token, error) + IssueToken(ctx context.Context, identity, secret, domainID string) (*magistrala.Token, errors.Error) // RefreshToken refreshes expired access tokens. // After an access token expires, the refresh token is used to get // a new pair of access and refresh tokens. - RefreshToken(ctx context.Context, accessToken, domainID string) (*magistrala.Token, error) + RefreshToken(ctx context.Context, accessToken, domainID string) (*magistrala.Token, errors.Error) // OAuthCallback handles the callback from any supported OAuth provider. // It processes the OAuth tokens and either signs in or signs up the user based on the provided state. - OAuthCallback(ctx context.Context, client clients.Client) (*magistrala.Token, error) + OAuthCallback(ctx context.Context, client clients.Client) (*magistrala.Token, errors.Error) } diff --git a/users/emailer.go b/users/emailer.go index 9f0c5396ca..b71bc9b730 100644 --- a/users/emailer.go +++ b/users/emailer.go @@ -3,10 +3,12 @@ package users +import "github.com/absmach/magistrala/pkg/errors" + // Emailer wrapper around the email. // //go:generate mockery --name Emailer --output=./mocks --filename emailer.go --quiet --note "Copyright (c) Abstract Machines" type Emailer interface { // SendPasswordReset sends an email to the user with a link to reset the password. - SendPasswordReset(To []string, host, user, token string) error + SendPasswordReset(To []string, host, user, token string) errors.Error } diff --git a/users/emailer/emailer.go b/users/emailer/emailer.go index 030a74ab9c..c3b47a86fd 100644 --- a/users/emailer/emailer.go +++ b/users/emailer/emailer.go @@ -7,6 +7,7 @@ import ( "fmt" "github.com/absmach/magistrala/internal/email" + "github.com/absmach/magistrala/pkg/errors" "github.com/absmach/magistrala/users" ) @@ -18,12 +19,12 @@ type emailer struct { } // New creates new emailer utility. -func New(url string, c *email.Config) (users.Emailer, error) { +func New(url string, c *email.Config) (users.Emailer, errors.Error) { e, err := email.New(c) - return &emailer{resetURL: url, agent: e}, err + return &emailer{resetURL: url, agent: e}, errors.Cast(err) } -func (e *emailer) SendPasswordReset(to []string, host, user, token string) error { +func (e *emailer) SendPasswordReset(to []string, host, user, token string) errors.Error { url := fmt.Sprintf("%s%s?token=%s", host, e.resetURL, token) - return e.agent.Send(to, "", "Password Reset Request", "", user, url, "") + return errors.Cast(e.agent.Send(to, "", "Password Reset Request", "", user, url, "")) } diff --git a/users/events/streams.go b/users/events/streams.go index f838c06080..b41cf57e89 100644 --- a/users/events/streams.go +++ b/users/events/streams.go @@ -8,6 +8,7 @@ import ( "github.com/absmach/magistrala" mgclients "github.com/absmach/magistrala/pkg/clients" + "github.com/absmach/magistrala/pkg/errors" "github.com/absmach/magistrala/pkg/events" "github.com/absmach/magistrala/pkg/events/store" "github.com/absmach/magistrala/users" @@ -24,10 +25,10 @@ type eventStore struct { // NewEventStoreMiddleware returns wrapper around users service that sends // events to event store. -func NewEventStoreMiddleware(ctx context.Context, svc users.Service, url string) (users.Service, error) { +func NewEventStoreMiddleware(ctx context.Context, svc users.Service, url string) (users.Service, errors.Error) { publisher, err := store.NewPublisher(ctx, url, streamID) if err != nil { - return nil, err + return nil, errors.Cast(err) } return &eventStore{ @@ -36,7 +37,7 @@ func NewEventStoreMiddleware(ctx context.Context, svc users.Service, url string) }, nil } -func (es *eventStore) RegisterClient(ctx context.Context, token string, user mgclients.Client) (mgclients.Client, error) { +func (es *eventStore) RegisterClient(ctx context.Context, token string, user mgclients.Client) (mgclients.Client, errors.Error) { user, err := es.svc.RegisterClient(ctx, token, user) if err != nil { return user, err @@ -47,13 +48,13 @@ func (es *eventStore) RegisterClient(ctx context.Context, token string, user mgc } if err := es.Publish(ctx, event); err != nil { - return user, err + return user, errors.Cast(err) } return user, nil } -func (es *eventStore) UpdateClient(ctx context.Context, token string, user mgclients.Client) (mgclients.Client, error) { +func (es *eventStore) UpdateClient(ctx context.Context, token string, user mgclients.Client) (mgclients.Client, errors.Error) { user, err := es.svc.UpdateClient(ctx, token, user) if err != nil { return user, err @@ -62,7 +63,7 @@ func (es *eventStore) UpdateClient(ctx context.Context, token string, user mgcli return es.update(ctx, "", user) } -func (es *eventStore) UpdateClientRole(ctx context.Context, token string, user mgclients.Client) (mgclients.Client, error) { +func (es *eventStore) UpdateClientRole(ctx context.Context, token string, user mgclients.Client) (mgclients.Client, errors.Error) { user, err := es.svc.UpdateClientRole(ctx, token, user) if err != nil { return user, err @@ -71,7 +72,7 @@ func (es *eventStore) UpdateClientRole(ctx context.Context, token string, user m return es.update(ctx, "role", user) } -func (es *eventStore) UpdateClientTags(ctx context.Context, token string, user mgclients.Client) (mgclients.Client, error) { +func (es *eventStore) UpdateClientTags(ctx context.Context, token string, user mgclients.Client) (mgclients.Client, errors.Error) { user, err := es.svc.UpdateClientTags(ctx, token, user) if err != nil { return user, err @@ -80,7 +81,7 @@ func (es *eventStore) UpdateClientTags(ctx context.Context, token string, user m return es.update(ctx, "tags", user) } -func (es *eventStore) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (mgclients.Client, error) { +func (es *eventStore) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (mgclients.Client, errors.Error) { user, err := es.svc.UpdateClientSecret(ctx, token, oldSecret, newSecret) if err != nil { return user, err @@ -89,7 +90,7 @@ func (es *eventStore) UpdateClientSecret(ctx context.Context, token, oldSecret, return es.update(ctx, "secret", user) } -func (es *eventStore) UpdateClientIdentity(ctx context.Context, token, id, identity string) (mgclients.Client, error) { +func (es *eventStore) UpdateClientIdentity(ctx context.Context, token, id, identity string) (mgclients.Client, errors.Error) { user, err := es.svc.UpdateClientIdentity(ctx, token, id, identity) if err != nil { return user, err @@ -98,19 +99,19 @@ func (es *eventStore) UpdateClientIdentity(ctx context.Context, token, id, ident return es.update(ctx, "identity", user) } -func (es *eventStore) update(ctx context.Context, operation string, user mgclients.Client) (mgclients.Client, error) { +func (es *eventStore) update(ctx context.Context, operation string, user mgclients.Client) (mgclients.Client, errors.Error) { event := updateClientEvent{ user, operation, } if err := es.Publish(ctx, event); err != nil { - return user, err + return user, errors.Cast(err) } return user, nil } -func (es *eventStore) ViewClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (es *eventStore) ViewClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { user, err := es.svc.ViewClient(ctx, token, id) if err != nil { return user, err @@ -121,13 +122,13 @@ func (es *eventStore) ViewClient(ctx context.Context, token, id string) (mgclien } if err := es.Publish(ctx, event); err != nil { - return user, err + return user, errors.Cast(err) } return user, nil } -func (es *eventStore) ViewProfile(ctx context.Context, token string) (mgclients.Client, error) { +func (es *eventStore) ViewProfile(ctx context.Context, token string) (mgclients.Client, errors.Error) { user, err := es.svc.ViewProfile(ctx, token) if err != nil { return user, err @@ -138,13 +139,13 @@ func (es *eventStore) ViewProfile(ctx context.Context, token string) (mgclients. } if err := es.Publish(ctx, event); err != nil { - return user, err + return user, errors.Cast(err) } return user, nil } -func (es *eventStore) ListClients(ctx context.Context, token string, pm mgclients.Page) (mgclients.ClientsPage, error) { +func (es *eventStore) ListClients(ctx context.Context, token string, pm mgclients.Page) (mgclients.ClientsPage, errors.Error) { cp, err := es.svc.ListClients(ctx, token, pm) if err != nil { return cp, err @@ -154,13 +155,13 @@ func (es *eventStore) ListClients(ctx context.Context, token string, pm mgclient } if err := es.Publish(ctx, event); err != nil { - return cp, err + return cp, errors.Cast(err) } return cp, nil } -func (es *eventStore) ListMembers(ctx context.Context, token, objectKind, objectID string, pm mgclients.Page) (mgclients.MembersPage, error) { +func (es *eventStore) ListMembers(ctx context.Context, token, objectKind, objectID string, pm mgclients.Page) (mgclients.MembersPage, errors.Error) { mp, err := es.svc.ListMembers(ctx, token, objectKind, objectID, pm) if err != nil { return mp, err @@ -170,13 +171,13 @@ func (es *eventStore) ListMembers(ctx context.Context, token, objectKind, object } if err := es.Publish(ctx, event); err != nil { - return mp, err + return mp, errors.Cast(err) } return mp, nil } -func (es *eventStore) EnableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (es *eventStore) EnableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { user, err := es.svc.EnableClient(ctx, token, id) if err != nil { return user, err @@ -185,7 +186,7 @@ func (es *eventStore) EnableClient(ctx context.Context, token, id string) (mgcli return es.delete(ctx, user) } -func (es *eventStore) DisableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (es *eventStore) DisableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { user, err := es.svc.DisableClient(ctx, token, id) if err != nil { return user, err @@ -194,7 +195,7 @@ func (es *eventStore) DisableClient(ctx context.Context, token, id string) (mgcl return es.delete(ctx, user) } -func (es *eventStore) delete(ctx context.Context, user mgclients.Client) (mgclients.Client, error) { +func (es *eventStore) delete(ctx context.Context, user mgclients.Client) (mgclients.Client, errors.Error) { event := removeClientEvent{ id: user.ID, updatedAt: user.UpdatedAt, @@ -203,13 +204,13 @@ func (es *eventStore) delete(ctx context.Context, user mgclients.Client) (mgclie } if err := es.Publish(ctx, event); err != nil { - return user, err + return user, errors.Cast(err) } return user, nil } -func (es *eventStore) Identify(ctx context.Context, token string) (string, error) { +func (es *eventStore) Identify(ctx context.Context, token string) (string, errors.Error) { userID, err := es.svc.Identify(ctx, token) if err != nil { return userID, err @@ -220,13 +221,13 @@ func (es *eventStore) Identify(ctx context.Context, token string) (string, error } if err := es.Publish(ctx, event); err != nil { - return userID, err + return userID, errors.Cast(err) } return userID, nil } -func (es *eventStore) GenerateResetToken(ctx context.Context, email, host string) error { +func (es *eventStore) GenerateResetToken(ctx context.Context, email, host string) errors.Error { if err := es.svc.GenerateResetToken(ctx, email, host); err != nil { return err } @@ -236,10 +237,10 @@ func (es *eventStore) GenerateResetToken(ctx context.Context, email, host string host: host, } - return es.Publish(ctx, event) + return errors.Cast(es.Publish(ctx, event)) } -func (es *eventStore) IssueToken(ctx context.Context, identity, secret, domainID string) (*magistrala.Token, error) { +func (es *eventStore) IssueToken(ctx context.Context, identity, secret, domainID string) (*magistrala.Token, errors.Error) { token, err := es.svc.IssueToken(ctx, identity, secret, domainID) if err != nil { return token, err @@ -251,13 +252,13 @@ func (es *eventStore) IssueToken(ctx context.Context, identity, secret, domainID } if err := es.Publish(ctx, event); err != nil { - return token, err + return token, errors.Cast(err) } return token, nil } -func (es *eventStore) RefreshToken(ctx context.Context, refreshToken, domainID string) (*magistrala.Token, error) { +func (es *eventStore) RefreshToken(ctx context.Context, refreshToken, domainID string) (*magistrala.Token, errors.Error) { token, err := es.svc.RefreshToken(ctx, refreshToken, domainID) if err != nil { return token, err @@ -266,23 +267,23 @@ func (es *eventStore) RefreshToken(ctx context.Context, refreshToken, domainID s event := refreshTokenEvent{domainID: domainID} if err := es.Publish(ctx, event); err != nil { - return token, err + return token, errors.Cast(err) } return token, nil } -func (es *eventStore) ResetSecret(ctx context.Context, resetToken, secret string) error { +func (es *eventStore) ResetSecret(ctx context.Context, resetToken, secret string) errors.Error { if err := es.svc.ResetSecret(ctx, resetToken, secret); err != nil { return err } event := resetSecretEvent{} - return es.Publish(ctx, event) + return errors.Cast(es.Publish(ctx, event)) } -func (es *eventStore) SendPasswordReset(ctx context.Context, host, email, user, token string) error { +func (es *eventStore) SendPasswordReset(ctx context.Context, host, email, user, token string) errors.Error { if err := es.svc.SendPasswordReset(ctx, host, email, user, token); err != nil { return err } @@ -293,10 +294,10 @@ func (es *eventStore) SendPasswordReset(ctx context.Context, host, email, user, user: user, } - return es.Publish(ctx, event) + return errors.Cast(es.Publish(ctx, event)) } -func (es *eventStore) OAuthCallback(ctx context.Context, client mgclients.Client) (*magistrala.Token, error) { +func (es *eventStore) OAuthCallback(ctx context.Context, client mgclients.Client) (*magistrala.Token, errors.Error) { token, err := es.svc.OAuthCallback(ctx, client) if err != nil { return token, err @@ -307,7 +308,7 @@ func (es *eventStore) OAuthCallback(ctx context.Context, client mgclients.Client } if err := es.Publish(ctx, event); err != nil { - return token, err + return token, errors.Cast(err) } return token, nil diff --git a/users/hasher.go b/users/hasher.go index c8fa2a875d..bf58a8092b 100644 --- a/users/hasher.go +++ b/users/hasher.go @@ -3,15 +3,17 @@ package users +import "github.com/absmach/magistrala/pkg/errors" + // Hasher specifies an API for generating hashes of an arbitrary textual // content. // //go:generate mockery --name Hasher --output=./mocks --filename hasher.go --quiet --note "Copyright (c) Abstract Machines" type Hasher interface { // Hash generates the hashed string from plain-text. - Hash(string) (string, error) + Hash(string) (string, errors.Error) // Compare compares plain-text version to the hashed one. An error should // indicate failed comparison. - Compare(string, string) error + Compare(string, string) errors.Error } diff --git a/users/hasher/hasher.go b/users/hasher/hasher.go index 698acf7030..63e4efde0e 100644 --- a/users/hasher/hasher.go +++ b/users/hasher/hasher.go @@ -25,7 +25,7 @@ func New() users.Hasher { return &bcryptHasher{} } -func (bh *bcryptHasher) Hash(pwd string) (string, error) { +func (bh *bcryptHasher) Hash(pwd string) (string, errors.Error) { hash, err := bcrypt.GenerateFromPassword([]byte(pwd), cost) if err != nil { return "", errors.Wrap(errHashPassword, err) @@ -34,7 +34,7 @@ func (bh *bcryptHasher) Hash(pwd string) (string, error) { return string(hash), nil } -func (bh *bcryptHasher) Compare(plain, hashed string) error { +func (bh *bcryptHasher) Compare(plain, hashed string) errors.Error { if err := bcrypt.CompareHashAndPassword([]byte(hashed), []byte(plain)); err != nil { return errors.Wrap(errComparePassword, err) } diff --git a/users/mocks/emailer.go b/users/mocks/emailer.go index 4c331dc7dd..6dd7e0297d 100644 --- a/users/mocks/emailer.go +++ b/users/mocks/emailer.go @@ -4,7 +4,10 @@ package mocks -import mock "github.com/stretchr/testify/mock" +import ( + errors "github.com/absmach/magistrala/pkg/errors" + mock "github.com/stretchr/testify/mock" +) // Emailer is an autogenerated mock type for the Emailer type type Emailer struct { @@ -12,18 +15,20 @@ type Emailer struct { } // SendPasswordReset provides a mock function with given fields: To, host, user, token -func (_m *Emailer) SendPasswordReset(To []string, host string, user string, token string) error { +func (_m *Emailer) SendPasswordReset(To []string, host string, user string, token string) errors.Error { ret := _m.Called(To, host, user, token) if len(ret) == 0 { panic("no return value specified for SendPasswordReset") } - var r0 error - if rf, ok := ret.Get(0).(func([]string, string, string, string) error); ok { + var r0 errors.Error + if rf, ok := ret.Get(0).(func([]string, string, string, string) errors.Error); ok { r0 = rf(To, host, user, token) } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).(errors.Error) + } } return r0 diff --git a/users/mocks/hasher.go b/users/mocks/hasher.go index b1b1f01691..c7ff1b3117 100644 --- a/users/mocks/hasher.go +++ b/users/mocks/hasher.go @@ -4,7 +4,10 @@ package mocks -import mock "github.com/stretchr/testify/mock" +import ( + errors "github.com/absmach/magistrala/pkg/errors" + mock "github.com/stretchr/testify/mock" +) // Hasher is an autogenerated mock type for the Hasher type type Hasher struct { @@ -12,25 +15,27 @@ type Hasher struct { } // Compare provides a mock function with given fields: _a0, _a1 -func (_m *Hasher) Compare(_a0 string, _a1 string) error { +func (_m *Hasher) Compare(_a0 string, _a1 string) errors.Error { ret := _m.Called(_a0, _a1) if len(ret) == 0 { panic("no return value specified for Compare") } - var r0 error - if rf, ok := ret.Get(0).(func(string, string) error); ok { + var r0 errors.Error + if rf, ok := ret.Get(0).(func(string, string) errors.Error); ok { r0 = rf(_a0, _a1) } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).(errors.Error) + } } return r0 } // Hash provides a mock function with given fields: _a0 -func (_m *Hasher) Hash(_a0 string) (string, error) { +func (_m *Hasher) Hash(_a0 string) (string, errors.Error) { ret := _m.Called(_a0) if len(ret) == 0 { @@ -38,8 +43,8 @@ func (_m *Hasher) Hash(_a0 string) (string, error) { } var r0 string - var r1 error - if rf, ok := ret.Get(0).(func(string) (string, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(string) (string, errors.Error)); ok { return rf(_a0) } if rf, ok := ret.Get(0).(func(string) string); ok { @@ -48,10 +53,12 @@ func (_m *Hasher) Hash(_a0 string) (string, error) { r0 = ret.Get(0).(string) } - if rf, ok := ret.Get(1).(func(string) error); ok { + if rf, ok := ret.Get(1).(func(string) errors.Error); ok { r1 = rf(_a0) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 diff --git a/users/mocks/repository.go b/users/mocks/repository.go index 3fbff82d4b..b50f6ed728 100644 --- a/users/mocks/repository.go +++ b/users/mocks/repository.go @@ -9,6 +9,8 @@ import ( clients "github.com/absmach/magistrala/pkg/clients" + errors "github.com/absmach/magistrala/pkg/errors" + mock "github.com/stretchr/testify/mock" ) @@ -18,7 +20,7 @@ type Repository struct { } // ChangeStatus provides a mock function with given fields: ctx, client -func (_m *Repository) ChangeStatus(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) ChangeStatus(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -26,8 +28,8 @@ func (_m *Repository) ChangeStatus(ctx context.Context, client clients.Client) ( } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -36,35 +38,39 @@ func (_m *Repository) ChangeStatus(ctx context.Context, client clients.Client) ( r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // CheckSuperAdmin provides a mock function with given fields: ctx, adminID -func (_m *Repository) CheckSuperAdmin(ctx context.Context, adminID string) error { +func (_m *Repository) CheckSuperAdmin(ctx context.Context, adminID string) errors.Error { ret := _m.Called(ctx, adminID) if len(ret) == 0 { panic("no return value specified for CheckSuperAdmin") } - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string) error); ok { + var r0 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string) errors.Error); ok { r0 = rf(ctx, adminID) } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).(errors.Error) + } } return r0 } // RetrieveAll provides a mock function with given fields: ctx, pm -func (_m *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clients.ClientsPage, error) { +func (_m *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clients.ClientsPage, errors.Error) { ret := _m.Called(ctx, pm) if len(ret) == 0 { @@ -72,8 +78,8 @@ func (_m *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clients } var r0 clients.ClientsPage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Page) (clients.ClientsPage, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Page) (clients.ClientsPage, errors.Error)); ok { return rf(ctx, pm) } if rf, ok := ret.Get(0).(func(context.Context, clients.Page) clients.ClientsPage); ok { @@ -82,17 +88,19 @@ func (_m *Repository) RetrieveAll(ctx context.Context, pm clients.Page) (clients r0 = ret.Get(0).(clients.ClientsPage) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Page) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Page) errors.Error); ok { r1 = rf(ctx, pm) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // RetrieveAllBasicInfo provides a mock function with given fields: ctx, pm -func (_m *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Page) (clients.ClientsPage, error) { +func (_m *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Page) (clients.ClientsPage, errors.Error) { ret := _m.Called(ctx, pm) if len(ret) == 0 { @@ -100,8 +108,8 @@ func (_m *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Page) } var r0 clients.ClientsPage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Page) (clients.ClientsPage, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Page) (clients.ClientsPage, errors.Error)); ok { return rf(ctx, pm) } if rf, ok := ret.Get(0).(func(context.Context, clients.Page) clients.ClientsPage); ok { @@ -110,17 +118,19 @@ func (_m *Repository) RetrieveAllBasicInfo(ctx context.Context, pm clients.Page) r0 = ret.Get(0).(clients.ClientsPage) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Page) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Page) errors.Error); ok { r1 = rf(ctx, pm) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // RetrieveAllByIDs provides a mock function with given fields: ctx, pm -func (_m *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) (clients.ClientsPage, error) { +func (_m *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) (clients.ClientsPage, errors.Error) { ret := _m.Called(ctx, pm) if len(ret) == 0 { @@ -128,8 +138,8 @@ func (_m *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) (cl } var r0 clients.ClientsPage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Page) (clients.ClientsPage, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Page) (clients.ClientsPage, errors.Error)); ok { return rf(ctx, pm) } if rf, ok := ret.Get(0).(func(context.Context, clients.Page) clients.ClientsPage); ok { @@ -138,17 +148,19 @@ func (_m *Repository) RetrieveAllByIDs(ctx context.Context, pm clients.Page) (cl r0 = ret.Get(0).(clients.ClientsPage) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Page) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Page) errors.Error); ok { r1 = rf(ctx, pm) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // RetrieveByID provides a mock function with given fields: ctx, id -func (_m *Repository) RetrieveByID(ctx context.Context, id string) (clients.Client, error) { +func (_m *Repository) RetrieveByID(ctx context.Context, id string) (clients.Client, errors.Error) { ret := _m.Called(ctx, id) if len(ret) == 0 { @@ -156,8 +168,8 @@ func (_m *Repository) RetrieveByID(ctx context.Context, id string) (clients.Clie } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string) (clients.Client, errors.Error)); ok { return rf(ctx, id) } if rf, ok := ret.Get(0).(func(context.Context, string) clients.Client); ok { @@ -166,17 +178,19 @@ func (_m *Repository) RetrieveByID(ctx context.Context, id string) (clients.Clie r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string) errors.Error); ok { r1 = rf(ctx, id) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // RetrieveByIdentity provides a mock function with given fields: ctx, identity -func (_m *Repository) RetrieveByIdentity(ctx context.Context, identity string) (clients.Client, error) { +func (_m *Repository) RetrieveByIdentity(ctx context.Context, identity string) (clients.Client, errors.Error) { ret := _m.Called(ctx, identity) if len(ret) == 0 { @@ -184,8 +198,8 @@ func (_m *Repository) RetrieveByIdentity(ctx context.Context, identity string) ( } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string) (clients.Client, errors.Error)); ok { return rf(ctx, identity) } if rf, ok := ret.Get(0).(func(context.Context, string) clients.Client); ok { @@ -194,17 +208,19 @@ func (_m *Repository) RetrieveByIdentity(ctx context.Context, identity string) ( r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string) errors.Error); ok { r1 = rf(ctx, identity) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // Save provides a mock function with given fields: ctx, client -func (_m *Repository) Save(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) Save(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -212,8 +228,8 @@ func (_m *Repository) Save(ctx context.Context, client clients.Client) (clients. } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -222,17 +238,19 @@ func (_m *Repository) Save(ctx context.Context, client clients.Client) (clients. r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // Update provides a mock function with given fields: ctx, client -func (_m *Repository) Update(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) Update(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -240,8 +258,8 @@ func (_m *Repository) Update(ctx context.Context, client clients.Client) (client } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -250,17 +268,19 @@ func (_m *Repository) Update(ctx context.Context, client clients.Client) (client r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateIdentity provides a mock function with given fields: ctx, client -func (_m *Repository) UpdateIdentity(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) UpdateIdentity(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -268,8 +288,8 @@ func (_m *Repository) UpdateIdentity(ctx context.Context, client clients.Client) } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -278,17 +298,19 @@ func (_m *Repository) UpdateIdentity(ctx context.Context, client clients.Client) r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateRole provides a mock function with given fields: ctx, client -func (_m *Repository) UpdateRole(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) UpdateRole(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -296,8 +318,8 @@ func (_m *Repository) UpdateRole(ctx context.Context, client clients.Client) (cl } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -306,17 +328,19 @@ func (_m *Repository) UpdateRole(ctx context.Context, client clients.Client) (cl r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateSecret provides a mock function with given fields: ctx, client -func (_m *Repository) UpdateSecret(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) UpdateSecret(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -324,8 +348,8 @@ func (_m *Repository) UpdateSecret(ctx context.Context, client clients.Client) ( } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -334,17 +358,19 @@ func (_m *Repository) UpdateSecret(ctx context.Context, client clients.Client) ( r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateTags provides a mock function with given fields: ctx, client -func (_m *Repository) UpdateTags(ctx context.Context, client clients.Client) (clients.Client, error) { +func (_m *Repository) UpdateTags(ctx context.Context, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -352,8 +378,8 @@ func (_m *Repository) UpdateTags(ctx context.Context, client clients.Client) (cl } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) clients.Client); ok { @@ -362,10 +388,12 @@ func (_m *Repository) UpdateTags(ctx context.Context, client clients.Client) (cl r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 diff --git a/users/mocks/service.go b/users/mocks/service.go index 4c2f6b13f2..2b73711cfb 100644 --- a/users/mocks/service.go +++ b/users/mocks/service.go @@ -9,6 +9,8 @@ import ( clients "github.com/absmach/magistrala/pkg/clients" + errors "github.com/absmach/magistrala/pkg/errors" + magistrala "github.com/absmach/magistrala" mock "github.com/stretchr/testify/mock" @@ -20,7 +22,7 @@ type Service struct { } // DisableClient provides a mock function with given fields: ctx, token, id -func (_m *Service) DisableClient(ctx context.Context, token string, id string) (clients.Client, error) { +func (_m *Service) DisableClient(ctx context.Context, token string, id string) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, id) if len(ret) == 0 { @@ -28,8 +30,8 @@ func (_m *Service) DisableClient(ctx context.Context, token string, id string) ( } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string) (clients.Client, errors.Error)); ok { return rf(ctx, token, id) } if rf, ok := ret.Get(0).(func(context.Context, string, string) clients.Client); ok { @@ -38,17 +40,19 @@ func (_m *Service) DisableClient(ctx context.Context, token string, id string) ( r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string) errors.Error); ok { r1 = rf(ctx, token, id) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // EnableClient provides a mock function with given fields: ctx, token, id -func (_m *Service) EnableClient(ctx context.Context, token string, id string) (clients.Client, error) { +func (_m *Service) EnableClient(ctx context.Context, token string, id string) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, id) if len(ret) == 0 { @@ -56,8 +60,8 @@ func (_m *Service) EnableClient(ctx context.Context, token string, id string) (c } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string) (clients.Client, errors.Error)); ok { return rf(ctx, token, id) } if rf, ok := ret.Get(0).(func(context.Context, string, string) clients.Client); ok { @@ -66,35 +70,39 @@ func (_m *Service) EnableClient(ctx context.Context, token string, id string) (c r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string) errors.Error); ok { r1 = rf(ctx, token, id) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // GenerateResetToken provides a mock function with given fields: ctx, email, host -func (_m *Service) GenerateResetToken(ctx context.Context, email string, host string) error { +func (_m *Service) GenerateResetToken(ctx context.Context, email string, host string) errors.Error { ret := _m.Called(ctx, email, host) if len(ret) == 0 { panic("no return value specified for GenerateResetToken") } - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) error); ok { + var r0 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string) errors.Error); ok { r0 = rf(ctx, email, host) } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).(errors.Error) + } } return r0 } // Identify provides a mock function with given fields: ctx, tkn -func (_m *Service) Identify(ctx context.Context, tkn string) (string, error) { +func (_m *Service) Identify(ctx context.Context, tkn string) (string, errors.Error) { ret := _m.Called(ctx, tkn) if len(ret) == 0 { @@ -102,8 +110,8 @@ func (_m *Service) Identify(ctx context.Context, tkn string) (string, error) { } var r0 string - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (string, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string) (string, errors.Error)); ok { return rf(ctx, tkn) } if rf, ok := ret.Get(0).(func(context.Context, string) string); ok { @@ -112,17 +120,19 @@ func (_m *Service) Identify(ctx context.Context, tkn string) (string, error) { r0 = ret.Get(0).(string) } - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string) errors.Error); ok { r1 = rf(ctx, tkn) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // IssueToken provides a mock function with given fields: ctx, identity, secret, domainID -func (_m *Service) IssueToken(ctx context.Context, identity string, secret string, domainID string) (*magistrala.Token, error) { +func (_m *Service) IssueToken(ctx context.Context, identity string, secret string, domainID string) (*magistrala.Token, errors.Error) { ret := _m.Called(ctx, identity, secret, domainID) if len(ret) == 0 { @@ -130,8 +140,8 @@ func (_m *Service) IssueToken(ctx context.Context, identity string, secret strin } var r0 *magistrala.Token - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string, string) (*magistrala.Token, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string, string) (*magistrala.Token, errors.Error)); ok { return rf(ctx, identity, secret, domainID) } if rf, ok := ret.Get(0).(func(context.Context, string, string, string) *magistrala.Token); ok { @@ -142,17 +152,19 @@ func (_m *Service) IssueToken(ctx context.Context, identity string, secret strin } } - if rf, ok := ret.Get(1).(func(context.Context, string, string, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string, string) errors.Error); ok { r1 = rf(ctx, identity, secret, domainID) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // ListClients provides a mock function with given fields: ctx, token, pm -func (_m *Service) ListClients(ctx context.Context, token string, pm clients.Page) (clients.ClientsPage, error) { +func (_m *Service) ListClients(ctx context.Context, token string, pm clients.Page) (clients.ClientsPage, errors.Error) { ret := _m.Called(ctx, token, pm) if len(ret) == 0 { @@ -160,8 +172,8 @@ func (_m *Service) ListClients(ctx context.Context, token string, pm clients.Pag } var r0 clients.ClientsPage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, clients.Page) (clients.ClientsPage, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, clients.Page) (clients.ClientsPage, errors.Error)); ok { return rf(ctx, token, pm) } if rf, ok := ret.Get(0).(func(context.Context, string, clients.Page) clients.ClientsPage); ok { @@ -170,17 +182,19 @@ func (_m *Service) ListClients(ctx context.Context, token string, pm clients.Pag r0 = ret.Get(0).(clients.ClientsPage) } - if rf, ok := ret.Get(1).(func(context.Context, string, clients.Page) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, clients.Page) errors.Error); ok { r1 = rf(ctx, token, pm) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // ListMembers provides a mock function with given fields: ctx, token, objectKind, objectID, pm -func (_m *Service) ListMembers(ctx context.Context, token string, objectKind string, objectID string, pm clients.Page) (clients.MembersPage, error) { +func (_m *Service) ListMembers(ctx context.Context, token string, objectKind string, objectID string, pm clients.Page) (clients.MembersPage, errors.Error) { ret := _m.Called(ctx, token, objectKind, objectID, pm) if len(ret) == 0 { @@ -188,8 +202,8 @@ func (_m *Service) ListMembers(ctx context.Context, token string, objectKind str } var r0 clients.MembersPage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string, string, clients.Page) (clients.MembersPage, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string, string, clients.Page) (clients.MembersPage, errors.Error)); ok { return rf(ctx, token, objectKind, objectID, pm) } if rf, ok := ret.Get(0).(func(context.Context, string, string, string, clients.Page) clients.MembersPage); ok { @@ -198,17 +212,19 @@ func (_m *Service) ListMembers(ctx context.Context, token string, objectKind str r0 = ret.Get(0).(clients.MembersPage) } - if rf, ok := ret.Get(1).(func(context.Context, string, string, string, clients.Page) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string, string, clients.Page) errors.Error); ok { r1 = rf(ctx, token, objectKind, objectID, pm) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // OAuthCallback provides a mock function with given fields: ctx, client -func (_m *Service) OAuthCallback(ctx context.Context, client clients.Client) (*magistrala.Token, error) { +func (_m *Service) OAuthCallback(ctx context.Context, client clients.Client) (*magistrala.Token, errors.Error) { ret := _m.Called(ctx, client) if len(ret) == 0 { @@ -216,8 +232,8 @@ func (_m *Service) OAuthCallback(ctx context.Context, client clients.Client) (*m } var r0 *magistrala.Token - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (*magistrala.Token, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, clients.Client) (*magistrala.Token, errors.Error)); ok { return rf(ctx, client) } if rf, ok := ret.Get(0).(func(context.Context, clients.Client) *magistrala.Token); ok { @@ -228,17 +244,19 @@ func (_m *Service) OAuthCallback(ctx context.Context, client clients.Client) (*m } } - if rf, ok := ret.Get(1).(func(context.Context, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, clients.Client) errors.Error); ok { r1 = rf(ctx, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // RefreshToken provides a mock function with given fields: ctx, accessToken, domainID -func (_m *Service) RefreshToken(ctx context.Context, accessToken string, domainID string) (*magistrala.Token, error) { +func (_m *Service) RefreshToken(ctx context.Context, accessToken string, domainID string) (*magistrala.Token, errors.Error) { ret := _m.Called(ctx, accessToken, domainID) if len(ret) == 0 { @@ -246,8 +264,8 @@ func (_m *Service) RefreshToken(ctx context.Context, accessToken string, domainI } var r0 *magistrala.Token - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) (*magistrala.Token, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string) (*magistrala.Token, errors.Error)); ok { return rf(ctx, accessToken, domainID) } if rf, ok := ret.Get(0).(func(context.Context, string, string) *magistrala.Token); ok { @@ -258,17 +276,19 @@ func (_m *Service) RefreshToken(ctx context.Context, accessToken string, domainI } } - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string) errors.Error); ok { r1 = rf(ctx, accessToken, domainID) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // RegisterClient provides a mock function with given fields: ctx, token, client -func (_m *Service) RegisterClient(ctx context.Context, token string, client clients.Client) (clients.Client, error) { +func (_m *Service) RegisterClient(ctx context.Context, token string, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, client) if len(ret) == 0 { @@ -276,8 +296,8 @@ func (_m *Service) RegisterClient(ctx context.Context, token string, client clie } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, token, client) } if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) clients.Client); ok { @@ -286,53 +306,59 @@ func (_m *Service) RegisterClient(ctx context.Context, token string, client clie r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, clients.Client) errors.Error); ok { r1 = rf(ctx, token, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // ResetSecret provides a mock function with given fields: ctx, resetToken, secret -func (_m *Service) ResetSecret(ctx context.Context, resetToken string, secret string) error { +func (_m *Service) ResetSecret(ctx context.Context, resetToken string, secret string) errors.Error { ret := _m.Called(ctx, resetToken, secret) if len(ret) == 0 { panic("no return value specified for ResetSecret") } - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) error); ok { + var r0 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string) errors.Error); ok { r0 = rf(ctx, resetToken, secret) } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).(errors.Error) + } } return r0 } // SendPasswordReset provides a mock function with given fields: ctx, host, email, user, token -func (_m *Service) SendPasswordReset(ctx context.Context, host string, email string, user string, token string) error { +func (_m *Service) SendPasswordReset(ctx context.Context, host string, email string, user string, token string) errors.Error { ret := _m.Called(ctx, host, email, user, token) if len(ret) == 0 { panic("no return value specified for SendPasswordReset") } - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string, string, string, string) error); ok { + var r0 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string, string, string) errors.Error); ok { r0 = rf(ctx, host, email, user, token) } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).(errors.Error) + } } return r0 } // UpdateClient provides a mock function with given fields: ctx, token, client -func (_m *Service) UpdateClient(ctx context.Context, token string, client clients.Client) (clients.Client, error) { +func (_m *Service) UpdateClient(ctx context.Context, token string, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, client) if len(ret) == 0 { @@ -340,8 +366,8 @@ func (_m *Service) UpdateClient(ctx context.Context, token string, client client } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, token, client) } if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) clients.Client); ok { @@ -350,17 +376,19 @@ func (_m *Service) UpdateClient(ctx context.Context, token string, client client r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, clients.Client) errors.Error); ok { r1 = rf(ctx, token, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateClientIdentity provides a mock function with given fields: ctx, token, id, identity -func (_m *Service) UpdateClientIdentity(ctx context.Context, token string, id string, identity string) (clients.Client, error) { +func (_m *Service) UpdateClientIdentity(ctx context.Context, token string, id string, identity string) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, id, identity) if len(ret) == 0 { @@ -368,8 +396,8 @@ func (_m *Service) UpdateClientIdentity(ctx context.Context, token string, id st } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string, string) (clients.Client, errors.Error)); ok { return rf(ctx, token, id, identity) } if rf, ok := ret.Get(0).(func(context.Context, string, string, string) clients.Client); ok { @@ -378,17 +406,19 @@ func (_m *Service) UpdateClientIdentity(ctx context.Context, token string, id st r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, string, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string, string) errors.Error); ok { r1 = rf(ctx, token, id, identity) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateClientRole provides a mock function with given fields: ctx, token, client -func (_m *Service) UpdateClientRole(ctx context.Context, token string, client clients.Client) (clients.Client, error) { +func (_m *Service) UpdateClientRole(ctx context.Context, token string, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, client) if len(ret) == 0 { @@ -396,8 +426,8 @@ func (_m *Service) UpdateClientRole(ctx context.Context, token string, client cl } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, token, client) } if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) clients.Client); ok { @@ -406,17 +436,19 @@ func (_m *Service) UpdateClientRole(ctx context.Context, token string, client cl r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, clients.Client) errors.Error); ok { r1 = rf(ctx, token, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateClientSecret provides a mock function with given fields: ctx, token, oldSecret, newSecret -func (_m *Service) UpdateClientSecret(ctx context.Context, token string, oldSecret string, newSecret string) (clients.Client, error) { +func (_m *Service) UpdateClientSecret(ctx context.Context, token string, oldSecret string, newSecret string) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, oldSecret, newSecret) if len(ret) == 0 { @@ -424,8 +456,8 @@ func (_m *Service) UpdateClientSecret(ctx context.Context, token string, oldSecr } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string, string) (clients.Client, errors.Error)); ok { return rf(ctx, token, oldSecret, newSecret) } if rf, ok := ret.Get(0).(func(context.Context, string, string, string) clients.Client); ok { @@ -434,17 +466,19 @@ func (_m *Service) UpdateClientSecret(ctx context.Context, token string, oldSecr r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, string, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string, string) errors.Error); ok { r1 = rf(ctx, token, oldSecret, newSecret) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // UpdateClientTags provides a mock function with given fields: ctx, token, client -func (_m *Service) UpdateClientTags(ctx context.Context, token string, client clients.Client) (clients.Client, error) { +func (_m *Service) UpdateClientTags(ctx context.Context, token string, client clients.Client) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, client) if len(ret) == 0 { @@ -452,8 +486,8 @@ func (_m *Service) UpdateClientTags(ctx context.Context, token string, client cl } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) (clients.Client, errors.Error)); ok { return rf(ctx, token, client) } if rf, ok := ret.Get(0).(func(context.Context, string, clients.Client) clients.Client); ok { @@ -462,17 +496,19 @@ func (_m *Service) UpdateClientTags(ctx context.Context, token string, client cl r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, clients.Client) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, clients.Client) errors.Error); ok { r1 = rf(ctx, token, client) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // ViewClient provides a mock function with given fields: ctx, token, id -func (_m *Service) ViewClient(ctx context.Context, token string, id string) (clients.Client, error) { +func (_m *Service) ViewClient(ctx context.Context, token string, id string) (clients.Client, errors.Error) { ret := _m.Called(ctx, token, id) if len(ret) == 0 { @@ -480,8 +516,8 @@ func (_m *Service) ViewClient(ctx context.Context, token string, id string) (cli } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string, string) (clients.Client, errors.Error)); ok { return rf(ctx, token, id) } if rf, ok := ret.Get(0).(func(context.Context, string, string) clients.Client); ok { @@ -490,17 +526,19 @@ func (_m *Service) ViewClient(ctx context.Context, token string, id string) (cli r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string, string) errors.Error); ok { r1 = rf(ctx, token, id) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 } // ViewProfile provides a mock function with given fields: ctx, token -func (_m *Service) ViewProfile(ctx context.Context, token string) (clients.Client, error) { +func (_m *Service) ViewProfile(ctx context.Context, token string) (clients.Client, errors.Error) { ret := _m.Called(ctx, token) if len(ret) == 0 { @@ -508,8 +546,8 @@ func (_m *Service) ViewProfile(ctx context.Context, token string) (clients.Clien } var r0 clients.Client - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (clients.Client, error)); ok { + var r1 errors.Error + if rf, ok := ret.Get(0).(func(context.Context, string) (clients.Client, errors.Error)); ok { return rf(ctx, token) } if rf, ok := ret.Get(0).(func(context.Context, string) clients.Client); ok { @@ -518,10 +556,12 @@ func (_m *Service) ViewProfile(ctx context.Context, token string) (clients.Clien r0 = ret.Get(0).(clients.Client) } - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, string) errors.Error); ok { r1 = rf(ctx, token) } else { - r1 = ret.Error(1) + if ret.Get(1) != nil { + r1 = ret.Get(1).(errors.Error) + } } return r0, r1 diff --git a/users/postgres/clients.go b/users/postgres/clients.go index 8ce544eb0d..8f1121aecb 100644 --- a/users/postgres/clients.go +++ b/users/postgres/clients.go @@ -28,13 +28,13 @@ type Repository interface { // Save persists the client account. A non-nil error is returned to indicate // operation failure. - Save(ctx context.Context, client mgclients.Client) (mgclients.Client, error) + Save(ctx context.Context, client mgclients.Client) (mgclients.Client, errors.Error) - RetrieveByID(ctx context.Context, id string) (mgclients.Client, error) + RetrieveByID(ctx context.Context, id string) (mgclients.Client, errors.Error) - UpdateRole(ctx context.Context, client mgclients.Client) (mgclients.Client, error) + UpdateRole(ctx context.Context, client mgclients.Client) (mgclients.Client, errors.Error) - CheckSuperAdmin(ctx context.Context, adminID string) error + CheckSuperAdmin(ctx context.Context, adminID string) errors.Error } // NewRepository instantiates a PostgreSQL @@ -45,7 +45,7 @@ func NewRepository(db postgres.Database) Repository { } } -func (repo clientRepo) Save(ctx context.Context, c mgclients.Client) (mgclients.Client, error) { +func (repo clientRepo) Save(ctx context.Context, c mgclients.Client) (mgclients.Client, errors.Error) { q := `INSERT INTO clients (id, name, tags, identity, secret, metadata, created_at, status, role) VALUES (:id, :name, :tags, :identity, :secret, :metadata, :created_at, :status, :role) RETURNING id, name, tags, identity, metadata, status, created_at` @@ -54,9 +54,9 @@ func (repo clientRepo) Save(ctx context.Context, c mgclients.Client) (mgclients. return mgclients.Client{}, errors.Wrap(repoerr.ErrCreateEntity, err) } - row, err := repo.DB.NamedQueryContext(ctx, q, dbc) - if err != nil { - return mgclients.Client{}, postgres.HandleError(repoerr.ErrCreateEntity, err) + row, Err := repo.DB.NamedQueryContext(ctx, q, dbc) + if Err != nil { + return mgclients.Client{}, errors.Cast(postgres.HandleError(repoerr.ErrCreateEntity, Err)) } defer row.Close() @@ -74,17 +74,17 @@ func (repo clientRepo) Save(ctx context.Context, c mgclients.Client) (mgclients. return client, nil } -func (repo clientRepo) CheckSuperAdmin(ctx context.Context, adminID string) error { +func (repo clientRepo) CheckSuperAdmin(ctx context.Context, adminID string) errors.Error { q := "SELECT 1 FROM clients WHERE id = $1 AND role = $2" rows, err := repo.DB.QueryContext(ctx, q, adminID, mgclients.AdminRole) if err != nil { - return postgres.HandleError(repoerr.ErrViewEntity, err) + return errors.Cast(postgres.HandleError(repoerr.ErrViewEntity, err)) } defer rows.Close() if rows.Next() { if err := rows.Err(); err != nil { - return postgres.HandleError(repoerr.ErrViewEntity, err) + return errors.Cast(postgres.HandleError(repoerr.ErrViewEntity, err)) } return nil } @@ -92,7 +92,7 @@ func (repo clientRepo) CheckSuperAdmin(ctx context.Context, adminID string) erro return repoerr.ErrNotFound } -func (repo clientRepo) RetrieveByID(ctx context.Context, id string) (mgclients.Client, error) { +func (repo clientRepo) RetrieveByID(ctx context.Context, id string) (mgclients.Client, errors.Error) { q := `SELECT id, name, tags, identity, secret, metadata, created_at, updated_at, updated_by, status, role FROM clients WHERE id = :id` @@ -102,14 +102,14 @@ func (repo clientRepo) RetrieveByID(ctx context.Context, id string) (mgclients.C rows, err := repo.DB.NamedQueryContext(ctx, q, dbc) if err != nil { - return mgclients.Client{}, postgres.HandleError(repoerr.ErrViewEntity, err) + return mgclients.Client{}, errors.Cast(postgres.HandleError(repoerr.ErrViewEntity, err)) } defer rows.Close() dbc = pgclients.DBClient{} if rows.Next() { if err = rows.StructScan(&dbc); err != nil { - return mgclients.Client{}, postgres.HandleError(repoerr.ErrViewEntity, err) + return mgclients.Client{}, errors.Cast(postgres.HandleError(repoerr.ErrViewEntity, err)) } client, err := pgclients.ToClient(dbc) @@ -123,7 +123,7 @@ func (repo clientRepo) RetrieveByID(ctx context.Context, id string) (mgclients.C return mgclients.Client{}, repoerr.ErrNotFound } -func (repo clientRepo) RetrieveAll(ctx context.Context, pm mgclients.Page) (mgclients.ClientsPage, error) { +func (repo clientRepo) RetrieveAll(ctx context.Context, pm mgclients.Page) (mgclients.ClientsPage, errors.Error) { query, err := pgclients.PageQuery(pm) if err != nil { return mgclients.ClientsPage{}, errors.Wrap(repoerr.ErrViewEntity, err) @@ -136,9 +136,9 @@ func (repo clientRepo) RetrieveAll(ctx context.Context, pm mgclients.Page) (mgcl if err != nil { return mgclients.ClientsPage{}, errors.Wrap(repoerr.ErrFailedToRetrieveAllGroups, err) } - rows, err := repo.DB.NamedQueryContext(ctx, q, dbPage) - if err != nil { - return mgclients.ClientsPage{}, errors.Wrap(repoerr.ErrFailedToRetrieveAllGroups, err) + rows, Err := repo.DB.NamedQueryContext(ctx, q, dbPage) + if Err != nil { + return mgclients.ClientsPage{}, errors.Wrap(repoerr.ErrFailedToRetrieveAllGroups, Err) } defer rows.Close() @@ -151,16 +151,16 @@ func (repo clientRepo) RetrieveAll(ctx context.Context, pm mgclients.Page) (mgcl c, err := pgclients.ToClient(dbc) if err != nil { - return mgclients.ClientsPage{}, err + return mgclients.ClientsPage{}, errors.Cast(err) } items = append(items, c) } cq := fmt.Sprintf(`SELECT COUNT(*) FROM clients c %s;`, query) - total, err := postgres.Total(ctx, repo.DB, cq, dbPage) - if err != nil { - return mgclients.ClientsPage{}, errors.Wrap(repoerr.ErrViewEntity, err) + total, Err := postgres.Total(ctx, repo.DB, cq, dbPage) + if Err != nil { + return mgclients.ClientsPage{}, errors.Wrap(repoerr.ErrViewEntity, Err) } page := mgclients.ClientsPage{ @@ -175,7 +175,7 @@ func (repo clientRepo) RetrieveAll(ctx context.Context, pm mgclients.Page) (mgcl return page, nil } -func (repo clientRepo) UpdateRole(ctx context.Context, client mgclients.Client) (mgclients.Client, error) { +func (repo clientRepo) UpdateRole(ctx context.Context, client mgclients.Client) (mgclients.Client, errors.Error) { query := `UPDATE clients SET role = :role, updated_at = :updated_at, updated_by = :updated_by WHERE id = :id AND status = :status RETURNING id, name, tags, identity, metadata, status, role, created_at, updated_at, updated_by` @@ -185,9 +185,9 @@ func (repo clientRepo) UpdateRole(ctx context.Context, client mgclients.Client) return mgclients.Client{}, errors.Wrap(repoerr.ErrUpdateEntity, err) } - row, err := repo.DB.NamedQueryContext(ctx, query, dbc) - if err != nil { - return mgclients.Client{}, postgres.HandleError(err, repoerr.ErrUpdateEntity) + row, Err := repo.DB.NamedQueryContext(ctx, query, dbc) + if Err != nil { + return mgclients.Client{}, errors.Cast(postgres.HandleError(Err, repoerr.ErrUpdateEntity)) } defer row.Close() @@ -196,8 +196,9 @@ func (repo clientRepo) UpdateRole(ctx context.Context, client mgclients.Client) } dbc = pgclients.DBClient{} if err := row.StructScan(&dbc); err != nil { - return mgclients.Client{}, err + return mgclients.Client{}, errors.Cast(err) } - return pgclients.ToClient(dbc) + cl, err := pgclients.ToClient(dbc) + return cl, errors.Cast(err) } diff --git a/users/service.go b/users/service.go index 76a176258a..b554402db9 100644 --- a/users/service.go +++ b/users/service.go @@ -45,7 +45,7 @@ func NewService(crepo postgres.Repository, authClient magistrala.AuthServiceClie } } -func (svc service) RegisterClient(ctx context.Context, token string, cli mgclients.Client) (rc mgclients.Client, err error) { +func (svc service) RegisterClient(ctx context.Context, token string, cli mgclients.Client) (rc mgclients.Client, err errors.Error) { if !svc.selfRegister { userID, err := svc.Identify(ctx, token) if err != nil { @@ -56,9 +56,9 @@ func (svc service) RegisterClient(ctx context.Context, token string, cli mgclien } } - clientID, err := svc.idProvider.ID() - if err != nil { - return mgclients.Client{}, err + clientID, Err := svc.idProvider.ID() + if Err != nil { + return mgclients.Client{}, errors.Cast(Err) } if cli.Credentials.Secret != "" { @@ -95,7 +95,7 @@ func (svc service) RegisterClient(ctx context.Context, token string, cli mgclien return client, nil } -func (svc service) IssueToken(ctx context.Context, identity, secret, domainID string) (*magistrala.Token, error) { +func (svc service) IssueToken(ctx context.Context, identity, secret, domainID string) (*magistrala.Token, errors.Error) { dbUser, err := svc.clients.RetrieveByIdentity(ctx, identity) if err != nil { return &magistrala.Token{}, errors.Wrap(svcerr.ErrAuthentication, err) @@ -109,15 +109,15 @@ func (svc service) IssueToken(ctx context.Context, identity, secret, domainID st d = domainID } - token, err := svc.auth.Issue(ctx, &magistrala.IssueReq{UserId: dbUser.ID, DomainId: &d, Type: uint32(auth.AccessKey)}) - if err != nil { - return &magistrala.Token{}, errors.Wrap(errIssueToken, err) + token, Err := svc.auth.Issue(ctx, &magistrala.IssueReq{UserId: dbUser.ID, DomainId: &d, Type: uint32(auth.AccessKey)}) + if Err != nil { + return &magistrala.Token{}, errors.Wrap(errIssueToken, Err) } - return token, err + return token, errors.Cast(err) } -func (svc service) RefreshToken(ctx context.Context, refreshToken, domainID string) (*magistrala.Token, error) { +func (svc service) RefreshToken(ctx context.Context, refreshToken, domainID string) (*magistrala.Token, errors.Error) { var d string if domainID != "" { d = domainID @@ -136,10 +136,11 @@ func (svc service) RefreshToken(ctx context.Context, refreshToken, domainID stri return &magistrala.Token{}, errors.Wrap(svcerr.ErrAuthentication, errLoginDisableUser) } - return svc.auth.Refresh(ctx, &magistrala.RefreshReq{RefreshToken: refreshToken, DomainId: &d}) + tk, Err := svc.auth.Refresh(ctx, &magistrala.RefreshReq{RefreshToken: refreshToken, DomainId: &d}) + return tk, errors.Cast(Err) } -func (svc service) ViewClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (svc service) ViewClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { tokenUserID, err := svc.Identify(ctx, token) if err != nil { return mgclients.Client{}, err @@ -161,7 +162,7 @@ func (svc service) ViewClient(ctx context.Context, token, id string) (mgclients. return client, nil } -func (svc service) ViewProfile(ctx context.Context, token string) (mgclients.Client, error) { +func (svc service) ViewProfile(ctx context.Context, token string) (mgclients.Client, errors.Error) { id, err := svc.Identify(ctx, token) if err != nil { return mgclients.Client{}, err @@ -175,7 +176,7 @@ func (svc service) ViewProfile(ctx context.Context, token string) (mgclients.Cli return client, nil } -func (svc service) ListClients(ctx context.Context, token string, pm mgclients.Page) (mgclients.ClientsPage, error) { +func (svc service) ListClients(ctx context.Context, token string, pm mgclients.Page) (mgclients.ClientsPage, errors.Error) { userID, err := svc.Identify(ctx, token) if err != nil { return mgclients.ClientsPage{}, err @@ -208,7 +209,7 @@ func (svc service) ListClients(ctx context.Context, token string, pm mgclients.P return pg, nil } -func (svc service) UpdateClient(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, error) { +func (svc service) UpdateClient(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, errors.Error) { tokenUserID, err := svc.Identify(ctx, token) if err != nil { return mgclients.Client{}, err @@ -235,7 +236,7 @@ func (svc service) UpdateClient(ctx context.Context, token string, cli mgclients return client, nil } -func (svc service) UpdateClientTags(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, error) { +func (svc service) UpdateClientTags(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, errors.Error) { tokenUserID, err := svc.Identify(ctx, token) if err != nil { return mgclients.Client{}, err @@ -261,7 +262,7 @@ func (svc service) UpdateClientTags(ctx context.Context, token string, cli mgcli return client, nil } -func (svc service) UpdateClientIdentity(ctx context.Context, token, clientID, identity string) (mgclients.Client, error) { +func (svc service) UpdateClientIdentity(ctx context.Context, token, clientID, identity string) (mgclients.Client, errors.Error) { tokenUserID, err := svc.Identify(ctx, token) if err != nil { return mgclients.Client{}, err @@ -288,7 +289,7 @@ func (svc service) UpdateClientIdentity(ctx context.Context, token, clientID, id return cli, nil } -func (svc service) GenerateResetToken(ctx context.Context, email, host string) error { +func (svc service) GenerateResetToken(ctx context.Context, email, host string) errors.Error { client, err := svc.clients.RetrieveByIdentity(ctx, email) if err != nil { return errors.Wrap(svcerr.ErrViewEntity, err) @@ -297,15 +298,15 @@ func (svc service) GenerateResetToken(ctx context.Context, email, host string) e UserId: client.ID, Type: uint32(auth.RecoveryKey), } - token, err := svc.auth.Issue(ctx, issueReq) - if err != nil { - return errors.Wrap(errRecoveryToken, err) + token, Err := svc.auth.Issue(ctx, issueReq) + if Err != nil { + return errors.Wrap(errRecoveryToken, Err) } return svc.SendPasswordReset(ctx, host, email, client.Name, token.AccessToken) } -func (svc service) ResetSecret(ctx context.Context, resetToken, secret string) error { +func (svc service) ResetSecret(ctx context.Context, resetToken, secret string) errors.Error { id, err := svc.Identify(ctx, resetToken) if err != nil { return err @@ -334,7 +335,7 @@ func (svc service) ResetSecret(ctx context.Context, resetToken, secret string) e return nil } -func (svc service) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (mgclients.Client, error) { +func (svc service) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (mgclients.Client, errors.Error) { id, err := svc.Identify(ctx, token) if err != nil { return mgclients.Client{}, err @@ -362,12 +363,12 @@ func (svc service) UpdateClientSecret(ctx context.Context, token, oldSecret, new return dbClient, nil } -func (svc service) SendPasswordReset(_ context.Context, host, email, user, token string) error { +func (svc service) SendPasswordReset(_ context.Context, host, email, user, token string) errors.Error { to := []string{email} return svc.email.SendPasswordReset(to, host, user, token) } -func (svc service) UpdateClientRole(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, error) { +func (svc service) UpdateClientRole(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, errors.Error) { tokenUserID, err := svc.Identify(ctx, token) if err != nil { return mgclients.Client{}, err @@ -402,7 +403,7 @@ func (svc service) UpdateClientRole(ctx context.Context, token string, cli mgcli return client, nil } -func (svc service) EnableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (svc service) EnableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { client := mgclients.Client{ ID: id, UpdatedAt: time.Now(), @@ -416,7 +417,7 @@ func (svc service) EnableClient(ctx context.Context, token, id string) (mgclient return client, nil } -func (svc service) DisableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (svc service) DisableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { client := mgclients.Client{ ID: id, UpdatedAt: time.Now(), @@ -430,7 +431,7 @@ func (svc service) DisableClient(ctx context.Context, token, id string) (mgclien return client, nil } -func (svc service) changeClientStatus(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, error) { +func (svc service) changeClientStatus(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, errors.Error) { tokenUserID, err := svc.Identify(ctx, token) if err != nil { return mgclients.Client{}, err @@ -454,7 +455,7 @@ func (svc service) changeClientStatus(ctx context.Context, token string, client return client, nil } -func (svc service) ListMembers(ctx context.Context, token, objectKind, objectID string, pm mgclients.Page) (mgclients.MembersPage, error) { +func (svc service) ListMembers(ctx context.Context, token, objectKind, objectID string, pm mgclients.Page) (mgclients.MembersPage, errors.Error) { res, err := svc.identify(ctx, token) if err != nil { return mgclients.MembersPage{}, err @@ -478,14 +479,14 @@ func (svc service) ListMembers(ctx context.Context, token, objectKind, objectID if _, err := svc.authorize(ctx, auth.UserType, auth.TokenKind, token, authzPerm, objectType, objectID); err != nil { return mgclients.MembersPage{}, errors.Wrap(svcerr.ErrAuthorization, err) } - duids, err := svc.auth.ListAllSubjects(ctx, &magistrala.ListSubjectsReq{ + duids, Err := svc.auth.ListAllSubjects(ctx, &magistrala.ListSubjectsReq{ SubjectType: auth.UserType, Permission: pm.Permission, Object: objectID, ObjectType: objectType, }) - if err != nil { - return mgclients.MembersPage{}, errors.Wrap(svcerr.ErrNotFound, err) + if Err != nil { + return mgclients.MembersPage{}, errors.Wrap(svcerr.ErrNotFound, Err) } if len(duids.Policies) == 0 { return mgclients.MembersPage{ @@ -522,7 +523,7 @@ func (svc service) ListMembers(ctx context.Context, token, objectKind, objectID } if err := g.Wait(); err != nil { - return mgclients.MembersPage{}, err + return mgclients.MembersPage{}, errors.Cast(err) } } @@ -532,7 +533,7 @@ func (svc service) ListMembers(ctx context.Context, token, objectKind, objectID }, nil } -func (svc service) retrieveObjectUsersPermissions(ctx context.Context, domainID, objectType, objectID string, client *mgclients.Client) error { +func (svc service) retrieveObjectUsersPermissions(ctx context.Context, domainID, objectType, objectID string, client *mgclients.Client) errors.Error { userID := auth.EncodeDomainUserID(domainID, client.ID) permissions, err := svc.listObjectUserPermission(ctx, userID, objectType, objectID) if err != nil { @@ -542,7 +543,7 @@ func (svc service) retrieveObjectUsersPermissions(ctx context.Context, domainID, return nil } -func (svc service) listObjectUserPermission(ctx context.Context, userID, objectType, objectID string) ([]string, error) { +func (svc service) listObjectUserPermission(ctx context.Context, userID, objectType, objectID string) ([]string, errors.Error) { lp, err := svc.auth.ListPermissions(ctx, &magistrala.ListPermissionsReq{ SubjectType: auth.UserType, Subject: userID, @@ -555,7 +556,7 @@ func (svc service) listObjectUserPermission(ctx context.Context, userID, objectT return lp.GetPermissions(), nil } -func (svc *service) checkSuperAdmin(ctx context.Context, adminID string) error { +func (svc *service) checkSuperAdmin(ctx context.Context, adminID string) errors.Error { if _, err := svc.authorize(ctx, auth.UserType, auth.UsersKind, adminID, auth.AdminPermission, auth.PlatformType, auth.MagistralaObject); err != nil { if err := svc.clients.CheckSuperAdmin(ctx, adminID); err != nil { return errors.Wrap(svcerr.ErrAuthorization, err) @@ -566,7 +567,7 @@ func (svc *service) checkSuperAdmin(ctx context.Context, adminID string) error { return nil } -func (svc service) identify(ctx context.Context, token string) (*magistrala.IdentityRes, error) { +func (svc service) identify(ctx context.Context, token string) (*magistrala.IdentityRes, errors.Error) { res, err := svc.auth.Identify(ctx, &magistrala.IdentityReq{Token: token}) if err != nil { return &magistrala.IdentityRes{}, errors.Wrap(svcerr.ErrAuthentication, err) @@ -574,7 +575,7 @@ func (svc service) identify(ctx context.Context, token string) (*magistrala.Iden return res, nil } -func (svc *service) authorize(ctx context.Context, subjType, subjKind, subj, perm, objType, obj string) (string, error) { +func (svc *service) authorize(ctx context.Context, subjType, subjKind, subj, perm, objType, obj string) (string, errors.Error) { req := &magistrala.AuthorizeReq{ SubjectType: subjType, SubjectKind: subjKind, @@ -594,7 +595,7 @@ func (svc *service) authorize(ctx context.Context, subjType, subjKind, subj, per return res.GetId(), nil } -func (svc service) OAuthCallback(ctx context.Context, client mgclients.Client) (*magistrala.Token, error) { +func (svc service) OAuthCallback(ctx context.Context, client mgclients.Client) (*magistrala.Token, errors.Error) { rclient, err := svc.clients.RetrieveByIdentity(ctx, client.Credentials.Identity) if err != nil { switch errors.Contains(err, repoerr.ErrNotFound) { @@ -619,10 +620,11 @@ func (svc service) OAuthCallback(ctx context.Context, client mgclients.Client) ( Type: uint32(auth.AccessKey), } - return svc.auth.Issue(ctx, claims) + tk, Err := svc.auth.Issue(ctx, claims) + return tk, errors.Cast(Err) } -func (svc service) Identify(ctx context.Context, token string) (string, error) { +func (svc service) Identify(ctx context.Context, token string) (string, errors.Error) { user, err := svc.auth.Identify(ctx, &magistrala.IdentityReq{Token: token}) if err != nil { return "", errors.Wrap(svcerr.ErrAuthentication, err) @@ -630,7 +632,7 @@ func (svc service) Identify(ctx context.Context, token string) (string, error) { return user.GetUserId(), nil } -func (svc service) addClientPolicy(ctx context.Context, userID string, role mgclients.Role) error { +func (svc service) addClientPolicy(ctx context.Context, userID string, role mgclients.Role) errors.Error { var policies magistrala.AddPoliciesReq policies.AddPoliciesReq = append(policies.AddPoliciesReq, &magistrala.AddPolicyReq{ @@ -660,7 +662,7 @@ func (svc service) addClientPolicy(ctx context.Context, userID string, role mgcl return nil } -func (svc service) addClientPolicyRollback(ctx context.Context, userID string, role mgclients.Role) error { +func (svc service) addClientPolicyRollback(ctx context.Context, userID string, role mgclients.Role) errors.Error { var policies magistrala.DeletePoliciesReq policies.DeletePoliciesReq = append(policies.DeletePoliciesReq, &magistrala.DeletePolicyReq{ @@ -690,7 +692,7 @@ func (svc service) addClientPolicyRollback(ctx context.Context, userID string, r return nil } -func (svc service) updateClientPolicy(ctx context.Context, userID string, role mgclients.Role) error { +func (svc service) updateClientPolicy(ctx context.Context, userID string, role mgclients.Role) errors.Error { switch role { case mgclients.AdminRole: resp, err := svc.auth.AddPolicy(ctx, &magistrala.AddPolicyReq{ diff --git a/users/tracing/tracing.go b/users/tracing/tracing.go index d9777fc98a..9dd15eec78 100644 --- a/users/tracing/tracing.go +++ b/users/tracing/tracing.go @@ -8,6 +8,7 @@ import ( "github.com/absmach/magistrala" mgclients "github.com/absmach/magistrala/pkg/clients" + "github.com/absmach/magistrala/pkg/errors" "github.com/absmach/magistrala/users" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/trace" @@ -26,7 +27,7 @@ func New(svc users.Service, tracer trace.Tracer) users.Service { } // RegisterClient traces the "RegisterClient" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) RegisterClient(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, error) { +func (tm *tracingMiddleware) RegisterClient(ctx context.Context, token string, client mgclients.Client) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_register_client", trace.WithAttributes(attribute.String("identity", client.Credentials.Identity))) defer span.End() @@ -34,7 +35,7 @@ func (tm *tracingMiddleware) RegisterClient(ctx context.Context, token string, c } // IssueToken traces the "IssueToken" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) IssueToken(ctx context.Context, identity, secret, domainID string) (*magistrala.Token, error) { +func (tm *tracingMiddleware) IssueToken(ctx context.Context, identity, secret, domainID string) (*magistrala.Token, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_issue_token", trace.WithAttributes(attribute.String("identity", identity))) defer span.End() @@ -42,7 +43,7 @@ func (tm *tracingMiddleware) IssueToken(ctx context.Context, identity, secret, d } // RefreshToken traces the "RefreshToken" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) RefreshToken(ctx context.Context, accessToken, domainID string) (*magistrala.Token, error) { +func (tm *tracingMiddleware) RefreshToken(ctx context.Context, accessToken, domainID string) (*magistrala.Token, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_refresh_token", trace.WithAttributes(attribute.String("access_token", accessToken))) defer span.End() @@ -50,7 +51,7 @@ func (tm *tracingMiddleware) RefreshToken(ctx context.Context, accessToken, doma } // ViewClient traces the "ViewClient" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) ViewClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (tm *tracingMiddleware) ViewClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_view_client", trace.WithAttributes(attribute.String("id", id))) defer span.End() @@ -58,7 +59,7 @@ func (tm *tracingMiddleware) ViewClient(ctx context.Context, token, id string) ( } // ListClients traces the "ListClients" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) ListClients(ctx context.Context, token string, pm mgclients.Page) (mgclients.ClientsPage, error) { +func (tm *tracingMiddleware) ListClients(ctx context.Context, token string, pm mgclients.Page) (mgclients.ClientsPage, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_list_clients", trace.WithAttributes( attribute.Int64("offset", int64(pm.Offset)), attribute.Int64("limit", int64(pm.Limit)), @@ -72,7 +73,7 @@ func (tm *tracingMiddleware) ListClients(ctx context.Context, token string, pm m } // UpdateClient traces the "UpdateClient" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) UpdateClient(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, error) { +func (tm *tracingMiddleware) UpdateClient(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_update_client_name_and_metadata", trace.WithAttributes( attribute.String("id", cli.ID), attribute.String("name", cli.Name), @@ -83,7 +84,7 @@ func (tm *tracingMiddleware) UpdateClient(ctx context.Context, token string, cli } // UpdateClientTags traces the "UpdateClientTags" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) UpdateClientTags(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, error) { +func (tm *tracingMiddleware) UpdateClientTags(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_update_client_tags", trace.WithAttributes( attribute.String("id", cli.ID), attribute.StringSlice("tags", cli.Tags), @@ -94,7 +95,7 @@ func (tm *tracingMiddleware) UpdateClientTags(ctx context.Context, token string, } // UpdateClientIdentity traces the "UpdateClientIdentity" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) UpdateClientIdentity(ctx context.Context, token, id, identity string) (mgclients.Client, error) { +func (tm *tracingMiddleware) UpdateClientIdentity(ctx context.Context, token, id, identity string) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_update_client_identity", trace.WithAttributes( attribute.String("id", id), attribute.String("identity", identity), @@ -105,7 +106,7 @@ func (tm *tracingMiddleware) UpdateClientIdentity(ctx context.Context, token, id } // UpdateClientSecret traces the "UpdateClientSecret" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (mgclients.Client, error) { +func (tm *tracingMiddleware) UpdateClientSecret(ctx context.Context, token, oldSecret, newSecret string) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_update_client_secret") defer span.End() @@ -113,7 +114,7 @@ func (tm *tracingMiddleware) UpdateClientSecret(ctx context.Context, token, oldS } // GenerateResetToken traces the "GenerateResetToken" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) GenerateResetToken(ctx context.Context, email, host string) error { +func (tm *tracingMiddleware) GenerateResetToken(ctx context.Context, email, host string) errors.Error { ctx, span := tm.tracer.Start(ctx, "svc_generate_reset_token", trace.WithAttributes( attribute.String("email", email), attribute.String("host", host), @@ -124,7 +125,7 @@ func (tm *tracingMiddleware) GenerateResetToken(ctx context.Context, email, host } // ResetSecret traces the "ResetSecret" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) ResetSecret(ctx context.Context, token, secret string) error { +func (tm *tracingMiddleware) ResetSecret(ctx context.Context, token, secret string) errors.Error { ctx, span := tm.tracer.Start(ctx, "svc_reset_secret") defer span.End() @@ -132,7 +133,7 @@ func (tm *tracingMiddleware) ResetSecret(ctx context.Context, token, secret stri } // SendPasswordReset traces the "SendPasswordReset" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) SendPasswordReset(ctx context.Context, host, email, user, token string) error { +func (tm *tracingMiddleware) SendPasswordReset(ctx context.Context, host, email, user, token string) errors.Error { ctx, span := tm.tracer.Start(ctx, "svc_send_password_reset", trace.WithAttributes( attribute.String("email", email), attribute.String("user", user), @@ -143,7 +144,7 @@ func (tm *tracingMiddleware) SendPasswordReset(ctx context.Context, host, email, } // ViewProfile traces the "ViewProfile" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) ViewProfile(ctx context.Context, token string) (mgclients.Client, error) { +func (tm *tracingMiddleware) ViewProfile(ctx context.Context, token string) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_view_profile") defer span.End() @@ -151,7 +152,7 @@ func (tm *tracingMiddleware) ViewProfile(ctx context.Context, token string) (mgc } // UpdateClientRole traces the "UpdateClientRole" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) UpdateClientRole(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, error) { +func (tm *tracingMiddleware) UpdateClientRole(ctx context.Context, token string, cli mgclients.Client) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_update_client_role", trace.WithAttributes( attribute.String("id", cli.ID), attribute.StringSlice("tags", cli.Tags), @@ -162,7 +163,7 @@ func (tm *tracingMiddleware) UpdateClientRole(ctx context.Context, token string, } // EnableClient traces the "EnableClient" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) EnableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (tm *tracingMiddleware) EnableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_enable_client", trace.WithAttributes(attribute.String("id", id))) defer span.End() @@ -170,7 +171,7 @@ func (tm *tracingMiddleware) EnableClient(ctx context.Context, token, id string) } // DisableClient traces the "DisableClient" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) DisableClient(ctx context.Context, token, id string) (mgclients.Client, error) { +func (tm *tracingMiddleware) DisableClient(ctx context.Context, token, id string) (mgclients.Client, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_disable_client", trace.WithAttributes(attribute.String("id", id))) defer span.End() @@ -178,7 +179,7 @@ func (tm *tracingMiddleware) DisableClient(ctx context.Context, token, id string } // ListMembers traces the "ListMembers" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) ListMembers(ctx context.Context, token, objectKind, objectID string, pm mgclients.Page) (mgclients.MembersPage, error) { +func (tm *tracingMiddleware) ListMembers(ctx context.Context, token, objectKind, objectID string, pm mgclients.Page) (mgclients.MembersPage, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_list_members", trace.WithAttributes(attribute.String("object_kind", objectKind)), trace.WithAttributes(attribute.String("object_id", objectID))) defer span.End() @@ -186,7 +187,7 @@ func (tm *tracingMiddleware) ListMembers(ctx context.Context, token, objectKind, } // Identify traces the "Identify" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) Identify(ctx context.Context, token string) (string, error) { +func (tm *tracingMiddleware) Identify(ctx context.Context, token string) (string, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_identify", trace.WithAttributes(attribute.String("token", token))) defer span.End() @@ -194,7 +195,7 @@ func (tm *tracingMiddleware) Identify(ctx context.Context, token string) (string } // OAuthCallback traces the "OAuthCallback" operation of the wrapped clients.Service. -func (tm *tracingMiddleware) OAuthCallback(ctx context.Context, client mgclients.Client) (*magistrala.Token, error) { +func (tm *tracingMiddleware) OAuthCallback(ctx context.Context, client mgclients.Client) (*magistrala.Token, errors.Error) { ctx, span := tm.tracer.Start(ctx, "svc_oauth_callback", trace.WithAttributes( attribute.String("client_id", client.ID), )) From 13d7c6f0f763a6ef525948ac9e0e1731ac0d2bcb Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Wed, 12 Jun 2024 17:54:02 +0300 Subject: [PATCH 16/20] Refactor: changed the errors.Contains function Signed-off-by: nyagamunene --- pkg/errors/errors.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/errors/errors.go b/pkg/errors/errors.go index 7a079ba5f0..e8a32e9d9e 100644 --- a/pkg/errors/errors.go +++ b/pkg/errors/errors.go @@ -5,6 +5,7 @@ package errors import ( "encoding/json" + "errors" ) // Error specifies an API that must be fullfiled by error type. @@ -80,9 +81,9 @@ func Contains(e1, e2 error) bool { if ce.Msg() == e2.Error() { return true } - return Contains(ce.Err(), e2) + return errors.Is(ce.Err(), e2) } - return e1.Error() == e2.Error() + return errors.Is(e1, e2) } // Wrap returns an Error that wrap err with wrapper. From 9cd9e43bc09555c8821b3845ce80c38e61e049af Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Wed, 12 Jun 2024 20:21:01 +0300 Subject: [PATCH 17/20] Refactor: Error types Signed-off-by: nyagamunene --- bootstrap/service.go | 239 +++++++++-- internal/api/common.go | 101 +++-- internal/apiutil/errors.go | 831 +++++++++++++++++++++++++++++------- pkg/errors/service/types.go | 288 ++++++++++--- pkg/errors/types.go | 72 +++- pkg/sdk/go/users_test.go | 16 +- things/service.go | 12 +- users/service.go | 12 +- 8 files changed, 1243 insertions(+), 328 deletions(-) diff --git a/bootstrap/service.go b/bootstrap/service.go index 1214e944c4..31509536ba 100644 --- a/bootstrap/service.go +++ b/bootstrap/service.go @@ -17,36 +17,215 @@ import ( mgsdk "github.com/absmach/magistrala/pkg/sdk/go" ) -var ( - // ErrThings indicates failure to communicate with Magistrala Things service. - // It can be due to networking error or invalid/unauthenticated request. - ErrThings = errors.New("failed to receive response from Things service") - - // ErrExternalKey indicates a non-existent bootstrap configuration for given external key. - ErrExternalKey = errors.New("failed to get bootstrap configuration for given external key") - - // ErrExternalKeySecure indicates error in getting bootstrap configuration for given encrypted external key. - ErrExternalKeySecure = errors.New("failed to get bootstrap configuration for given encrypted external key") - - // ErrBootstrap indicates error in getting bootstrap configuration. - ErrBootstrap = errors.New("failed to read bootstrap configuration") - - // ErrAddBootstrap indicates error in adding bootstrap configuration. - ErrAddBootstrap = errors.New("failed to add bootstrap configuration") - - errUpdateConnections = errors.New("failed to update connections") - errRemoveBootstrap = errors.New("failed to remove bootstrap configuration") - errChangeState = errors.New("failed to change state of bootstrap configuration") - errUpdateChannel = errors.New("failed to update channel") - errRemoveConfig = errors.New("failed to remove bootstrap configuration") - errRemoveChannel = errors.New("failed to remove channel") - errCreateThing = errors.New("failed to create thing") - errDisconnectThing = errors.New("failed to disconnect thing") - errCheckChannels = errors.New("failed to check if channels exists") - errConnectionChannels = errors.New("failed to check channels connections") - errThingNotFound = errors.New("failed to find thing") - errUpdateCert = errors.New("failed to update cert") -) +// ErrThings indicates failure to communicate with Magistrala Things service. +// It can be due to networking error or invalid/unauthenticated request. +type ThingsError struct { + Err errors.Error +} + +func (te *ThingsError) Error() string { + return te.Err.Error() +} + +var ErrThings = &ThingsError{ + Err: errors.New("failed to receive response from Things service"), +} + +// ErrExternalKey indicates a non-existent bootstrap configuration for given external key. +type ExternalKeyError struct { + Err errors.Error +} + +func (eke *ExternalKeyError) Error() string { + return eke.Err.Error() +} + +var ErrExternalKey = &ExternalKeyError{ + Err: errors.New("failed to get bootstrap configuration for given external key"), +} + +// ErrExternalKeySecure indicates error in getting bootstrap configuration for given encrypted external key. +type ExternalKeySecureError struct { + Err errors.Error +} + +func (ekse *ExternalKeySecureError) Error() string { + return ekse.Err.Error() +} + +var ErrExternalKeySecure = &ExternalKeySecureError{ + Err: errors.New("failed to get bootstrap configuration for given encrypted external key"), +} + +// ErrBootstrap indicates error in getting bootstrap configuration. +type BootstrapError struct { + Err errors.Error +} + +func (be *BootstrapError) Error() string { + return be.Err.Error() +} + +var ErrBootstrap = &BootstrapError{ + Err: errors.New("failed to read bootstrap configuration"), +} + +// ErrAddBootstrap indicates error in adding bootstrap configuration. +type AddBootstrapError struct { + Err errors.Error +} + +func (abe *AddBootstrapError) Error() string { + return abe.Err.Error() +} + +var ErrAddBootstrap = &AddBootstrapError{ + Err: errors.New("failed to add bootstrap configuration"), +} + +type UpdateConnectionsError struct { + Err errors.Error +} + +func (uce *UpdateConnectionsError) Error() string { + return uce.Err.Error() +} + +var errUpdateConnections = &UpdateConnectionsError{ + Err: errors.New("failed to update connections"), +} + +type RemoveBootstrapError struct { + Err errors.Error +} + +func (rbe *RemoveBootstrapError) Error() string { + return rbe.Err.Error() +} + +var errRemoveBootstrap = &RemoveBootstrapError{ + Err: errors.New("failed to remove bootstrap configuration"), +} + +type ChangeStateError struct { + Err errors.Error +} + +func (cse *ChangeStateError) Error() string { + return cse.Err.Error() +} + +var errChangeState = &ChangeStateError{ + Err: errors.New("failed to change state of bootstrap configuration"), +} + +type UpdateChannelError struct { + Err errors.Error +} + +func (uce *UpdateChannelError) Error() string { + return uce.Err.Error() +} + +var errUpdateChannel = &UpdateChannelError{ + Err: errors.New("failed to update channel"), +} + +type RemoveConfigError struct { + Err errors.Error +} + +func (rce *RemoveConfigError) Error() string { + return rce.Err.Error() +} + +var errRemoveConfig = &RemoveConfigError{ + Err: errors.New("failed to remove bootstrap configuration"), +} + +type RemoveChannelError struct { + Err errors.Error +} + +func (rce *RemoveChannelError) Error() string { + return rce.Err.Error() +} + +var errRemoveChannel = &RemoveChannelError{ + Err: errors.New("failed to remove channel"), +} + +type CreateThingError struct { + Err errors.Error +} + +func (cte *CreateThingError) Error() string { + return cte.Err.Error() +} + +var errCreateThing = &CreateThingError{ + Err: errors.New("failed to create thing"), +} + +type DisconnectThingError struct { + Err errors.Error +} + +func (dte *DisconnectThingError) Error() string { + return dte.Err.Error() +} + +var errDisconnectThing = &DisconnectThingError{ + Err: errors.New("failed to disconnect thing"), +} + +type CheckChannelsError struct { + Err errors.Error +} + +func (cce *CheckChannelsError) Error() string { + return cce.Err.Error() +} + +var errCheckChannels = &CheckChannelsError{ + Err: errors.New("failed to check if channels exists"), +} + +type ConnectionChannelsError struct { + Err errors.Error +} + +func (cce *ConnectionChannelsError) Error() string { + return cce.Err.Error() +} + +var errConnectionChannels = &ConnectionChannelsError{ + Err: errors.New("failed to check channels connections"), +} + +type ThingNotFoundError struct { + Err errors.Error +} + +func (tnfe *ThingNotFoundError) Error() string { + return tnfe.Err.Error() +} + +var errThingNotFound = &ThingNotFoundError{ + Err: errors.New("failed to find thing"), +} + +type UpdateCertError struct { + Err errors.Error +} + +func (uce *UpdateCertError) Error() string { + return uce.Err.Error() +} + +var errUpdateCert = &UpdateCertError{ + Err: errors.New("failed to update cert"), +} var _ Service = (*bootstrapService)(nil) diff --git a/internal/api/common.go b/internal/api/common.go index 5181a6842a..f16df57d13 100644 --- a/internal/api/common.go +++ b/internal/api/common.go @@ -105,76 +105,71 @@ func EncodeError(_ context.Context, err error, w http.ResponseWriter) { } w.Header().Set("Content-Type", ContentType) - switch { - case errors.Contains(err, svcerr.ErrAuthorization), - errors.Contains(err, svcerr.ErrDomainAuthorization), - errors.Contains(err, bootstrap.ErrExternalKey), - errors.Contains(err, bootstrap.ErrExternalKeySecure): + switch err.(type) { + case *svcerr.AuthorizationError, *svcerr.DomainAuthorizationError, *bootstrap.ExternalKeyError, *bootstrap.ExternalKeySecureError: err = unwrap(err) w.WriteHeader(http.StatusForbidden) - case errors.Contains(err, svcerr.ErrAuthentication), - errors.Contains(err, apiutil.ErrBearerToken), - errors.Contains(err, svcerr.ErrLogin): + case *svcerr.AuthenticationError, *apiutil.BearerTokenError, *svcerr.LoginError: err = unwrap(err) w.WriteHeader(http.StatusUnauthorized) - case errors.Contains(err, svcerr.ErrMalformedEntity), - errors.Contains(err, apiutil.ErrMalformedPolicy), - errors.Contains(err, apiutil.ErrMissingSecret), - errors.Contains(err, errors.ErrMalformedEntity), - errors.Contains(err, apiutil.ErrMissingID), - errors.Contains(err, apiutil.ErrMissingName), - errors.Contains(err, apiutil.ErrMissingEmail), - errors.Contains(err, apiutil.ErrMissingHost), - errors.Contains(err, apiutil.ErrInvalidResetPass), - errors.Contains(err, apiutil.ErrEmptyList), - errors.Contains(err, apiutil.ErrMissingMemberKind), - errors.Contains(err, apiutil.ErrMissingMemberType), - errors.Contains(err, apiutil.ErrLimitSize), - errors.Contains(err, apiutil.ErrBearerKey), - errors.Contains(err, svcerr.ErrInvalidStatus), - errors.Contains(err, apiutil.ErrNameSize), - errors.Contains(err, apiutil.ErrInvalidIDFormat), - errors.Contains(err, apiutil.ErrInvalidQueryParams), - errors.Contains(err, apiutil.ErrMissingRelation), - errors.Contains(err, apiutil.ErrValidation), - errors.Contains(err, apiutil.ErrMissingIdentity), - errors.Contains(err, apiutil.ErrMissingPass), - errors.Contains(err, apiutil.ErrMissingConfPass), - errors.Contains(err, apiutil.ErrPasswordFormat), - errors.Contains(err, svcerr.ErrInvalidRole), - errors.Contains(err, svcerr.ErrInvalidPolicy), - errors.Contains(err, apiutil.ErrInvitationState), - errors.Contains(err, apiutil.ErrInvalidAPIKey), - errors.Contains(err, svcerr.ErrViewEntity), - errors.Contains(err, apiutil.ErrBootstrapState), - errors.Contains(err, apiutil.ErrMissingCertData), - errors.Contains(err, apiutil.ErrInvalidContact), - errors.Contains(err, apiutil.ErrInvalidTopic), - errors.Contains(err, bootstrap.ErrAddBootstrap), - errors.Contains(err, apiutil.ErrInvalidCertData), - errors.Contains(err, apiutil.ErrEmptyMessage): + case *svcerr.MalformedEntityError, + *apiutil.MalformedPolicyError, + *apiutil.MissingSecretError, + *errors.MalformedEntityError, + *apiutil.MissingIDError, + *apiutil.MissingNameError, + *apiutil.MissingEmailError, + *apiutil.MissingHostError, + *apiutil.InvalidResetPassError, + *apiutil.EmptyListError, + *apiutil.MissingMemberKindError, + *apiutil.MissingMemberTypeError, + *apiutil.LimitSizeError, + *apiutil.BearerKeyError, + *svcerr.InvalidStatusError, + *apiutil.NameSizeError, + *apiutil.InvalidIDFormatError, + *apiutil.InvalidQueryParamsError, + *apiutil.MissingRelationError, + *apiutil.ValidationError, + *apiutil.MissingIdentityError, + *apiutil.MissingPassError, + *apiutil.MissingConfPassError, + *apiutil.PasswordFormatError, + *svcerr.InvalidRoleError, + *svcerr.InvalidPolicyError, + *apiutil.InvitationStateError, + *apiutil.InvalidAPIKeyError, + *svcerr.ViewEntityError, + *apiutil.BootstrapStateError, + *apiutil.MissingCertDataError, + *apiutil.InvalidContactError, + *apiutil.InvalidTopicError, + *bootstrap.AddBootstrapError, + *apiutil.InvalidCertDataError, + *apiutil.EmptyMessageError: err = unwrap(err) w.WriteHeader(http.StatusBadRequest) - case errors.Contains(err, svcerr.ErrCreateEntity), - errors.Contains(err, svcerr.ErrUpdateEntity), - errors.Contains(err, svcerr.ErrRemoveEntity), - errors.Contains(err, svcerr.ErrEnableClient): + case *svcerr.CreateEntityError, + *svcerr.UpdateEntityError, + *svcerr.RemoveEntityError, + *svcerr.EnableClientError: err = unwrap(err) w.WriteHeader(http.StatusUnprocessableEntity) - case errors.Contains(err, svcerr.ErrNotFound), - errors.Contains(err, bootstrap.ErrBootstrap): + case *svcerr.NotFoundError, + *bootstrap.BootstrapError: err = unwrap(err) w.WriteHeader(http.StatusNotFound) - case errors.Contains(err, errors.ErrStatusAlreadyAssigned), - errors.Contains(err, svcerr.ErrConflict): + case *errors.StatusAlreadyAssignedError, + *svcerr.ConflictError: err = unwrap(err) w.WriteHeader(http.StatusConflict) - case errors.Contains(err, apiutil.ErrUnsupportedContentType): + case *apiutil.UnsupportedContentTypeError: err = unwrap(err) w.WriteHeader(http.StatusUnsupportedMediaType) diff --git a/internal/apiutil/errors.go b/internal/apiutil/errors.go index c0376ff87a..1c80253046 100644 --- a/internal/apiutil/errors.go +++ b/internal/apiutil/errors.go @@ -8,160 +8,679 @@ import "github.com/absmach/magistrala/pkg/errors" // Errors defined in this file are used by the LoggingErrorEncoder decorator // to distinguish and log API request validation errors and avoid that service // errors are logged twice. -var ( - // ErrValidation indicates that an error was returned by the API. - ErrValidation = errors.New("something went wrong with the request") - // ErrBearerToken indicates missing or invalid bearer user token. - ErrBearerToken = errors.New("missing or invalid bearer user token") - - // ErrBearerKey indicates missing or invalid bearer entity key. - ErrBearerKey = errors.New("missing or invalid bearer entity key") - - // ErrMissingID indicates missing entity ID. - ErrMissingID = errors.New("missing entity id") - - // ErrInvalidAuthKey indicates invalid auth key. - ErrInvalidAuthKey = errors.New("invalid auth key") - - // ErrInvalidIDFormat indicates an invalid ID format. - ErrInvalidIDFormat = errors.New("invalid id format provided") - - // ErrNameSize indicates that name size exceeds the max. - ErrNameSize = errors.New("invalid name size") - - // ErrEmailSize indicates that email size exceeds the max. - ErrEmailSize = errors.New("invalid email size") - - // ErrInvalidRole indicates that an invalid role. - ErrInvalidRole = errors.New("invalid client role") - - // ErrLimitSize indicates that an invalid limit. - ErrLimitSize = errors.New("invalid limit size") - - // ErrOffsetSize indicates an invalid offset. - ErrOffsetSize = errors.New("invalid offset size") - - // ErrInvalidOrder indicates an invalid list order. - ErrInvalidOrder = errors.New("invalid list order provided") - - // ErrInvalidDirection indicates an invalid list direction. - ErrInvalidDirection = errors.New("invalid list direction provided") - - // ErrInvalidMemberKind indicates an invalid member kind. - ErrInvalidMemberKind = errors.New("invalid member kind") - - // ErrEmptyList indicates that entity data is empty. - ErrEmptyList = errors.New("empty list provided") - - // ErrMalformedPolicy indicates that policies are malformed. - ErrMalformedPolicy = errors.New("malformed policy") - - // ErrMissingPolicySub indicates that policies are subject. - ErrMissingPolicySub = errors.New("malformed policy subject") - - // ErrMissingPolicyObj indicates missing policies object. - ErrMissingPolicyObj = errors.New("malformed policy object") - - // ErrMalformedPolicyAct indicates missing policies action. - ErrMalformedPolicyAct = errors.New("malformed policy action") - - // ErrMalformedPolicyPer indicates missing policies relation. - ErrMalformedPolicyPer = errors.New("malformed policy permission") - - // ErrMissingCertData indicates missing cert data (ttl). - ErrMissingCertData = errors.New("missing certificate data") - - // ErrInvalidCertData indicates invalid cert data (ttl). - ErrInvalidCertData = errors.New("invalid certificate data") - - // ErrInvalidTopic indicates an invalid subscription topic. - ErrInvalidTopic = errors.New("invalid Subscription topic") - - // ErrInvalidContact indicates an invalid subscription contract. - ErrInvalidContact = errors.New("invalid Subscription contact") - - // ErrMissingEmail indicates missing email. - ErrMissingEmail = errors.New("missing email") - - // ErrMissingHost indicates missing host. - ErrMissingHost = errors.New("missing host") - - // ErrMissingPass indicates missing password. - ErrMissingPass = errors.New("missing password") - - // ErrMissingConfPass indicates missing conf password. - ErrMissingConfPass = errors.New("missing conf password") - - // ErrInvalidResetPass indicates an invalid reset password. - ErrInvalidResetPass = errors.New("invalid reset password") - - // ErrInvalidComparator indicates an invalid comparator. - ErrInvalidComparator = errors.New("invalid comparator") - - // ErrMissingMemberType indicates missing group member type. - ErrMissingMemberType = errors.New("missing group member type") - - // ErrMissingMemberKind indicates missing group member kind. - ErrMissingMemberKind = errors.New("missing group member kind") - - // ErrMissingRelation indicates missing relation. - ErrMissingRelation = errors.New("missing relation") - - // ErrInvalidRelation indicates an invalid relation. - ErrInvalidRelation = errors.New("invalid relation") - - // ErrInvalidAPIKey indicates an invalid API key type. - ErrInvalidAPIKey = errors.New("invalid api key type") - - // ErrBootstrapState indicates an invalid bootstrap state. - ErrBootstrapState = errors.New("invalid bootstrap state") - - // ErrInvitationState indicates an invalid invitation state. - ErrInvitationState = errors.New("invalid invitation state") - - // ErrMissingIdentity indicates missing entity Identity. - ErrMissingIdentity = errors.New("missing entity identity") - - // ErrMissingSecret indicates missing secret. - ErrMissingSecret = errors.New("missing secret") - - // ErrPasswordFormat indicates weak password. - ErrPasswordFormat = errors.New("password does not meet the requirements") - - // ErrMissingName indicates missing identity name. - ErrMissingName = errors.New("missing identity name") - - // ErrInvalidLevel indicates an invalid group level. - ErrInvalidLevel = errors.New("invalid group level (should be between 0 and 5)") - - // ErrNotFoundParam indicates that the parameter was not found in the query. - ErrNotFoundParam = errors.New("parameter not found in the query") - - // ErrInvalidQueryParams indicates invalid query parameters. - ErrInvalidQueryParams = errors.New("invalid query parameters") - - // ErrInvalidVisibilityType indicates invalid visibility type. - ErrInvalidVisibilityType = errors.New("invalid visibility type") - - // ErrUnsupportedContentType indicates unacceptable or lack of Content-Type. - ErrUnsupportedContentType = errors.New("unsupported content type") - - // ErrRollbackTx indicates failed to rollback transaction. - ErrRollbackTx = errors.New("failed to rollback transaction") - - // ErrInvalidAggregation indicates invalid aggregation value. - ErrInvalidAggregation = errors.New("invalid aggregation value") - - // ErrInvalidInterval indicates invalid interval value. - ErrInvalidInterval = errors.New("invalid interval value") - - // ErrMissingFrom indicates missing from value. - ErrMissingFrom = errors.New("missing from time value") - - // ErrMissingTo indicates missing to value. - ErrMissingTo = errors.New("missing to time value") - - // ErrEmptyMessage indicates empty message. - ErrEmptyMessage = errors.New("empty message") -) +// ValidationError indicates that an error was returned by the API. +type ValidationError struct { + Err errors.Error +} + +func (eve *ValidationError) Error() string { + return eve.Err.Error() +} + +var ErrValidation = &ValidationError{ + Err: errors.New("something went wrong with the request"), +} + +// BearerTokenError indicates missing or invalid bearer user token. +type BearerTokenError struct { + Err errors.Error +} + +func (ebte *BearerTokenError) Error() string { + return ebte.Err.Error() +} + +var ErrBearerToken = &BearerTokenError{ + Err: errors.New("missing or invalid bearer user token"), +} + +// BearerKeyError indicates missing or invalid bearer entity key. +type BearerKeyError struct { + Err errors.Error +} + +func (ebke *BearerKeyError) Error() string { + return ebke.Err.Error() +} + +var ErrBearerKey = &BearerKeyError{ + Err: errors.New("missing or invalid bearer entity key"), +} + +// MissingIDError indicates missing entity ID. +type MissingIDError struct { + Err errors.Error +} + +func (mide *MissingIDError) Error() string { + return mide.Err.Error() +} + +var ErrMissingID = &MissingIDError{ + Err: errors.New("missing entity id"), +} + +// InvalidAuthKeyError indicates invalid auth key. +type InvalidAuthKeyError struct { + Err errors.Error +} + +func (iahe *InvalidAuthKeyError) Error() string { + return iahe.Err.Error() +} + +var ErrInvalidAuthKey = &InvalidAuthKeyError{ + Err: errors.New("invalid auth key"), +} + +// InvalidIDFormatError indicates an invalid ID format. +type InvalidIDFormatError struct { + Err errors.Error +} + +func (iife *InvalidIDFormatError) Error() string { + return iife.Err.Error() +} + +var ErrInvalidIDFormat = &InvalidIDFormatError{ + Err: errors.New("invalid id format provided"), +} + +// NameSizeError indicates that name size exceeds the max. +type NameSizeError struct { + Err errors.Error +} + +func (nse *NameSizeError) Error() string { + return nse.Err.Error() +} + +var ErrNameSize = &NameSizeError{ + Err: errors.New("invalid name size"), +} + +// EmailSizeError indicates that email size exceeds the max. +type EmailSizeError struct { + Err errors.Error +} + +func (ese *EmailSizeError) Error() string { + return ese.Err.Error() +} + +var ErrEmailSize = &EmailSizeError{ + Err: errors.New("invalid email size"), +} + +// InvalidRoleError indicates that an invalid role. +type InvalidRoleError struct { + Err errors.Error +} + +func (ire *InvalidRoleError) Error() string { + return ire.Err.Error() +} + +var ErrInvalidRole = &InvalidRoleError{ + Err: errors.New("invalid client role"), +} + +// LimitSizeError indicates that an invalid limit. +type LimitSizeError struct { + Err errors.Error +} + +func (lse *LimitSizeError) Error() string { + return lse.Err.Error() +} + +var ErrLimitSize = &LimitSizeError{ + Err: errors.New("invalid limit size"), +} + +// OffsetSizeError indicates an invalid offset. +type OffsetSizeError struct { + Err errors.Error +} + +func (ose *OffsetSizeError) Error() string { + return ose.Err.Error() +} + +var ErrOffsetSize = &OffsetSizeError{ + Err: errors.New("invalid offset size"), +} + +// InvalidOrderError indicates an invalid list order. +type InvalidOrderError struct { + Err errors.Error +} + +func (ioe *InvalidOrderError) Error() string { + return ioe.Err.Error() +} + +var ErrInvalidOrder = &InvalidOrderError{ + Err: errors.New("invalid list order provided"), +} + +// InvalidDirectionError indicates an invalid list direction. +type InvalidDirectionError struct { + Err errors.Error +} + +func (ide *InvalidDirectionError) Error() string { + return ide.Err.Error() +} + +var ErrInvalidDirection = &InvalidDirectionError{ + Err: errors.New("invalid list direction provided"), +} + +// InvalidMemberKindError indicates an invalid member kind. +type InvalidMemberKindError struct { + Err errors.Error +} + +func (imke *InvalidMemberKindError) Error() string { + return imke.Err.Error() +} + +var ErrInvalidMemberKind = &InvalidMemberKindError{ + Err: errors.New("invalid member kind"), +} + +// EmptyListError indicates that entity data is empty. +type EmptyListError struct { + Err errors.Error +} + +func (ele *EmptyListError) Error() string { + return ele.Err.Error() +} + +var ErrEmptyList = &EmptyListError{ + Err: errors.New("empty list provided"), +} + +// MalformedPolicyError indicates that policies are malformed. +type MalformedPolicyError struct { + Err errors.Error +} + +func (mpe *MalformedPolicyError) Error() string { + return mpe.Err.Error() +} + +var ErrMalformedPolicy = &MalformedPolicyError{ + Err: errors.New("malformed policy"), +} + +// MissingPolicySubError indicates that policies are subject. +type MissingPolicySubError struct { + Err errors.Error +} + +func (mpse *MissingPolicySubError) Error() string { + return mpse.Err.Error() +} + +var ErrMissingPolicySub = &MissingPolicySubError{ + Err: errors.New("malformed policy subject"), +} + +// MissingPolicyObjError indicates missing policies object. +type MissingPolicyObjError struct { + Err errors.Error +} + +func (mpoe *MissingPolicyObjError) Error() string { + return mpoe.Err.Error() +} + +var ErrMissingPolicyObj = &MissingPolicyObjError{ + Err: errors.New("malformed policy object"), +} + +// MalformedPolicyActError indicates missing policies action. +type MalformedPolicyActError struct { + Err errors.Error +} + +func (mpae *MalformedPolicyActError) Error() string { + return mpae.Err.Error() +} + +var ErrMalformedPolicyAct = &MalformedPolicyActError{ + Err: errors.New("malformed policy action"), +} + +// MalformedPolicyPerError indicates missing policies relation. +type MalformedPolicyPerError struct { + Err errors.Error +} + +func (mppe *MalformedPolicyPerError) Error() string { + return mppe.Err.Error() +} + +var ErrMalformedPolicyPer = &MalformedPolicyPerError{ + Err: errors.New("malformed policy permission"), +} + +// MissingCertDataError indicates missing cert data (ttl). +type MissingCertDataError struct { + Err errors.Error +} + +func (mcde *MissingCertDataError) Error() string { + return mcde.Err.Error() +} + +var ErrMissingCertData = &MissingCertDataError{ + Err: errors.New("missing certificate data"), +} + +// InvalidCertDataError indicates invalid cert data (ttl). +type InvalidCertDataError struct { + Err errors.Error +} + +func (icde *InvalidCertDataError) Error() string { + return icde.Err.Error() +} + +var ErrInvalidCertData = &InvalidCertDataError{ + Err: errors.New("invalid certificate data"), +} + +// InvalidTopicError indicates an invalid subscription topic. +type InvalidTopicError struct { + Err errors.Error +} + +func (ite *InvalidTopicError) Error() string { + return ite.Err.Error() +} + +var ErrInvalidTopic = &InvalidTopicError{ + Err: errors.New("invalid subscription topic"), +} + +// InvalidContactError indicates an invalid subscription contract. +type InvalidContactError struct { + Err errors.Error +} + +func (ice *InvalidContactError) Error() string { + return ice.Err.Error() +} + +var ErrInvalidContact = &InvalidContactError{ + Err: errors.New("invalid subscription contact"), +} + +// MissingEmailError indicates missing email. +type MissingEmailError struct { + Err errors.Error +} + +func (mee *MissingEmailError) Error() string { + return mee.Err.Error() +} + +var ErrMissingEmail = &MissingEmailError{ + Err: errors.New("missing email"), +} + +// MissingHostError indicates missing host. +type MissingHostError struct { + Err errors.Error +} + +func (mhe *MissingHostError) Error() string { + return mhe.Err.Error() +} + +var ErrMissingHost = &MissingHostError{ + Err: errors.New("missing host"), +} + +// MissingPassError indicates missing password. +type MissingPassError struct { + Err errors.Error +} + +func (mpe *MissingPassError) Error() string { + return mpe.Err.Error() +} + +var ErrMissingPass = &MissingPassError{ + Err: errors.New("missing password"), +} + +// MissingConfPassError indicates missing conf password. +type MissingConfPassError struct { + Err errors.Error +} + +func (mcpe *MissingConfPassError) Error() string { + return mcpe.Err.Error() +} + +var ErrMissingConfPass = &MissingConfPassError{ + Err: errors.New("missing conf password"), +} + +// InvalidResetPassError indicates an invalid reset password. +type InvalidResetPassError struct { + Err errors.Error +} + +func (irpe *InvalidResetPassError) Error() string { + return irpe.Err.Error() +} + +var ErrInvalidResetPass = &InvalidResetPassError{ + Err: errors.New("invalid reset password"), +} + +// InvalidComparatorError indicates an invalid comparator. +type InvalidComparatorError struct { + Err errors.Error +} + +func (ice *InvalidComparatorError) Error() string { + return ice.Err.Error() +} + +var ErrInvalidComparator = &InvalidComparatorError{ + Err: errors.New("invalid comparator"), +} + +// MissingMemberTypeError indicates missing group member type. +type MissingMemberTypeError struct { + Err errors.Error +} + +func (mmte *MissingMemberTypeError) Error() string { + return mmte.Err.Error() +} + +var ErrMissingMemberType = &MissingMemberTypeError{ + Err: errors.New("missing group member type"), +} + +// MissingMemberKindError indicates missing group member kind. +type MissingMemberKindError struct { + Err errors.Error +} + +func (mmke *MissingMemberKindError) Error() string { + return mmke.Err.Error() +} + +var ErrMissingMemberKind = &MissingMemberKindError{ + Err: errors.New("missing group member kind"), +} + +// MissingRelationError indicates missing relation. +type MissingRelationError struct { + Err errors.Error +} + +func (mre *MissingRelationError) Error() string { + return mre.Err.Error() +} + +var ErrMissingRelation = &MissingRelationError{ + Err: errors.New("missing relation"), +} + +// InvalidRelationError indicates an invalid relation. +type InvalidRelationError struct { + Err errors.Error +} + +func (ire *InvalidRelationError) Error() string { + return ire.Err.Error() +} + +var ErrInvalidRelation = &InvalidRelationError{ + Err: errors.New("invalid relation"), +} + +// InvalidAPIKeyError indicates an invalid API key type. +type InvalidAPIKeyError struct { + Err errors.Error +} + +func (iake *InvalidAPIKeyError) Error() string { + return iake.Err.Error() +} + +var ErrInvalidAPIKey = &InvalidAPIKeyError{ + Err: errors.New("invalid api key type"), +} + +// BootstrapStateError indicates an invalid bootstrap state. +type BootstrapStateError struct { + Err errors.Error +} + +func (bse *BootstrapStateError) Error() string { + return bse.Err.Error() +} + +var ErrBootstrapState = &BootstrapStateError{ + Err: errors.New("invalid bootstrap state"), +} + +// InvitationStateError indicates an invalid invitation state. +type InvitationStateError struct { + Err errors.Error +} + +func (ise *InvitationStateError) Error() string { + return ise.Err.Error() +} + +var ErrInvitationState = &InvitationStateError{ + Err: errors.New("invalid invitation state"), +} + +// MissingIdentityError indicates missing entity Identity. +type MissingIdentityError struct { + Err errors.Error +} + +func (mie *MissingIdentityError) Error() string { + return mie.Err.Error() +} + +var ErrMissingIdentity = &MissingIdentityError{ + Err: errors.New("missing entity identity"), +} + +// MissingSecretError indicates missing secret. +type MissingSecretError struct { + Err errors.Error +} + +func (mse *MissingSecretError) Error() string { + return mse.Err.Error() +} + +var ErrMissingSecret = &MissingSecretError{ + Err: errors.New("missing secret"), +} + +// PasswordFormatError indicates weak password. +type PasswordFormatError struct { + Err errors.Error +} + +func (pfe *PasswordFormatError) Error() string { + return pfe.Err.Error() +} + +var ErrPasswordFormat = &PasswordFormatError{ + Err: errors.New("password does not meet the requirements"), +} + +// MissingNameError indicates missing identity name. +type MissingNameError struct { + Err errors.Error +} + +func (mne *MissingNameError) Error() string { + return mne.Err.Error() +} + +var ErrMissingName = &MissingNameError{ + Err: errors.New("missing identity name"), +} + +// InvalidLevelError indicates an invalid group level. +type InvalidLevelError struct { + Err errors.Error +} + +func (ile *InvalidLevelError) Error() string { + return ile.Err.Error() +} + +var ErrInvalidLevel = &InvalidLevelError{ + Err: errors.New("invalid group level (should be between 0 and 5)"), +} + +// NotFoundParamError indicates that the parameter was not found in the query. +type NotFoundParamError struct { + Err errors.Error +} + +func (nfpe *NotFoundParamError) Error() string { + return nfpe.Err.Error() +} + +var ErrNotFoundParam = &NotFoundParamError{ + Err: errors.New("parameter not found in the query"), +} + +// InvalidQueryParamsError indicates invalid query parameters. +type InvalidQueryParamsError struct { + Err errors.Error +} + +func (iqpe *InvalidQueryParamsError) Error() string { + return iqpe.Err.Error() +} + +var ErrInvalidQueryParams = &InvalidQueryParamsError{ + Err: errors.New("invalid query parameters"), +} + +// InvalidVisibilityTypeError indicates invalid visibility type. +type InvalidVisibilityTypeError struct { + Err errors.Error +} + +func (ivte *InvalidVisibilityTypeError) Error() string { + return ivte.Err.Error() +} + +var ErrInvalidVisibilityType = &InvalidVisibilityTypeError{ + Err: errors.New("invalid visibility type"), +} + +// UnsupportedContentTypeError indicates unacceptable or lack of Content-Type. +type UnsupportedContentTypeError struct { + Err errors.Error +} + +func (ucte *UnsupportedContentTypeError) Error() string { + return ucte.Err.Error() +} + +var ErrUnsupportedContentType = &UnsupportedContentTypeError{ + Err: errors.New("unsupported content type"), +} + +// RollbackTxError indicates failed to rollback transaction. +type RollbackTxError struct { + Err errors.Error +} + +func (rte *RollbackTxError) Error() string { + return rte.Err.Error() +} + +var ErrRollbackTx = &RollbackTxError{ + Err: errors.New("failed to rollback transaction"), +} + +// InvalidAggregationError indicates invalid aggregation value. +type InvalidAggregationError struct { + Err errors.Error +} + +func (iae *InvalidAggregationError) Error() string { + return iae.Err.Error() +} + +var ErrInvalidAggregation = &InvalidAggregationError{ + Err: errors.New("invalid aggregation value"), +} + +// InvalidIntervalError indicates invalid interval value. +type InvalidIntervalError struct { + Err errors.Error +} + +func (iie *InvalidIntervalError) Error() string { + return iie.Err.Error() +} + +var ErrInvalidInterval = &InvalidIntervalError{ + Err: errors.New("invalid interval value"), +} + +// MissingFromError indicates missing from value. +type MissingFromError struct { + Err errors.Error +} + +func (mfe *MissingFromError) Error() string { + return mfe.Err.Error() +} + +var ErrMissingFrom = &MissingFromError{ + Err: errors.New("missing from time value"), +} + +// MissingToError indicates missing to value. +type MissingToError struct { + Err errors.Error +} + +func (mte *MissingToError) Error() string { + return mte.Err.Error() +} + +var ErrMissingTo = &MissingToError{ + Err: errors.New("missing to time value"), +} + +// EmptyMessageError indicates empty message. +type EmptyMessageError struct { + Err errors.Error +} + +func (eme *EmptyMessageError) Error() string { + return eme.Err.Error() +} + +var ErrEmptyMessage = &EmptyMessageError{ + Err: errors.New("empty message"), +} diff --git a/pkg/errors/service/types.go b/pkg/errors/service/types.go index 13ff3e58f3..96b520a0a9 100644 --- a/pkg/errors/service/types.go +++ b/pkg/errors/service/types.go @@ -6,58 +6,236 @@ package service import "github.com/absmach/magistrala/pkg/errors" // Wrapper for Service errors. -var ( - // ErrAuthentication indicates failure occurred while authenticating the entity. - ErrAuthentication = errors.New("failed to perform authentication over the entity") - - // ErrAuthorization indicates failure occurred while authorizing the entity. - ErrAuthorization = errors.New("failed to perform authorization over the entity") - - // ErrDomainAuthorization indicates failure occurred while authorizing the domain. - ErrDomainAuthorization = errors.New("failed to perform authorization over the domain") - - // ErrLogin indicates wrong login credentials. - ErrLogin = errors.New("invalid user id or secret") - - // ErrMalformedEntity indicates a malformed entity specification. - ErrMalformedEntity = errors.New("malformed entity specification") - - // ErrNotFound indicates a non-existent entity request. - ErrNotFound = errors.New("entity not found") - - // ErrConflict indicates that entity already exists. - ErrConflict = errors.New("entity already exists") - - // ErrCreateEntity indicates error in creating entity or entities. - ErrCreateEntity = errors.New("failed to create entity") - - // ErrRemoveEntity indicates error in removing entity. - ErrRemoveEntity = errors.New("failed to remove entity") - - // ErrViewEntity indicates error in viewing entity or entities. - ErrViewEntity = errors.New("view entity failed") - - // ErrUpdateEntity indicates error in updating entity or entities. - ErrUpdateEntity = errors.New("update entity failed") - - // ErrInvalidStatus indicates an invalid status. - ErrInvalidStatus = errors.New("invalid status") - - // ErrInvalidRole indicates that an invalid role. - ErrInvalidRole = errors.New("invalid client role") - - // ErrInvalidPolicy indicates that an invalid policy. - ErrInvalidPolicy = errors.New("invalid policy") - - // ErrEnableClient indicates error in enabling client. - ErrEnableClient = errors.New("failed to enable client") - - // ErrDisableClient indicates error in disabling client. - ErrDisableClient = errors.New("failed to disable client") - - // ErrAddPolicies indicates error in adding policies. - ErrAddPolicies = errors.New("failed to add policies") - - // ErrDeletePolicies indicates error in removing policies. - ErrDeletePolicies = errors.New("failed to remove policies") -) +// ErrAuthentication indicates failure occurred while authenticating the entity. +type AuthenticationError struct { + Err errors.Error +} + +func (ae *AuthenticationError) Error() string { + return ae.Err.Error() +} + +var ErrAuthentication = &AuthenticationError{ + Err: errors.New("failed to perform authentication over the entity"), +} + +// ErrAuthorization indicates failure occurred while authorizing the entity. +type AuthorizationError struct { + Err errors.Error +} + +func (ae *AuthorizationError) Error() string { + return ae.Err.Error() +} + +var ErrAuthorization = &AuthorizationError{ + Err: errors.New("failed to perform authorization over the entity"), +} + +// ErrDomainAuthorization indicates failure occurred while authorizing the domain. +type DomainAuthorizationError struct { + Err errors.Error +} + +func (dae *DomainAuthorizationError) Error() string { + return dae.Err.Error() +} + +var ErrDomainAuthorization = &DomainAuthorizationError{ + Err: errors.New("failed to perform authorization over the domain"), +} + +// ErrLogin indicates wrong login credentials. +type LoginError struct { + Err errors.Error +} + +func (le *LoginError) Error() string { + return le.Err.Error() +} + +var ErrLogin = &LoginError{ + Err: errors.New("invalid user id or secret"), +} + +// ErrMalformedEntity indicates a malformed entity specification. +type MalformedEntityError struct { + Err errors.Error +} + +func (mee *MalformedEntityError) Error() string { + return mee.Err.Error() +} + +var ErrMalformedEntity = &MalformedEntityError{ + Err: errors.New("malformed entity specification"), +} + +// ErrNotFound indicates a non-existent entity request. +type NotFoundError struct { + Err errors.Error +} + +func (nfe *NotFoundError) Error() string { + return nfe.Err.Error() +} + +var ErrNotFound = &NotFoundError{ + Err: errors.New("entity not found"), +} + +// ErrConflict indicates that entity already exists. +type ConflictError struct { + Err errors.Error +} + +func (ce *ConflictError) Error() string { + return ce.Err.Error() +} + +var ErrConflict = &ConflictError{ + Err: errors.New("entity already exists"), +} + +// ErrCreateEntity indicates error in creating entity or entities. +type CreateEntityError struct { + Err errors.Error +} + +func (cee *CreateEntityError) Error() string { + return cee.Err.Error() +} + +var ErrCreateEntity = &CreateEntityError{ + Err: errors.New("failed to create entity"), +} + +// ErrRemoveEntity indicates error in removing entity. +type RemoveEntityError struct { + Err errors.Error +} + +func (ree *RemoveEntityError) Error() string { + return ree.Err.Error() +} + +var ErrRemoveEntity = &RemoveEntityError{ + Err: errors.New("failed to remove entity"), +} + +// ErrViewEntity indicates error in viewing entity or entities. +type ViewEntityError struct { + Err errors.Error +} + +func (vee *ViewEntityError) Error() string { + return vee.Err.Error() +} + +var ErrViewEntity = &ViewEntityError{ + Err: errors.New("view entity failed"), +} + +// ErrUpdateEntity indicates error in updating entity or entities. +type UpdateEntityError struct { + Err errors.Error +} + +func (uee *UpdateEntityError) Error() string { + return uee.Err.Error() +} + +var ErrUpdateEntity = &UpdateEntityError{ + Err: errors.New("update entity failed"), +} + +// ErrInvalidStatus indicates an invalid status. +type InvalidStatusError struct { + Err errors.Error +} + +func (ise *InvalidStatusError) Error() string { + return ise.Err.Error() +} + +var ErrInvalidStatus = &InvalidStatusError{ + Err: errors.New("invalid status"), +} + +// ErrInvalidRole indicates that an invalid role. +type InvalidRoleError struct { + Err errors.Error +} + +func (ire *InvalidRoleError) Error() string { + return ire.Err.Error() +} + +var ErrInvalidRole = &InvalidRoleError{ + Err: errors.New("invalid client role"), +} + +// ErrInvalidPolicy indicates that an invalid policy. +type InvalidPolicyError struct { + Err errors.Error +} + +func (ipe *InvalidPolicyError) Error() string { + return ipe.Err.Error() +} + +var ErrInvalidPolicy = &InvalidPolicyError{ + Err: errors.New("invalid policy"), +} + +// ErrEnableClient indicates error in enabling client. +type EnableClientError struct { + Err errors.Error +} + +func (ece *EnableClientError) Error() string { + return ece.Err.Error() +} + +var ErrEnableClient = &EnableClientError{ + Err: errors.New("failed to enable client"), +} + +// ErrDisableClient indicates error in disabling client. +type DisableClientError struct { + Err errors.Error +} + +func (dce *DisableClientError) Error() string { + return dce.Err.Error() +} + +var ErrDisableClient = &DisableClientError{ + Err: errors.New("failed to disable client"), +} + +// ErrAddPolicies indicates error in adding policies. +type AddPoliciesError struct { + Err errors.Error +} + +func (ape *AddPoliciesError) Error() string { + return ape.Err.Error() +} + +var ErrAddPolicies = &AddPoliciesError{ + Err: errors.New("failed to add policies"), +} + +// ErrDeletePolicies indicates error in removing policies. +type DeletePoliciesError struct { + Err errors.Error +} + +func (dpe *DeletePoliciesError) Error() string { + return dpe.Err.Error() +} + +var ErrDeletePolicies = &DeletePoliciesError{ + Err: errors.New("failed to remove policies"), +} diff --git a/pkg/errors/types.go b/pkg/errors/types.go index 2d047d3972..198d661a5b 100644 --- a/pkg/errors/types.go +++ b/pkg/errors/types.go @@ -3,23 +3,67 @@ package errors +// ErrMalformedEntity indicates a malformed entity specification. +type MalformedEntityError struct { + Err Error +} -var ( - // ErrMalformedEntity indicates a malformed entity specification. - ErrMalformedEntity = New("malformed entity specification") +func (mee *MalformedEntityError) Error() string { + return mee.Err.Error() +} - // ErrUnsupportedContentType indicates invalid content type. - ErrUnsupportedContentType = New("invalid content type") +var ErrMalformedEntity = &MalformedEntityError{ + Err: New("malformed entity specification"), +} - // ErrUnidentified indicates unidentified error. - ErrUnidentified = New("unidentified error") +// ErrUnsupportedContentType indicates invalid content type. +type UnsupportedContentTypeError struct { + Err Error +} - // ErrEmptyPath indicates empty file path. - ErrEmptyPath = New("empty file path") +func (ucte *UnsupportedContentTypeError) Error() string { + return ucte.Err.Error() +} - // ErrStatusAlreadyAssigned indicated that the client or group has already been assigned the status. - ErrStatusAlreadyAssigned = New("status already assigned") +var ErrUnsupportedContentType = &UnsupportedContentTypeError{ + Err: New("invalid content type"), +} - // ErrRollbackTx indicates failed to rollback transaction. - ErrRollbackTx = New("failed to rollback transaction") -) +// ErrUnidentified indicates unidentified error. +type UnidentifiedError struct { + Err Error +} + +func (ue *UnidentifiedError) Error() string { + return ue.Err.Error() +} + +var ErrUnidentified = &UnidentifiedError{ + Err: New("unidentified error"), +} + +// ErrEmptyPath indicates empty file path. +type EmptyPathError struct { + Err Error +} + +func (epe *EmptyPathError) Error() string { + return epe.Err.Error() +} + +var ErrEmptyPath = &EmptyPathError{ + Err: New("empty file path"), +} + +// ErrStatusAlreadyAssigned indicated that the client or group has already been assigned the status. +type StatusAlreadyAssignedError struct { + Err Error +} + +func (sae *StatusAlreadyAssignedError) Error() string { + return sae.Err.Error() +} + +var ErrStatusAlreadyAssigned = &StatusAlreadyAssignedError{ + Err: New("status already assigned"), +} diff --git a/pkg/sdk/go/users_test.go b/pkg/sdk/go/users_test.go index e8d4604ed8..1052dde9d8 100644 --- a/pkg/sdk/go/users_test.go +++ b/pkg/sdk/go/users_test.go @@ -407,8 +407,8 @@ func TestClient(t *testing.T) { response: basicUser, token: validToken, clientID: generateUUID(t), - authorizeErr: svcerr.ErrAuthentication, - checkSuperAdminErr: svcerr.ErrAuthentication, + authorizeErr: svcerr.ErrAuthentication.Err, + checkSuperAdminErr: svcerr.ErrAuthentication.Err, err: nil, }, { @@ -423,9 +423,9 @@ func TestClient(t *testing.T) { response: sdk.User{}, token: invalidToken, clientID: generateUUID(t), - identifyErr: svcerr.ErrAuthentication, + identifyErr: svcerr.ErrAuthentication.Err, authorizeErr: svcerr.ErrAuthentication, - checkSuperAdminErr: svcerr.ErrAuthentication, + checkSuperAdminErr: svcerr.ErrAuthentication.Err, err: errors.NewSDKErrorWithStatus(svcerr.ErrAuthentication, http.StatusUnauthorized), retrieveByIDErr: svcerr.ErrAuthentication, }, @@ -435,7 +435,7 @@ func TestClient(t *testing.T) { token: validToken, clientID: wrongID, authorizeErr: svcerr.ErrAuthentication, - checkSuperAdminErr: svcerr.ErrAuthentication, + checkSuperAdminErr: svcerr.ErrAuthentication.Err, err: errors.NewSDKErrorWithStatus(svcerr.ErrViewEntity, http.StatusBadRequest), retrieveByIDErr: svcerr.ErrViewEntity, }, @@ -443,10 +443,10 @@ func TestClient(t *testing.T) { desc: "view client with an invalid token and invalid client id", response: sdk.User{}, token: invalidToken, - identifyErr: svcerr.ErrAuthentication, + identifyErr: svcerr.ErrAuthentication.Err, authorizeErr: svcerr.ErrAuthentication, clientID: wrongID, - checkSuperAdminErr: svcerr.ErrAuthentication, + checkSuperAdminErr: svcerr.ErrAuthentication.Err, err: errors.NewSDKErrorWithStatus(svcerr.ErrAuthentication, http.StatusUnauthorized), retrieveByIDErr: svcerr.ErrAuthentication, }, @@ -455,7 +455,7 @@ func TestClient(t *testing.T) { response: basicUser, token: validToken, authorizeErr: svcerr.ErrAuthentication, - checkSuperAdminErr: svcerr.ErrAuthentication, + checkSuperAdminErr: svcerr.ErrAuthentication.Err, clientID: generateUUID(t), err: nil, }, diff --git a/things/service.go b/things/service.go index 105fac0820..648fbeb746 100644 --- a/things/service.go +++ b/things/service.go @@ -53,7 +53,7 @@ func (svc service) Authorize(ctx context.Context, req *magistrala.AuthorizeReq) return "", errors.Wrap(svcerr.ErrAuthorization, Err) } if !resp.GetAuthorized() { - return "", svcerr.ErrAuthorization + return "", svcerr.ErrAuthorization.Err } return thingID, nil @@ -86,7 +86,7 @@ func (svc service) CreateThings(ctx context.Context, token string, cls ...mgclie c.Credentials.Secret = key } if c.Status != mgclients.DisabledStatus && c.Status != mgclients.EnabledStatus { - return []mgclients.Client{}, svcerr.ErrInvalidStatus + return []mgclients.Client{}, svcerr.ErrInvalidStatus.Err } c.Domain = user.GetDomainId() c.CreatedAt = time.Now() @@ -135,7 +135,7 @@ func (svc service) ViewClientPerms(ctx context.Context, token, id string) ([]str return nil, err } if len(permissions) == 0 { - return nil, svcerr.ErrAuthorization + return nil, svcerr.ErrAuthorization.Err } return permissions, nil } @@ -273,7 +273,7 @@ func (svc service) checkSuperAdmin(ctx context.Context, userID string) errors.Er return errors.Cast(err) } if !res.Authorized { - return svcerr.ErrAuthorization + return svcerr.ErrAuthorization.Err } return nil } @@ -488,7 +488,7 @@ func (svc service) changeClientStatus(ctx context.Context, token string, client return mgclients.Client{}, errors.Wrap(svcerr.ErrViewEntity, err) } if dbClient.Status == client.Status { - return mgclients.Client{}, errors.ErrStatusAlreadyAssigned + return mgclients.Client{}, errors.ErrStatusAlreadyAssigned.Err } client.UpdatedBy = userID @@ -571,7 +571,7 @@ func (svc service) identify(ctx context.Context, token string) (*magistrala.Iden return nil, errors.Wrap(svcerr.ErrAuthentication, err) } if res.GetId() == "" || res.GetDomainId() == "" { - return nil, svcerr.ErrDomainAuthorization + return nil, svcerr.ErrDomainAuthorization.Err } return res, nil } diff --git a/users/service.go b/users/service.go index b554402db9..c7b9736ba6 100644 --- a/users/service.go +++ b/users/service.go @@ -444,7 +444,7 @@ func (svc service) changeClientStatus(ctx context.Context, token string, client return mgclients.Client{}, errors.Wrap(svcerr.ErrViewEntity, err) } if dbClient.Status == client.Status { - return mgclients.Client{}, errors.ErrStatusAlreadyAssigned + return mgclients.Client{}, errors.ErrStatusAlreadyAssigned.Err } client.UpdatedBy = tokenUserID @@ -590,7 +590,7 @@ func (svc *service) authorize(ctx context.Context, subjType, subjKind, subj, per } if !res.GetAuthorized() { - return "", svcerr.ErrAuthorization + return "", svcerr.ErrAuthorization.Err } return res.GetId(), nil } @@ -657,7 +657,7 @@ func (svc service) addClientPolicy(ctx context.Context, userID string, role mgcl return errors.Wrap(svcerr.ErrAddPolicies, err) } if !resp.Added { - return svcerr.ErrAuthorization + return svcerr.ErrAuthorization.Err } return nil } @@ -687,7 +687,7 @@ func (svc service) addClientPolicyRollback(ctx context.Context, userID string, r return errors.Wrap(svcerr.ErrDeletePolicies, err) } if !resp.Deleted { - return svcerr.ErrAuthorization + return svcerr.ErrAuthorization.Err } return nil } @@ -706,7 +706,7 @@ func (svc service) updateClientPolicy(ctx context.Context, userID string, role m return errors.Wrap(svcerr.ErrAddPolicies, err) } if !resp.Added { - return svcerr.ErrAuthorization + return svcerr.ErrAuthorization.Err } return nil case mgclients.UserRole: @@ -723,7 +723,7 @@ func (svc service) updateClientPolicy(ctx context.Context, userID string, role m return errors.Wrap(svcerr.ErrDeletePolicies, err) } if !resp.Deleted { - return svcerr.ErrAuthorization + return svcerr.ErrAuthorization.Err } return nil } From 363c11da10bfbbc8422eb5b54bf0638f71e20f24 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Wed, 12 Jun 2024 20:23:39 +0300 Subject: [PATCH 18/20] Refactor: Reverted back to original errors.Contains Signed-off-by: nyagamunene --- pkg/errors/errors.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/errors/errors.go b/pkg/errors/errors.go index e8a32e9d9e..51cdf93c32 100644 --- a/pkg/errors/errors.go +++ b/pkg/errors/errors.go @@ -81,11 +81,12 @@ func Contains(e1, e2 error) bool { if ce.Msg() == e2.Error() { return true } - return errors.Is(ce.Err(), e2) + return Contains(ce.Err(), e2) } - return errors.Is(e1, e2) + return e1.Error() == e2.Error() } + // Wrap returns an Error that wrap err with wrapper. func Wrap(wrapper, err error) Error { if wrapper == nil || err == nil { From 7aacba80e6e63ecb4876b37e4c4d2a7d9216664e Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Wed, 12 Jun 2024 20:52:18 +0300 Subject: [PATCH 19/20] Added rollback error Signed-off-by: nyagamunene --- pkg/errors/errors.go | 2 -- pkg/errors/types.go | 14 ++++++++++++++ things/service.go | 4 ++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/pkg/errors/errors.go b/pkg/errors/errors.go index 51cdf93c32..7a079ba5f0 100644 --- a/pkg/errors/errors.go +++ b/pkg/errors/errors.go @@ -5,7 +5,6 @@ package errors import ( "encoding/json" - "errors" ) // Error specifies an API that must be fullfiled by error type. @@ -86,7 +85,6 @@ func Contains(e1, e2 error) bool { return e1.Error() == e2.Error() } - // Wrap returns an Error that wrap err with wrapper. func Wrap(wrapper, err error) Error { if wrapper == nil || err == nil { diff --git a/pkg/errors/types.go b/pkg/errors/types.go index 198d661a5b..2bb93bae84 100644 --- a/pkg/errors/types.go +++ b/pkg/errors/types.go @@ -67,3 +67,17 @@ func (sae *StatusAlreadyAssignedError) Error() string { var ErrStatusAlreadyAssigned = &StatusAlreadyAssignedError{ Err: New("status already assigned"), } + +// ErrRollbackTx indicates failed to rollback transaction. + +type RollbackTxError struct { + Err Error +} + +func (rte *RollbackTxError) Error() string { + return rte.Err.Error() +} + +var ErrRollbackTx = &RollbackTxError{ + Err: New("failed to rollback transaction"), +} \ No newline at end of file diff --git a/things/service.go b/things/service.go index 648fbeb746..6b2a0b95cb 100644 --- a/things/service.go +++ b/things/service.go @@ -597,7 +597,7 @@ func (svc *service) authorize(ctx context.Context, domainID, subjType, subjKind, return res.GetId(), nil } -func (svc service) addThingPolicies(ctx context.Context, userID, domainID string, things []mgclients.Client) error { +func (svc service) addThingPolicies(ctx context.Context, userID, domainID string, things []mgclients.Client) errors.Error { policies := magistrala.AddPoliciesReq{} for _, thing := range things { policies.AddPoliciesReq = append(policies.AddPoliciesReq, &magistrala.AddPolicyReq{ @@ -626,7 +626,7 @@ func (svc service) addThingPolicies(ctx context.Context, userID, domainID string return nil } -func (svc service) addThingPoliciesRollback(ctx context.Context, userID, domainID string, things []mgclients.Client) error { +func (svc service) addThingPoliciesRollback(ctx context.Context, userID, domainID string, things []mgclients.Client) errors.Error { policies := magistrala.DeletePoliciesReq{} for _, thing := range things { policies.DeletePoliciesReq = append(policies.DeletePoliciesReq, &magistrala.DeletePolicyReq{ From bf977ec641ff723425607edfcde96dbc5d2a5a39 Mon Sep 17 00:00:00 2001 From: nyagamunene Date: Wed, 12 Jun 2024 20:56:42 +0300 Subject: [PATCH 20/20] linted code Signed-off-by: nyagamunene --- pkg/errors/types.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/errors/types.go b/pkg/errors/types.go index 2bb93bae84..52a3f8dd4b 100644 --- a/pkg/errors/types.go +++ b/pkg/errors/types.go @@ -80,4 +80,4 @@ func (rte *RollbackTxError) Error() string { var ErrRollbackTx = &RollbackTxError{ Err: New("failed to rollback transaction"), -} \ No newline at end of file +}