orchard/internal/controller/wserror.go

27 lines
595 B
Go

package controller
import (
"fmt"
"github.com/cirruslabs/orchard/internal/responder"
"github.com/coder/websocket"
)
func (controller *Controller) wsError(
wsConn *websocket.Conn,
code websocket.StatusCode,
component string,
reason string,
err error,
) responder.Responder {
message := fmt.Sprintf("%s: %v", reason, err)
controller.logger.Warn(message)
if err := wsConn.Close(code, message); err != nil {
controller.logger.Warnf("%s: failed to close the WebSocket connection that entered error state"+
" due to %s: %v", component, reason, err)
}
return responder.Empty()
}