@@ -3,6 +3,7 @@ package protocol
3
3
import (
4
4
"context"
5
5
"encoding/json"
6
+ errorsLib "errors"
6
7
7
8
"go.uber.org/zap"
8
9
@@ -14,10 +15,11 @@ import (
14
15
)
15
16
16
17
// syncSettings syncs all settings that are syncable
17
- func (m * Messenger ) prepareSyncSettingsMessages (currentClock uint64 , prepareForBackup bool ) (resultRaw []* common.RawMessage , resultSync []* protobuf.SyncSetting , errors []error ) {
18
+ func (m * Messenger ) prepareSyncSettingsMessages (currentClock uint64 , prepareForBackup bool ) (resultRaw []* common.RawMessage , resultSync []* protobuf.SyncSetting , errorResult error ) {
19
+ var errors []error
18
20
s , err := m .settings .GetSettings ()
19
21
if err != nil {
20
- errors = append ( errors , err )
22
+ errorResult = err
21
23
return
22
24
}
23
25
@@ -36,7 +38,7 @@ func (m *Messenger) prepareSyncSettingsMessages(currentClock uint64, prepareForB
36
38
clock , err := m .settings .GetSettingLastSynced (sf )
37
39
if err != nil {
38
40
logger .Error ("m.settings.GetSettingLastSynced" , zap .Error (err ), zap .String ("SettingField" , sf .GetDBName ()))
39
- errors = append ( errors , err )
41
+ errorResult = err
40
42
return
41
43
}
42
44
if clock == 0 {
@@ -55,18 +57,18 @@ func (m *Messenger) prepareSyncSettingsMessages(currentClock uint64, prepareForB
55
57
resultSync = append (resultSync , sm )
56
58
}
57
59
}
60
+ errorResult = errorsLib .Join (errors ... )
58
61
return
59
62
}
60
63
61
64
func (m * Messenger ) syncSettings (rawMessageHandler RawMessageHandler ) error {
62
65
logger := m .logger .Named ("syncSettings" )
63
66
64
67
clock , _ := m .getLastClockWithRelatedChat ()
65
- rawMessages , _ , errors := m .prepareSyncSettingsMessages (clock , false )
68
+ rawMessages , _ , err := m .prepareSyncSettingsMessages (clock , false )
66
69
67
- if len (errors ) != 0 {
68
- // return just the first error, the others have been logged
69
- return errors [0 ]
70
+ if err != nil {
71
+ return err
70
72
}
71
73
72
74
for _ , rm := range rawMessages {
0 commit comments