mirror of
https://github.com/Xevion/go-ha.git
synced 2025-12-09 02:07:21 -06:00
Merge pull request #24 from metalmatze/service-errors
Return Service errors
This commit is contained in:
@@ -23,9 +23,9 @@ type ChanMsg struct {
|
||||
|
||||
func ListenWebsocket(conn *websocket.Conn, ctx context.Context, c chan ChanMsg) {
|
||||
for {
|
||||
bytes, err := ReadMessage(conn, ctx)
|
||||
bytes, err := ReadMessage(conn)
|
||||
if err != nil {
|
||||
slog.Error("Error reading from websocket:", err)
|
||||
slog.Error("Error reading from websocket", "err", err)
|
||||
close(c)
|
||||
break
|
||||
}
|
||||
|
||||
@@ -31,19 +31,14 @@ type WebsocketWriter struct {
|
||||
mutex sync.Mutex
|
||||
}
|
||||
|
||||
func (w *WebsocketWriter) WriteMessage(msg interface{}, ctx context.Context) error {
|
||||
func (w *WebsocketWriter) WriteMessage(msg any) error {
|
||||
w.mutex.Lock()
|
||||
defer w.mutex.Unlock()
|
||||
|
||||
err := w.Conn.WriteJSON(msg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
return w.Conn.WriteJSON(msg)
|
||||
}
|
||||
|
||||
func ReadMessage(conn *websocket.Conn, ctx context.Context) ([]byte, error) {
|
||||
func ReadMessage(conn *websocket.Conn) ([]byte, error) {
|
||||
_, msg, err := conn.ReadMessage()
|
||||
if err != nil {
|
||||
return []byte{}, err
|
||||
@@ -73,7 +68,7 @@ func ConnectionFromUri(baseURL *url.URL, authToken string) (*websocket.Conn, con
|
||||
}
|
||||
|
||||
// Read auth_required message
|
||||
_, err = ReadMessage(conn, ctx)
|
||||
_, err = ReadMessage(conn)
|
||||
if err != nil {
|
||||
ctxCancel()
|
||||
slog.Error("Unknown error creating websocket client\n")
|
||||
@@ -113,7 +108,7 @@ type authResponse struct {
|
||||
}
|
||||
|
||||
func VerifyAuthResponse(conn *websocket.Conn, ctx context.Context) error {
|
||||
msg, err := ReadMessage(conn, ctx)
|
||||
msg, err := ReadMessage(conn)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -150,7 +145,7 @@ func SubscribeToEventType(eventType string, conn *WebsocketWriter, ctx context.C
|
||||
Type: "subscribe_events",
|
||||
EventType: eventType,
|
||||
}
|
||||
err := conn.WriteMessage(e, ctx)
|
||||
err := conn.WriteMessage(e)
|
||||
if err != nil {
|
||||
wrappedErr := fmt.Errorf("error writing to websocket: %w", err)
|
||||
slog.Error(wrappedErr.Error())
|
||||
|
||||
Reference in New Issue
Block a user