@@ -12,7 +12,6 @@ import (
12
12
13
13
"github.com/ActiveState/cli/cmd/state-svc/internal/graphqltypes"
14
14
"github.com/ActiveState/cli/cmd/state-svc/internal/hash"
15
- "github.com/ActiveState/cli/cmd/state-svc/internal/messages"
16
15
"github.com/ActiveState/cli/cmd/state-svc/internal/notifications"
17
16
"github.com/ActiveState/cli/cmd/state-svc/internal/rtwatcher"
18
17
genserver "github.com/ActiveState/cli/cmd/state-svc/internal/server/generated"
@@ -27,7 +26,7 @@ import (
27
26
"github.com/ActiveState/cli/internal/locale"
28
27
"github.com/ActiveState/cli/internal/logging"
29
28
configMediator "github.com/ActiveState/cli/internal/mediators/config"
30
- msgs "github.com/ActiveState/cli/internal/messages"
29
+ "github.com/ActiveState/cli/internal/messages"
31
30
"github.com/ActiveState/cli/internal/poller"
32
31
"github.com/ActiveState/cli/internal/rtutils/ptr"
33
32
"github.com/ActiveState/cli/internal/runbits/panics"
@@ -37,10 +36,14 @@ import (
37
36
"github.com/patrickmn/go-cache"
38
37
)
39
38
39
+ type messageQueue struct {
40
+ messages []* graph.Message
41
+ }
42
+
40
43
type Resolver struct {
41
44
cfg * config.Instance
42
45
notifications * notifications.Notifications
43
- messages * messages. Queue
46
+ messages * messageQueue
44
47
updatePoller * poller.Poller
45
48
authPoller * poller.Poller
46
49
projectIDCache * projectcache.ID
@@ -60,7 +63,7 @@ func New(cfg *config.Instance, an *sync.Client, auth *authentication.Auth) (*Res
60
63
return nil , errs .Wrap (err , "Could not initialize messages" )
61
64
}
62
65
63
- msg := messages . NewQueue ()
66
+ msg := & messageQueue { make ([] * graph. Message , 0 )}
64
67
upchecker := updater .NewDefaultChecker (cfg , an )
65
68
pollUpdate := poller .New (1 * time .Hour , func () (interface {}, error ) {
66
69
defer func () {
@@ -91,7 +94,10 @@ func New(cfg *config.Instance, an *sync.Client, auth *authentication.Auth) (*Res
91
94
var invalidTokenErr * authentication.ErrInvalidToken
92
95
if errors .As (err , & invalidTokenErr ) {
93
96
logging .Debug ("Queuing invalid API token error" )
94
- msg .Queue (msgs .TopicErrorAuthToken , locale .Tl ("err_invalid_token_try_again" , "Invalid API token. Please check your API token and try again." ))
97
+ msg .messages = append (msg .messages , & graph.Message {
98
+ Topic : messages .TopicErrorAuthToken ,
99
+ Message : locale .Tl ("err_invalid_token_try_again" , "Invalid API token. Please check your API token and try again." ),
100
+ })
95
101
} else {
96
102
logging .Warning ("Could not sync authenticated state: %s" , err .Error ())
97
103
}
@@ -273,25 +279,10 @@ func (r *Resolver) CheckNotifications(ctx context.Context, command string, flags
273
279
}
274
280
275
281
func (r * Resolver ) CheckMessages (ctx context.Context ) ([]* graph.Message , error ) {
282
+ defer func () { panics .LogAndPanic (recover (), debug .Stack ()) }()
276
283
logging .Debug ("Check messages resolver" )
277
- var messages []* graph.Message
278
- var err error
279
-
280
- defer func () {
281
- var sentMessageIDs []string
282
- for _ , msg := range messages {
283
- sentMessageIDs = append (sentMessageIDs , msg .ID )
284
- }
285
- if err := r .messages .Dequeue (sentMessageIDs ); err != nil {
286
- logging .Error ("Could not dequeue messages: %s" , errs .JoinMessage (err ))
287
- }
288
- panics .LogAndPanic (recover (), debug .Stack ())
289
- }()
290
-
291
- messages , err = r .messages .Messages ()
292
- if err != nil {
293
- return nil , errs .Wrap (err , "Could not get messages" )
294
- }
284
+ messages := r .messages .messages
285
+ r .messages .messages = r .messages .messages [:0 ] // clear queue
295
286
return messages , nil
296
287
}
297
288
0 commit comments