@@ -3,12 +3,11 @@ package inbox
3
3
import (
4
4
"context"
5
5
"encoding/json"
6
+ "errors"
6
7
"fmt"
7
8
"io"
8
9
"net/http"
9
10
10
- "github.com/pkg/errors"
11
-
12
11
apis "go.opscenter.dev/james-go-client"
13
12
)
14
13
@@ -20,23 +19,22 @@ func (w *WebAdminClient) createAccount(object Object) error {
20
19
}
21
20
objectAddr , err := generateObjectAddr (object )
22
21
if err != nil {
23
- return newServerError (nil , errors .Errorf ("failed to generate object address: %v " , err ))
22
+ return newServerError (nil , fmt .Errorf ("failed to generate object address: %w " , err ))
24
23
}
25
24
26
25
password , err := generateRandomPassword ()
27
26
if err != nil {
28
- return newServerError (nil , errors .Errorf ("failed to generate random password: %v " , err ))
27
+ return newServerError (nil , fmt .Errorf ("failed to generate random password: %w " , err ))
29
28
}
30
29
31
30
r , err := w .UsersAPI .UpsertUser (context .TODO (), objectAddr ).
32
31
UpsertUserRequest (apis.UpsertUserRequest {Password : password }).Execute ()
33
-
34
32
if err != nil {
35
33
return newServerError (r , err )
36
34
}
37
35
38
36
if r .StatusCode != http .StatusNoContent {
39
- return newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
37
+ return newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
40
38
}
41
39
42
40
return nil
@@ -49,7 +47,7 @@ func (w *WebAdminClient) deleteAccount(object Object) error {
49
47
50
48
objectAddr , err := generateObjectAddr (object )
51
49
if err != nil {
52
- return newServerError (nil , errors .Errorf ("failed to generate object address: %v " , err ))
50
+ return newServerError (nil , fmt .Errorf ("failed to generate object address: %w " , err ))
53
51
}
54
52
55
53
r , err := w .UsersAPI .DeleteUser (context .TODO (), objectAddr ).Execute ()
@@ -58,7 +56,7 @@ func (w *WebAdminClient) deleteAccount(object Object) error {
58
56
}
59
57
60
58
if r .StatusCode != http .StatusNoContent {
61
- return newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
59
+ return newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
62
60
}
63
61
64
62
return nil
@@ -87,12 +85,12 @@ func (w *WebAdminClient) AddGroups(groups []GroupAndAssociatedMember) ([]apis.Gr
87
85
88
86
groupAddr , err := generateObjectAddr (group .GetGroup ())
89
87
if err != nil {
90
- return nil , newServerError (nil , errors .Errorf ("failed to generate group object address: %v " , err ))
88
+ return nil , newServerError (nil , fmt .Errorf ("failed to generate group object address: %w " , err ))
91
89
}
92
90
93
91
memberAddr , err := generateObjectAddr (group .GetMember ())
94
92
if err != nil {
95
- return nil , newServerError (nil , errors .Errorf ("failed to generate member object address: %v " , err ))
93
+ return nil , newServerError (nil , fmt .Errorf ("failed to generate member object address: %w " , err ))
96
94
}
97
95
98
96
if apisGroup , ok := groupMap [groupAddr ]; ! ok {
@@ -113,11 +111,11 @@ func (w *WebAdminClient) AddGroups(groups []GroupAndAssociatedMember) ([]apis.Gr
113
111
func (w * WebAdminClient ) AddObjectAlias (object Object ) error {
114
112
userAddr , err := generateObjectAddr (object )
115
113
if err != nil {
116
- return newServerError (nil , errors .Errorf ("failed to generate object address: %v " , err ))
114
+ return newServerError (nil , fmt .Errorf ("failed to generate object address: %w " , err ))
117
115
}
118
116
addrAlias , err := object .GetAddressAlias ()
119
117
if err != nil {
120
- return newServerError (nil , errors .Errorf ("couldn't get address alias: %v " , err ))
118
+ return newServerError (nil , fmt .Errorf ("couldn't get address alias: %w " , err ))
121
119
}
122
120
addrAlias = fmt .Sprintf ("%s@%s" , addrAlias , GlobalMailDomain )
123
121
@@ -131,7 +129,7 @@ func (w *WebAdminClient) addAddressAlias(userAddr string, alias string) error {
131
129
}
132
130
133
131
if r .StatusCode != http .StatusNoContent {
134
- return newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
132
+ return newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
135
133
}
136
134
137
135
return nil
@@ -140,11 +138,11 @@ func (w *WebAdminClient) addAddressAlias(userAddr string, alias string) error {
140
138
func (w * WebAdminClient ) RemoveObjectAlias (object Object ) error {
141
139
userAddr , err := generateObjectAddr (object )
142
140
if err != nil {
143
- return newServerError (nil , errors .Errorf ("failed to generate object address: %v " , err ))
141
+ return newServerError (nil , fmt .Errorf ("failed to generate object address: %w " , err ))
144
142
}
145
143
addrAlias , err := object .GetAddressAlias ()
146
144
if err != nil {
147
- return newServerError (nil , errors .Errorf ("couldn't get address alias: %v " , err ))
145
+ return newServerError (nil , fmt .Errorf ("couldn't get address alias: %w " , err ))
148
146
}
149
147
150
148
return w .removeAddressAlias (userAddr , addrAlias )
@@ -157,7 +155,7 @@ func (w *WebAdminClient) removeAddressAlias(userAddr string, alias string) error
157
155
}
158
156
159
157
if r .StatusCode != http .StatusNoContent {
160
- return newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
158
+ return newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
161
159
}
162
160
163
161
return nil
@@ -166,7 +164,7 @@ func (w *WebAdminClient) removeAddressAlias(userAddr string, alias string) error
166
164
func (w * WebAdminClient ) ListObjectAliases (object Object ) ([]apis.GetAlias200ResponseInner , error ) {
167
165
userAddr , err := generateObjectAddr (object )
168
166
if err != nil {
169
- return nil , newServerError (nil , errors .Errorf ("failed to generate object address: %v " , err ))
167
+ return nil , newServerError (nil , fmt .Errorf ("failed to generate object address: %w " , err ))
170
168
}
171
169
172
170
return w .listAddressAliases (userAddr )
@@ -179,7 +177,7 @@ func (w *WebAdminClient) listAddressAliases(userAddr string) ([]apis.GetAlias200
179
177
}
180
178
181
179
if r .StatusCode != http .StatusOK {
182
- return nil , newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
180
+ return nil , newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
183
181
}
184
182
185
183
return aliases , nil
@@ -188,7 +186,7 @@ func (w *WebAdminClient) listAddressAliases(userAddr string) ([]apis.GetAlias200
188
186
func (w * WebAdminClient ) RemoveAllObjectAliases (object Object ) error {
189
187
userAddr , err := generateObjectAddr (object )
190
188
if err != nil {
191
- return newServerError (nil , errors .Errorf ("failed to generate object address: %v " , err ))
189
+ return newServerError (nil , fmt .Errorf ("failed to generate object address: %w " , err ))
192
190
}
193
191
194
192
return w .removeAllAddressAliases (userAddr )
@@ -207,7 +205,7 @@ func (w *WebAdminClient) removeAllAddressAliases(userAddr string) error {
207
205
}
208
206
209
207
if r .StatusCode != http .StatusNoContent {
210
- return newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
208
+ return newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
211
209
}
212
210
}
213
211
@@ -217,22 +215,22 @@ func (w *WebAdminClient) removeAllAddressAliases(userAddr string) error {
217
215
func (w * WebAdminClient ) addGroups (groups []* apis.Group ) ([]apis.GroupsWithMembersInfo , error ) {
218
216
r , err := w .AddressGroupAPI .AddGroups (context .TODO (), groups ).Execute ()
219
217
if err != nil {
220
- return nil , newServerError (r , errors . Wrapf ( err , "failed to add groups: %v " , err ))
218
+ return nil , newServerError (r , fmt . Errorf ( "failed to add groups: %w " , err ))
221
219
}
222
220
223
221
if r .StatusCode != http .StatusOK {
224
- return nil , newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
222
+ return nil , newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
225
223
}
226
224
227
225
body , err := io .ReadAll (r .Body )
228
226
if err != nil {
229
- return nil , newServerError (r , errors . Wrapf ( err , "failed to read body: %v " , err ))
227
+ return nil , newServerError (r , fmt . Errorf ( "failed to read body: %w " , err ))
230
228
}
231
229
232
230
var addGroupsStatus []apis.GroupsWithMembersInfo
233
231
err = json .Unmarshal (body , & addGroupsStatus )
234
232
if err != nil {
235
- return nil , newServerError (r , errors . Wrapf ( err , "failed to unmarshal body: %v " , err ))
233
+ return nil , newServerError (r , fmt . Errorf ( "failed to unmarshal body: %w " , err ))
236
234
}
237
235
238
236
var failedGroups []apis.GroupsWithMembersInfo
@@ -262,7 +260,7 @@ func (w *WebAdminClient) addGroups(groups []*apis.Group) ([]apis.GroupsWithMembe
262
260
}
263
261
264
262
if failedGroups != nil {
265
- return failedGroups , newServerError (r , errors .Errorf ("failed to add groups: %v " , failedGroups ))
263
+ return failedGroups , newServerError (r , fmt .Errorf ("failed to add groups: %s " , failedGroups ))
266
264
}
267
265
268
266
return nil , nil
@@ -271,12 +269,11 @@ func (w *WebAdminClient) addGroups(groups []*apis.Group) ([]apis.GroupsWithMembe
271
269
func (w * WebAdminClient ) AddGroupMember (grpObject , memberObject Object ) error {
272
270
grpAddr , err := w .GetObjectAddr (grpObject )
273
271
if err != nil {
274
- return newServerError (nil , errors .Errorf ("failed to generate group object address: %v " , err ))
272
+ return newServerError (nil , fmt .Errorf ("failed to generate group object address: %w " , err ))
275
273
}
276
274
memberAddr , err := w .GetObjectAddr (memberObject )
277
275
if err != nil {
278
- return newServerError (nil , errors .Errorf ("failed to generate member object address: %v" , err ))
279
-
276
+ return newServerError (nil , fmt .Errorf ("failed to generate member object address: %w" , err ))
280
277
}
281
278
282
279
return w .addGroupMember (grpAddr , memberAddr )
@@ -289,7 +286,7 @@ func (w *WebAdminClient) addGroupMember(grpAddr, memberAddr string) error {
289
286
}
290
287
291
288
if r .StatusCode != http .StatusNoContent {
292
- return newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
289
+ return newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
293
290
}
294
291
295
292
return nil
@@ -298,13 +295,11 @@ func (w *WebAdminClient) addGroupMember(grpAddr, memberAddr string) error {
298
295
func (w * WebAdminClient ) RemoveGroupMember (grpObject , memberObject Object ) error {
299
296
grpAddr , err := generateObjectAddr (grpObject )
300
297
if err != nil {
301
- return newServerError (nil , errors .Errorf ("failed to generate group object address: %v" , err ))
302
-
298
+ return newServerError (nil , fmt .Errorf ("failed to generate group object address: %w" , err ))
303
299
}
304
300
memberAddr , err := generateObjectAddr (memberObject )
305
301
if err != nil {
306
- return newServerError (nil , errors .Errorf ("failed to generate member object address: %v" , err ))
307
-
302
+ return newServerError (nil , fmt .Errorf ("failed to generate member object address: %w" , err ))
308
303
}
309
304
310
305
return w .removeGroupMember (grpAddr , memberAddr )
@@ -317,7 +312,7 @@ func (w *WebAdminClient) removeGroupMember(grpAddr, memberAddr string) error {
317
312
}
318
313
319
314
if r .StatusCode != http .StatusNoContent {
320
- return newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
315
+ return newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
321
316
}
322
317
323
318
return nil
@@ -326,11 +321,11 @@ func (w *WebAdminClient) removeGroupMember(grpAddr, memberAddr string) error {
326
321
func (w * WebAdminClient ) CheckGroupMemberExistence (grpObject , memberObject Object ) error {
327
322
grpAddr , err := generateObjectAddr (grpObject )
328
323
if err != nil {
329
- return newServerError (nil , errors .Errorf ("failed to generate group object address: %v " , err ))
324
+ return newServerError (nil , fmt .Errorf ("failed to generate group object address: %w " , err ))
330
325
}
331
326
memberAddr , err := generateObjectAddr (memberObject )
332
327
if err != nil {
333
- return newServerError (nil , errors .Errorf ("failed to generate member object address: %v " , err ))
328
+ return newServerError (nil , fmt .Errorf ("failed to generate member object address: %w " , err ))
334
329
}
335
330
336
331
return w .checkGroupMemberExistence (grpAddr , memberAddr )
@@ -343,7 +338,7 @@ func (w *WebAdminClient) checkGroupMemberExistence(grpAddr, memberAddr string) e
343
338
}
344
339
345
340
if r .StatusCode != http .StatusOK {
346
- return newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
341
+ return newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
347
342
}
348
343
349
344
return nil
@@ -356,7 +351,7 @@ func (w *WebAdminClient) CheckMultipleGroupMemberPairExistence(groupMemberPair [
356
351
}
357
352
358
353
if r .StatusCode != http .StatusOK {
359
- return newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
354
+ return newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
360
355
}
361
356
362
357
return nil
@@ -365,7 +360,7 @@ func (w *WebAdminClient) CheckMultipleGroupMemberPairExistence(groupMemberPair [
365
360
func (w * WebAdminClient ) createGroup (object Object ) error {
366
361
grpAddr , err := generateObjectAddr (object )
367
362
if err != nil {
368
- return newServerError (nil , errors .Errorf ("failed to generate object address: %v " , err ))
363
+ return newServerError (nil , fmt .Errorf ("failed to generate object address: %w " , err ))
369
364
}
370
365
r , err := w .AddressGroupAPI .CreateGroup (context .Background (), grpAddr ).Execute ()
371
366
if err != nil {
@@ -378,7 +373,7 @@ func (w *WebAdminClient) createGroup(object Object) error {
378
373
func (w * WebAdminClient ) deleteGroup (grpObject Object ) error {
379
374
grpAddr , err := generateObjectAddr (grpObject )
380
375
if err != nil {
381
- return newServerError (nil , errors .Errorf ("failed to generate group object address: %v " , err ))
376
+ return newServerError (nil , fmt .Errorf ("failed to generate group object address: %w " , err ))
382
377
}
383
378
384
379
r , err := w .AddressGroupAPI .DeleteGroup (context .TODO (), grpAddr ).Execute ()
@@ -394,7 +389,7 @@ func (w *WebAdminClient) DeleteGroups(grpObjects []Object) error {
394
389
for i := 0 ; i < len (grpObjects ); i ++ {
395
390
grpAddr , err := w .GetObjectAddr (grpObjects [i ])
396
391
if err != nil {
397
- return newServerError (nil , errors .Errorf ("failed to generate group object address: %v " , err ))
392
+ return newServerError (nil , fmt .Errorf ("failed to generate group object address: %w " , err ))
398
393
}
399
394
grpAddresses [i ] = grpAddr
400
395
}
@@ -409,7 +404,7 @@ func (w *WebAdminClient) DeleteGroups(grpObjects []Object) error {
409
404
func (w * WebAdminClient ) CheckObjectExistence (object Object ) error {
410
405
objectAddr , err := generateObjectAddr (object )
411
406
if err != nil {
412
- return newServerError (nil , errors .Errorf ("failed to generate object address: %v " , err ))
407
+ return newServerError (nil , fmt .Errorf ("failed to generate object address: %w " , err ))
413
408
}
414
409
415
410
return w .checkAddrExistence (objectAddr )
@@ -430,28 +425,28 @@ func (w *WebAdminClient) checkAddrExistence(objectAddr string) error {
430
425
func (w * WebAdminClient ) UpdateObjectAddr (oldObject , newObject Object ) error {
431
426
oldObjectAddr , err := generateObjectAddr (oldObject )
432
427
if err != nil {
433
- return newServerError (nil , errors .Errorf ("failed to generate object address: %v " , err ))
428
+ return newServerError (nil , fmt .Errorf ("failed to generate object address: %w " , err ))
434
429
}
435
430
newObjectAddr , err := generateObjectAddr (newObject )
436
431
if err != nil {
437
- return newServerError (nil , errors .Errorf ("failed to generate object address: %v " , err ))
432
+ return newServerError (nil , fmt .Errorf ("failed to generate object address: %w " , err ))
438
433
}
439
434
440
435
if err = w .checkAddrExistence (oldObjectAddr ); err != nil {
441
- return errors .Errorf ("address doesn't exits: %v " , err )
436
+ return fmt .Errorf ("address doesn't exits: %w " , err )
442
437
}
443
438
444
439
err = w .createAccount (newObject )
445
- if err != nil && errors .As (err , & ErrUserAlreadyExists ) {
440
+ if err != nil && errors .Is (err , ErrUserAlreadyExists ) {
446
441
return err
447
442
}
448
443
449
444
r , err := w .UsersAPI .ChangeUsername (context .TODO (), oldObjectAddr , newObjectAddr ).Execute ()
450
445
if err != nil {
451
- return newServerError (r , errors .Errorf ("failed to change username: %v " , err ))
446
+ return newServerError (r , fmt .Errorf ("failed to change username: %w " , err ))
452
447
}
453
448
if r .StatusCode != http .StatusCreated {
454
- return newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
449
+ return newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
455
450
}
456
451
457
452
return nil
@@ -498,7 +493,7 @@ func (w *WebAdminClient) HealthCheck() (*apis.CheckAllComponents200Response, err
498
493
}
499
494
500
495
if r .StatusCode != http .StatusOK {
501
- return nil , newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
496
+ return nil , newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
502
497
}
503
498
504
499
return checkAllComponentsResponse , nil
@@ -512,7 +507,7 @@ func (w *WebAdminClient) CreateDomains(domains ...string) error {
512
507
}
513
508
514
509
if r .StatusCode != http .StatusNoContent {
515
- return newServerError (r , errors .Errorf ("unknown error: status: %v " , r .Status ))
510
+ return newServerError (r , fmt .Errorf ("unknown error: status: %s " , r .Status ))
516
511
}
517
512
}
518
513
0 commit comments