diff options
author | Kegsay <kegan@matrix.org> | 2020-06-10 10:34:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-10 10:34:22 +0100 |
commit | 98cb0705eab07233cbc78fbe4342e1b1890c2a60 (patch) | |
tree | 66fe1d58d6926c0b477ddc507571503eb5d2e9c3 /clientapi | |
parent | 85ac8a3f5ba407ece584843a4d77466c1c4f5565 (diff) |
Remove unused UserUpdates producer (#1109)
Diffstat (limited to 'clientapi')
-rw-r--r-- | clientapi/clientapi.go | 7 | ||||
-rw-r--r-- | clientapi/producers/userupdate.go | 62 | ||||
-rw-r--r-- | clientapi/routing/profile.go | 18 | ||||
-rw-r--r-- | clientapi/routing/routing.go | 5 |
4 files changed, 5 insertions, 87 deletions
diff --git a/clientapi/clientapi.go b/clientapi/clientapi.go index 987815c2..90db9eea 100644 --- a/clientapi/clientapi.go +++ b/clientapi/clientapi.go @@ -51,11 +51,6 @@ func AddPublicRoutes( roomserverProducer := producers.NewRoomserverProducer(rsAPI) eduProducer := producers.NewEDUServerProducer(eduInputAPI) - userUpdateProducer := &producers.UserUpdateProducer{ - Producer: producer, - Topic: string(cfg.Kafka.Topics.UserUpdates), - } - syncProducer := &producers.SyncAPIProducer{ Producer: producer, Topic: string(cfg.Kafka.Topics.OutputClientData), @@ -70,7 +65,7 @@ func AddPublicRoutes( routing.Setup( router, cfg, roomserverProducer, rsAPI, asAPI, - accountsDB, deviceDB, federation, *keyRing, userUpdateProducer, + accountsDB, deviceDB, federation, *keyRing, syncProducer, eduProducer, transactionsCache, fsAPI, ) } diff --git a/clientapi/producers/userupdate.go b/clientapi/producers/userupdate.go deleted file mode 100644 index 02e1700f..00000000 --- a/clientapi/producers/userupdate.go +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2017 Vector Creations Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package producers - -import ( - "encoding/json" - - "github.com/Shopify/sarama" -) - -// UserUpdateProducer produces events related to user updates. -type UserUpdateProducer struct { - Topic string - Producer sarama.SyncProducer -} - -// TODO: Move this struct to `internal` so the components that consume the topic -// can use it when parsing incoming messages -type profileUpdate struct { - Updated string `json:"updated"` // Which attribute is updated (can be either `avatar_url` or `displayname`) - OldValue string `json:"old_value"` // The attribute's value before the update - NewValue string `json:"new_value"` // The attribute's value after the update -} - -// SendUpdate sends an update using kafka to notify the roomserver of the -// profile update. Returns an error if the update failed to send. -func (p *UserUpdateProducer) SendUpdate( - userID string, updatedAttribute string, oldValue string, newValue string, -) error { - var update profileUpdate - var m sarama.ProducerMessage - - m.Topic = string(p.Topic) - m.Key = sarama.StringEncoder(userID) - - update = profileUpdate{ - Updated: updatedAttribute, - OldValue: oldValue, - NewValue: newValue, - } - - value, err := json.Marshal(update) - if err != nil { - return err - } - m.Value = sarama.ByteEncoder(value) - - _, _, err = p.Producer.SendMessage(&m) - return err -} diff --git a/clientapi/routing/profile.go b/clientapi/routing/profile.go index dbf6ef1d..c0fe32a3 100644 --- a/clientapi/routing/profile.go +++ b/clientapi/routing/profile.go @@ -94,7 +94,7 @@ func GetAvatarURL( // nolint:gocyclo func SetAvatarURL( req *http.Request, accountDB accounts.Database, device *authtypes.Device, - userID string, producer *producers.UserUpdateProducer, cfg *config.Dendrite, + userID string, cfg *config.Dendrite, rsProducer *producers.RoomserverProducer, rsAPI api.RoomserverInternalAPI, ) util.JSONResponse { if userID != device.UserID { @@ -104,8 +104,6 @@ func SetAvatarURL( } } - changedKey := "avatar_url" - var r internal.AvatarURL if resErr := httputil.UnmarshalJSONRequest(req, &r); resErr != nil { return *resErr @@ -174,11 +172,6 @@ func SetAvatarURL( return jsonerror.InternalServerError() } - if err := producer.SendUpdate(userID, changedKey, oldProfile.AvatarURL, r.AvatarURL); err != nil { - util.GetLogger(req.Context()).WithError(err).Error("producer.SendUpdate failed") - return jsonerror.InternalServerError() - } - return util.JSONResponse{ Code: http.StatusOK, JSON: struct{}{}, @@ -216,7 +209,7 @@ func GetDisplayName( // nolint:gocyclo func SetDisplayName( req *http.Request, accountDB accounts.Database, device *authtypes.Device, - userID string, producer *producers.UserUpdateProducer, cfg *config.Dendrite, + userID string, cfg *config.Dendrite, rsProducer *producers.RoomserverProducer, rsAPI api.RoomserverInternalAPI, ) util.JSONResponse { if userID != device.UserID { @@ -226,8 +219,6 @@ func SetDisplayName( } } - changedKey := "displayname" - var r internal.DisplayName if resErr := httputil.UnmarshalJSONRequest(req, &r); resErr != nil { return *resErr @@ -296,11 +287,6 @@ func SetDisplayName( return jsonerror.InternalServerError() } - if err := producer.SendUpdate(userID, changedKey, oldProfile.DisplayName, r.DisplayName); err != nil { - util.GetLogger(req.Context()).WithError(err).Error("producer.SendUpdate failed") - return jsonerror.InternalServerError() - } - return util.JSONResponse{ Code: http.StatusOK, JSON: struct{}{}, diff --git a/clientapi/routing/routing.go b/clientapi/routing/routing.go index 83e399ac..eb558205 100644 --- a/clientapi/routing/routing.go +++ b/clientapi/routing/routing.go @@ -55,7 +55,6 @@ func Setup( deviceDB devices.Database, federation *gomatrixserverlib.FederationClient, keyRing gomatrixserverlib.KeyRing, - userUpdateProducer *producers.UserUpdateProducer, syncProducer *producers.SyncAPIProducer, eduProducer *producers.EDUServerProducer, transactionsCache *transactions.Cache, @@ -387,7 +386,7 @@ func Setup( if err != nil { return util.ErrorResponse(err) } - return SetAvatarURL(req, accountDB, device, vars["userID"], userUpdateProducer, cfg, producer, rsAPI) + return SetAvatarURL(req, accountDB, device, vars["userID"], cfg, producer, rsAPI) }), ).Methods(http.MethodPut, http.MethodOptions) // Browsers use the OPTIONS HTTP method to check if the CORS policy allows @@ -409,7 +408,7 @@ func Setup( if err != nil { return util.ErrorResponse(err) } - return SetDisplayName(req, accountDB, device, vars["userID"], userUpdateProducer, cfg, producer, rsAPI) + return SetDisplayName(req, accountDB, device, vars["userID"], cfg, producer, rsAPI) }), ).Methods(http.MethodPut, http.MethodOptions) // Browsers use the OPTIONS HTTP method to check if the CORS policy allows |