Skip to content

Commit d16ee77

Browse files
go switch type assertion
1 parent 1fe8449 commit d16ee77

File tree

1 file changed

+15
-19
lines changed

1 file changed

+15
-19
lines changed

internal/interface/grpc/handlers/arkservice.go

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -278,17 +278,17 @@ func (h *handler) UpdateStreamTopics(
278278
return nil, status.Error(codes.InvalidArgument, "missing stream id")
279279
}
280280

281-
switch req.TopicsChange {
281+
switch topicsChange := req.GetTopicsChange().(type) {
282282
case nil:
283283
return nil, status.Error(codes.InvalidArgument, "no topics provided")
284284
// when overwrite topics is provided, it takes precedence, we will not
285285
// process add/remove topics in this case
286-
case req.GetTopicsChange().(*arkv1.UpdateStreamTopicsRequest_Overwrite):
287-
if req.GetTopicsChange().(*arkv1.UpdateStreamTopicsRequest_Overwrite).Overwrite == nil {
286+
case *arkv1.UpdateStreamTopicsRequest_Overwrite:
287+
if topicsChange.Overwrite == nil {
288288
return nil, status.Error(codes.InvalidArgument, "overwrite topics is nil")
289289
}
290290
if err := h.eventsListenerHandler.overwriteTopics(
291-
req.GetStreamId(), req.GetTopicsChange().(*arkv1.UpdateStreamTopicsRequest_Overwrite).Overwrite.Topics,
291+
req.GetStreamId(), topicsChange.Overwrite.Topics,
292292
); err != nil {
293293
return nil, status.Errorf(codes.NotFound, "overwrite topics error: %s", err.Error())
294294
}
@@ -298,36 +298,32 @@ func (h *handler) UpdateStreamTopics(
298298
TopicsRemoved: []string{},
299299
}, nil
300300
// allow adding/removing topics simultaneously
301-
case req.GetTopicsChange().(*arkv1.UpdateStreamTopicsRequest_Modify):
302-
modify := req.GetTopicsChange().(*arkv1.UpdateStreamTopicsRequest_Modify).Modify
303-
if modify == nil {
301+
case *arkv1.UpdateStreamTopicsRequest_Modify:
302+
if topicsChange.Modify == nil {
304303
return nil, status.Error(codes.InvalidArgument, "modify topics is nil")
305304
}
306-
if len(modify.AddTopics) > 0 {
305+
if len(topicsChange.Modify.AddTopics) > 0 {
307306
if err := h.eventsListenerHandler.addTopics(
308-
req.GetStreamId(), modify.AddTopics,
307+
req.GetStreamId(), topicsChange.Modify.AddTopics,
309308
); err != nil {
310309
return nil, status.Errorf(codes.NotFound, "add topics error: %s", err.Error())
311310
}
312311
}
313-
if len(modify.RemoveTopics) > 0 {
312+
if len(topicsChange.Modify.RemoveTopics) > 0 {
314313
if err := h.eventsListenerHandler.removeTopics(
315-
req.GetStreamId(), modify.RemoveTopics,
314+
req.GetStreamId(), topicsChange.Modify.RemoveTopics,
316315
); err != nil {
317316
return nil, status.Errorf(codes.NotFound, "remove topics error: %s", err.Error())
318317
}
319318
}
319+
return &arkv1.UpdateStreamTopicsResponse{
320+
TopicsAdded: topicsChange.Modify.AddTopics,
321+
TopicsRemoved: topicsChange.Modify.RemoveTopics,
322+
AllTopics: h.eventsListenerHandler.getTopics(req.GetStreamId()),
323+
}, nil
320324
default:
321325
return nil, status.Error(codes.InvalidArgument, "no topics provided")
322326
}
323-
324-
modify := req.GetTopicsChange().(*arkv1.UpdateStreamTopicsRequest_Modify).Modify
325-
return &arkv1.UpdateStreamTopicsResponse{
326-
TopicsAdded: modify.AddTopics,
327-
TopicsRemoved: modify.RemoveTopics,
328-
AllTopics: h.eventsListenerHandler.getTopics(req.GetStreamId()),
329-
}, nil
330-
331327
}
332328

333329
func (h *handler) SubmitTx(

0 commit comments

Comments
 (0)