mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-29 01:33:10 -06:00
Store presence data on request
This commit is contained in:
parent
d550acbd9d
commit
598308b739
|
|
@ -19,6 +19,8 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
types2 "github.com/matrix-org/dendrite/syncapi/types"
|
||||||
|
userapi "github.com/matrix-org/dendrite/userapi/api"
|
||||||
"github.com/matrix-org/dendrite/userapi/types"
|
"github.com/matrix-org/dendrite/userapi/types"
|
||||||
"github.com/matrix-org/gomatrixserverlib"
|
"github.com/matrix-org/gomatrixserverlib"
|
||||||
)
|
)
|
||||||
|
|
@ -92,16 +94,29 @@ func SendReceipt(
|
||||||
func SetPresence(
|
func SetPresence(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
eduAPI EDUServerInputAPI,
|
eduAPI EDUServerInputAPI,
|
||||||
|
userAPI userapi.UserInternalAPI,
|
||||||
userID, statusMsg string,
|
userID, statusMsg string,
|
||||||
presence types.PresenceStatus,
|
presence types.PresenceStatus,
|
||||||
timestamp gomatrixserverlib.Timestamp,
|
lastActiveTS gomatrixserverlib.Timestamp,
|
||||||
) error {
|
) error {
|
||||||
request := InputPresenceRequest{
|
request := InputPresenceRequest{
|
||||||
UserID: userID,
|
UserID: userID,
|
||||||
Presence: presence,
|
Presence: presence,
|
||||||
StatusMsg: statusMsg,
|
StatusMsg: statusMsg,
|
||||||
LastActiveTS: timestamp,
|
LastActiveTS: lastActiveTS,
|
||||||
}
|
}
|
||||||
response := InputPresenceResponse{}
|
response := InputPresenceResponse{}
|
||||||
|
// store the data in userapi
|
||||||
|
pReq := userapi.InputPresenceRequest{
|
||||||
|
UserID: userID,
|
||||||
|
Presence: presence,
|
||||||
|
StatusMsg: statusMsg,
|
||||||
|
LastActiveTS: int64(lastActiveTS),
|
||||||
|
}
|
||||||
|
pRes := userapi.InputPresenceResponse{}
|
||||||
|
if err := userAPI.InputPresenceData(ctx, &pReq, &pRes); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
request.StreamPos = types2.StreamPosition(pRes.StreamPos)
|
||||||
return eduAPI.InputPresence(ctx, &request, &response)
|
return eduAPI.InputPresence(ctx, &request, &response)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue