Return Service errors

Additionally, removed the context that gets passed into the Services but isn't used in one of them. The websockets APIs also don't have any use for context.
This commit is contained in:
Matthias Loibl
2025-01-17 17:50:06 +01:00
parent 066441762b
commit 02b6c413f1
26 changed files with 228 additions and 296 deletions

View File

@@ -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
}

View File

@@ -14,6 +14,7 @@ import (
"time"
"github.com/gorilla/websocket"
i "saml.dev/gome-assistant/internal"
)
@@ -29,19 +30,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
@@ -72,7 +68,7 @@ func ConnectionFromUri(uri, authToken string) (*websocket.Conn, context.Context,
}
// Read auth_required message
_, err = ReadMessage(conn, ctx)
_, err = ReadMessage(conn)
if err != nil {
ctxCancel()
slog.Error("Unknown error creating websocket client\n")
@@ -112,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
}
@@ -149,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())