From bf8211b654cf0b03cedca7c56e131703a57d7de0 Mon Sep 17 00:00:00 2001 From: Till Faelligen Date: Wed, 28 Jul 2021 16:52:04 +0200 Subject: [PATCH] Add missing files --- eduserver/api/input.go | 9 +++++---- eduserver/api/output.go | 10 ++++++---- eduserver/api/wrapper.go | 12 +++++++----- eduserver/eduserver.go | 1 + eduserver/input/input.go | 10 +++++----- setup/config/config_kafka.go | 1 + 6 files changed, 25 insertions(+), 18 deletions(-) diff --git a/eduserver/api/input.go b/eduserver/api/input.go index 342764972..c14ee1a86 100644 --- a/eduserver/api/input.go +++ b/eduserver/api/input.go @@ -20,6 +20,7 @@ package api import ( "context" + "github.com/matrix-org/dendrite/userapi/types" "github.com/matrix-org/gomatrixserverlib" ) @@ -77,10 +78,10 @@ type InputReceiptEventResponse struct{} // InputPresenceRequest is a request to EDUServerInputAPI type InputPresenceRequest struct { - UserID string `json:"user_id"` - Status string `json:"status"` - StatusMsg string `json:"status_msg"` - Timestamp gomatrixserverlib.Timestamp `json:"timestamp"` + UserID string `json:"user_id"` + Presence types.PresenceStatus `json:"status"` + StatusMsg string `json:"status_msg"` + LastActiveTS gomatrixserverlib.Timestamp `json:"timestamp"` } // InputPresenceResponse is a response to InputPresenceRequest diff --git a/eduserver/api/output.go b/eduserver/api/output.go index b36e06e0c..f7c08e24c 100644 --- a/eduserver/api/output.go +++ b/eduserver/api/output.go @@ -19,6 +19,7 @@ package api import ( "time" + "github.com/matrix-org/dendrite/userapi/types" "github.com/matrix-org/gomatrixserverlib" ) @@ -88,8 +89,9 @@ type FederationReceiptData struct { // OutputPresence is an entry in the presence output kafka log type OutputPresence struct { - UserID string `json:"user_id"` - Status string `json:"status"` - StatusMsg string `json:"status_msg"` - Timestamp gomatrixserverlib.Timestamp `json:"timestamp"` + UserID string `json:"user_id"` + Presence types.PresenceStatus `json:"presence"` + StatusMsg string `json:"status_msg,omitempty"` + LastActiveTS gomatrixserverlib.Timestamp `json:"-"` + LastActiveAgo int64 `json:"last_active_ago,omitempty"` } diff --git a/eduserver/api/wrapper.go b/eduserver/api/wrapper.go index 470638e4f..57c4a814c 100644 --- a/eduserver/api/wrapper.go +++ b/eduserver/api/wrapper.go @@ -19,6 +19,7 @@ import ( "encoding/json" "time" + "github.com/matrix-org/dendrite/userapi/types" "github.com/matrix-org/gomatrixserverlib" ) @@ -91,14 +92,15 @@ func SendReceipt( func SetPresence( ctx context.Context, eduAPI EDUServerInputAPI, - userID, status, statusMsg string, + userID, statusMsg string, + presence types.PresenceStatus, timestamp gomatrixserverlib.Timestamp, ) error { request := InputPresenceRequest{ - UserID: userID, - Status: status, - StatusMsg: statusMsg, - Timestamp: timestamp, + UserID: userID, + Presence: presence, + StatusMsg: statusMsg, + LastActiveTS: timestamp, } response := InputPresenceResponse{} return eduAPI.InputPresence(ctx, &request, &response) diff --git a/eduserver/eduserver.go b/eduserver/eduserver.go index 7cc405108..229b45ab5 100644 --- a/eduserver/eduserver.go +++ b/eduserver/eduserver.go @@ -52,6 +52,7 @@ func NewInternalAPI( OutputTypingEventTopic: cfg.Matrix.Kafka.TopicFor(config.TopicOutputTypingEvent), OutputSendToDeviceEventTopic: cfg.Matrix.Kafka.TopicFor(config.TopicOutputSendToDeviceEvent), OutputReceiptEventTopic: cfg.Matrix.Kafka.TopicFor(config.TopicOutputReceiptEvent), + OutputPresenceTopic: cfg.Matrix.Kafka.TopicFor(config.TopicOutputPresenceData), ServerName: cfg.Matrix.ServerName, } } diff --git a/eduserver/input/input.go b/eduserver/input/input.go index 9cbecae51..81feef078 100644 --- a/eduserver/input/input.go +++ b/eduserver/input/input.go @@ -218,14 +218,14 @@ func (t *EDUServerInputAPI) InputPresence( ) error { logrus.WithFields(logrus.Fields{ "user_id": request.UserID, - "status": request.Status, + "status": request.Presence, "status_msg": request.StatusMsg, }).Infof("Producing to topic '%s'", t.OutputPresenceTopic) output := &api.OutputPresence{ - UserID: request.UserID, - Status: request.Status, - StatusMsg: request.StatusMsg, - Timestamp: request.Timestamp, + UserID: request.UserID, + Presence: request.Presence, + StatusMsg: request.StatusMsg, + LastActiveTS: request.LastActiveTS, } js, err := json.Marshal(output) if err != nil { diff --git a/setup/config/config_kafka.go b/setup/config/config_kafka.go index 361914287..f26d500c9 100644 --- a/setup/config/config_kafka.go +++ b/setup/config/config_kafka.go @@ -10,6 +10,7 @@ const ( TopicOutputRoomEvent = "OutputRoomEvent" TopicOutputClientData = "OutputClientData" TopicOutputReceiptEvent = "OutputReceiptEvent" + TopicOutputPresenceData = "OutputPresenceData" ) type Kafka struct {