MM-49564: Drafts upsert in the Store vs App layer (#22530)

* MM-49564: Upsert in the Store vs App layer

Refactor drafts so that Upserting a draft would happen in the DB and not
in the app layer.

* Fixes mocks

* Fixes tests

* Fixes translations

* Fixes tests

* Update tests

* Fixes tests

* Addresses review comments

- renames Save => Upsert
- removes Sleep from tests

* Fixes flaky test

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Kyriakos Z
2023-04-01 10:32:40 +03:00
коммит произвёл GitHub
родитель 4a3c853636
Коммит 4d2ed469bf
15 изменённых файлов: 113 добавлений и 395 удалений

Просмотреть файл

@@ -3038,10 +3038,10 @@ func (s *TimerLayerDraftStore) GetDraftsForUser(userID string, teamID string) ([
return result, err
}
func (s *TimerLayerDraftStore) Save(d *model.Draft) (*model.Draft, error) {
func (s *TimerLayerDraftStore) Upsert(d *model.Draft) (*model.Draft, error) {
start := time.Now()
result, err := s.DraftStore.Save(d)
result, err := s.DraftStore.Upsert(d)
elapsed := float64(time.Since(start)) / float64(time.Second)
if s.Root.Metrics != nil {
@@ -3049,23 +3049,7 @@ func (s *TimerLayerDraftStore) Save(d *model.Draft) (*model.Draft, error) {
if err == nil {
success = "true"
}
s.Root.Metrics.ObserveStoreMethodDuration("DraftStore.Save", success, elapsed)
}
return result, err
}
func (s *TimerLayerDraftStore) Update(d *model.Draft) (*model.Draft, error) {
start := time.Now()
result, err := s.DraftStore.Update(d)
elapsed := float64(time.Since(start)) / float64(time.Second)
if s.Root.Metrics != nil {
success := "false"
if err == nil {
success = "true"
}
s.Root.Metrics.ObserveStoreMethodDuration("DraftStore.Update", success, elapsed)
s.Root.Metrics.ObserveStoreMethodDuration("DraftStore.Upsert", success, elapsed)
}
return result, err
}