Remove ToPresenceStatus

Use Presence struct field
This commit is contained in:
Till Faelligen 2022-01-19 17:44:52 +01:00
parent b59f20e546
commit 2e6eb4e0a9
3 changed files with 11 additions and 4 deletions

View file

@ -150,9 +150,9 @@ func GetPresence(req *http.Request,
resp.StatusMsg = presence.StatusMsg
resp.CurrentlyActive = lastActive <= time.Minute*5
if !resp.CurrentlyActive {
presence.PresenceStatus = types.Unavailable
presence.Presence = types.Unavailable
}
resp.Presence = presence.PresenceStatus.String()
resp.Presence = presence.Presence.String()
return util.JSONResponse{
Code: http.StatusOK,
JSON: resp,

View file

@ -176,7 +176,7 @@ func (r *FederationInternalAPI) sendPresenceData(
ev := eduserverAPI.FederationPresenceSingle{
CurrentlyActive: lastActiveTS < time.Minute*5,
LastActiveAgo: int(lastActiveTS.Milliseconds()),
Presence: presence.Presence,
Presence: presence.Presence.String(),
UserID: presence.UserID,
StatusMsg: presence.StatusMsg,
}

View file

@ -20,6 +20,7 @@ import (
"errors"
"fmt"
"net/http"
"strings"
"sync"
"time"
@ -577,8 +578,14 @@ func (t *txnReq) handlePresence(ctx context.Context, e gomatrixserverlib.EDU) {
return
}
for _, presence := range payload.Push {
p := strings.TrimSpace(strings.ToLower(presence.Presence))
v, ok := types.KnownPresence[p]
if !ok {
util.GetLogger(ctx).WithField("presence", p).Warnf("dropping unknown presence")
continue
}
timestamp := gomatrixserverlib.AsTimestamp(now.Add(-(time.Millisecond * time.Duration(presence.LastActiveAgo))))
if err := eduserverAPI.SetPresence(ctx, t.eduAPI, t.userAPI, presence.UserID, presence.StatusMsg, types.ToPresenceStatus(presence.Presence), timestamp); err != nil {
if err := eduserverAPI.SetPresence(ctx, t.eduAPI, t.userAPI, presence.UserID, presence.StatusMsg, v, timestamp); err != nil {
util.GetLogger(ctx).WithError(err).Error("unable to send presence data to edu server")
}
}