HandleChatWatchEvent wraps a typed callback for ChatWatchEvent messages delivered via pubsub.
(cb func(ctx context.Context, payload codersdk.ChatWatchEvent, err error))
| 20 | // HandleChatWatchEvent wraps a typed callback for |
| 21 | // ChatWatchEvent messages delivered via pubsub. |
| 22 | func HandleChatWatchEvent(cb func(ctx context.Context, payload codersdk.ChatWatchEvent, err error)) func(ctx context.Context, message []byte, err error) { |
| 23 | return func(ctx context.Context, message []byte, err error) { |
| 24 | if err != nil { |
| 25 | cb(ctx, codersdk.ChatWatchEvent{}, xerrors.Errorf("chat watch event pubsub: %w", err)) |
| 26 | return |
| 27 | } |
| 28 | var payload codersdk.ChatWatchEvent |
| 29 | if err := json.Unmarshal(message, &payload); err != nil { |
| 30 | cb(ctx, codersdk.ChatWatchEvent{}, xerrors.Errorf("unmarshal chat watch event: %w", err)) |
| 31 | return |
| 32 | } |
| 33 | |
| 34 | cb(ctx, payload, err) |
| 35 | } |
| 36 | } |
no test coverage detected