implement mute / unmute.

This commit is contained in:
Miroslav Šedivý 2024-07-25 16:19:11 +02:00
parent 3d0b245abf
commit ceb4e0c3f1
3 changed files with 90 additions and 27 deletions

View file

@ -6,6 +6,7 @@ import (
"fmt"
"io"
"net/http"
"strings"
oldTypes "github.com/demodesk/neko/internal/http/legacy/types"
@ -20,6 +21,12 @@ var (
ErrBackendRespone = fmt.Errorf("error response from backend")
)
type memberStruct struct {
member *oldTypes.Member
connected bool
sent bool
}
type session struct {
logger zerolog.Logger
serverAddr string
@ -33,7 +40,7 @@ type session struct {
lockedControls bool
lockedLogins bool
lockedFileTransfer bool
sessions map[string]*oldTypes.Member
sessions map[string]*memberStruct
connClient *websocket.Conn
connBackend *websocket.Conn
@ -44,7 +51,7 @@ func newSession(logger zerolog.Logger, serverAddr string) *session {
logger: logger,
serverAddr: serverAddr,
client: http.DefaultClient,
sessions: make(map[string]*oldTypes.Member),
sessions: make(map[string]*memberStruct),
}
}
@ -81,7 +88,7 @@ func (s *session) apiReq(method, path string, request, response any) error {
return fmt.Errorf("%w: %s", ErrBackendRespone, apiErr.Message)
}
// return raw body if failed to unmarshal
return fmt.Errorf("unexpected status code: %d, body: %s", res.StatusCode, body)
return fmt.Errorf("unexpected status code: %d, body: %s", res.StatusCode, strings.TrimSpace(string(body)))
}
if res.Body == nil {