Skip to content

Commit 4e2d5e5

Browse files
committed
[devices] minor fixes to last seen update
1 parent d1bd95b commit 4e2d5e5

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

internal/sms-gateway/modules/devices/service.go

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"crypto/sha256"
66
"encoding/hex"
7+
"errors"
78
"fmt"
89
"time"
910

@@ -105,17 +106,21 @@ func (s *Service) SetLastSeen(ctx context.Context, batch map[string]time.Time) e
105106
return nil
106107
}
107108

108-
for deviceId, lastSeen := range batch {
109-
if ctx.Err() != nil {
110-
break
109+
var multiErr error
110+
for deviceID, lastSeen := range batch {
111+
if err := ctx.Err(); err != nil {
112+
return errors.Join(err, multiErr)
111113
}
112-
113-
if err := s.devices.SetLastSeen(ctx, deviceId, lastSeen); err != nil {
114-
s.logger.Error("can't set last seen", zap.String("device_id", deviceId), zap.Error(err))
114+
if err := s.devices.SetLastSeen(ctx, deviceID, lastSeen); err != nil {
115+
multiErr = errors.Join(multiErr, fmt.Errorf("device %s: %w", deviceID, err))
116+
s.logger.Error("can't set last seen",
117+
zap.String("device_id", deviceID),
118+
zap.Time("last_seen", lastSeen),
119+
zap.Error(err),
120+
)
115121
}
116122
}
117-
118-
return ctx.Err()
123+
return multiErr
119124
}
120125

121126
// Remove removes devices for a specific user that match the provided filters.
@@ -128,7 +133,10 @@ func (s *Service) Remove(userID string, filter ...SelectFilter) error {
128133
return err
129134
}
130135

131-
if err := s.tokensCache.Delete(device.AuthToken); err != nil {
136+
hash := sha256.Sum256([]byte(device.AuthToken))
137+
cacheKey := hex.EncodeToString(hash[:])
138+
139+
if err := s.tokensCache.Delete(cacheKey); err != nil {
132140
s.logger.Error("can't invalidate token cache", zap.Error(err))
133141
}
134142

0 commit comments

Comments
 (0)