Skip to content

Commit 69ba72e

Browse files
refactor: error codes and mailman
1 parent 7254210 commit 69ba72e

File tree

7 files changed

+87
-98
lines changed

7 files changed

+87
-98
lines changed

internal/app/app.go

+14-14
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ func (a App) DatabaseVacuum(ctx context.Context) error {
7575

7676
func (a App) RuleEndpointsGet(ctx context.Context, id int64) (models.RuleEndpoints, error) {
7777
res, err := repo.RuleEndpointsGet(ctx, a.db, id)
78-
return res, checkErr(err)
78+
return res, convertErr(err)
7979
}
8080

8181
func (a App) EnvelopeCount(ctx context.Context) (int, error) {
@@ -85,15 +85,15 @@ func (a App) EnvelopeCount(ctx context.Context) (int, error) {
8585
func (a App) RuleDelete(ctx context.Context, id int64) error {
8686
r, err := repo.RuleGet(ctx, a.db, id)
8787
if err != nil {
88-
return checkErr(err)
88+
return convertErr(err)
8989
}
9090

9191
err = rule.Delete(r)
9292
if err != nil {
9393
return err
9494
}
9595

96-
return checkErr(repo.RuleDelete(ctx, a.db, id))
96+
return convertErr(repo.RuleDelete(ctx, a.db, id))
9797
}
9898

9999
func (App) RuleExpressionCheck(ctx context.Context, expression string) error {
@@ -112,18 +112,18 @@ func (App) RuleExpressionCheck(ctx context.Context, expression string) error {
112112

113113
func (a App) AttachmentGet(ctx context.Context, id int64) (models.Attachment, error) {
114114
res, err := repo.AttachmentGet(ctx, a.db, id)
115-
return res, checkErr(err)
115+
return res, convertErr(err)
116116
}
117117

118118
func (a App) EnvelopeSend(ctx context.Context, envelopeID int64, endpointID int64) error {
119119
env, err := repo.EnvelopeGet(ctx, a.db, envelopeID)
120120
if err != nil {
121-
return checkErr(err)
121+
return convertErr(err)
122122
}
123123

124124
endModel, err := repo.EndpointGet(ctx, a.db, endpointID)
125125
if err != nil {
126-
return checkErr(err)
126+
return convertErr(err)
127127
}
128128

129129
end, err := a.endpointFactory.Build(endModel)
@@ -201,7 +201,7 @@ func (a App) EnvelopeCreate(ctx context.Context, dtoMsg models.DTOMessageCreate,
201201

202202
func (a App) EnvelopeDelete(ctx context.Context, id int64) error {
203203
if err := repo.EnvelopeDelete(ctx, a.db, id); err != nil {
204-
return checkErr(err)
204+
return convertErr(err)
205205
}
206206

207207
a.bus.EnvelopeDeleted(ctx)
@@ -211,7 +211,7 @@ func (a App) EnvelopeDelete(ctx context.Context, id int64) error {
211211

212212
func (a App) EnvelopeGet(ctx context.Context, id int64) (models.Envelope, error) {
213213
res, err := repo.EnvelopeGet(ctx, a.db, id)
214-
return res, checkErr(err)
214+
return res, convertErr(err)
215215
}
216216

217217
func (a App) EnvelopeList(ctx context.Context, page pagination.Page, req models.DTOEnvelopeListRequest) (models.DTOEnvelopeListResult, error) {
@@ -233,7 +233,7 @@ func (a App) EnvelopeDrop(ctx context.Context) error {
233233

234234
func (a App) MessageHTMLGet(ctx context.Context, id int64) (string, error) {
235235
res, err := repo.MessageHTMLGet(ctx, a.db, id)
236-
return res, checkErr(err)
236+
return res, convertErr(err)
237237
}
238238

239239
func (a App) AttachmentList(ctx context.Context, page pagination.Page, req models.DTOAttachmentListRequest) (models.DTOAttachmentListResult, error) {
@@ -285,7 +285,7 @@ func (a App) RuleCreate(ctx context.Context, req models.DTORuleCreate) (int64, e
285285
func (a App) RuleUpdate(ctx context.Context, req models.DTORuleUpdate) error {
286286
r, err := repo.RuleGet(ctx, a.db, req.ID)
287287
if err != nil {
288-
return checkErr(err)
288+
return convertErr(err)
289289
}
290290

291291
r, err = rule.Update(r, req)
@@ -295,13 +295,13 @@ func (a App) RuleUpdate(ctx context.Context, req models.DTORuleUpdate) error {
295295

296296
err = repo.RuleUpdate(ctx, a.db, r)
297297
if err != nil {
298-
return checkErr(err)
298+
return convertErr(err)
299299
}
300300

301301
if req.Endpoints != nil {
302302
err := repo.RuleEndpointsSet(ctx, a.db, r.ID, *req.Endpoints)
303303
if err != nil {
304-
return checkErr(err)
304+
return convertErr(err)
305305
}
306306
}
307307

@@ -310,7 +310,7 @@ func (a App) RuleUpdate(ctx context.Context, req models.DTORuleUpdate) error {
310310

311311
func (a App) RuleGet(ctx context.Context, id int64) (models.Rule, error) {
312312
res, err := repo.RuleGet(ctx, a.db, id)
313-
return res, checkErr(err)
313+
return res, convertErr(err)
314314
}
315315

316316
func (a App) RuleList(ctx context.Context) ([]models.Rule, error) {
@@ -324,7 +324,7 @@ func (a App) RuleEndpointsList(ctx context.Context) ([]models.RuleEndpoints, err
324324
func (a App) EndpointTest(ctx context.Context, id int64) error {
325325
e, err := repo.EndpointGet(ctx, a.db, id)
326326
if err != nil {
327-
return checkErr(err)
327+
return convertErr(err)
328328
}
329329

330330
end, err := a.endpointFactory.Build(e)

internal/app/error.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/ItsNotGoodName/smtpbridge/internal/repo"
88
)
99

10-
func checkErr(err error) error {
10+
func convertErr(err error) error {
1111
if err == nil {
1212
return nil
1313
}

internal/mailman/mailman.go

+10-7
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,17 @@ func (m Mailman) Serve(ctx context.Context) error {
4747
case <-ctx.Done():
4848
return nil
4949
case <-checkC:
50-
for {
51-
tracer := m.app.
52-
Tracer(trace.SourceMailman).
53-
Sticky(trace.WithKV("mailman", m.id))
50+
tracer := m.app.
51+
Tracer(trace.SourceMailman).
52+
Sticky(trace.WithKV("mailman", m.id))
53+
54+
tracer.Trace(ctx, "mailman.wake")
5455

56+
for {
5557
maybeEnv, err := m.app.MailmanDequeue(ctx)
5658
if err != nil {
5759
tracer.Trace(ctx, "mailman.dequeue", trace.WithError(err))
60+
log.Err(err).Msg("Mailman failed to dequeue envelope")
5861
break
5962
}
6063
if maybeEnv == nil {
@@ -64,13 +67,13 @@ func (m Mailman) Serve(ctx context.Context) error {
6467

6568
tracer = tracer.Sticky(trace.WithEnvelope(env.Message.ID))
6669

67-
tracer.Trace(ctx, "mailman.wake")
6870
if err := m.send(ctx, tracer, env); err != nil {
6971
tracer.Trace(ctx, "mailman.error", trace.WithError(err))
70-
log.Err(err).Int64("envelope-id", env.Message.ID).Msg("Failed to send envelope")
72+
log.Err(err).Int64("envelope-id", env.Message.ID).Msg("Mailman failed to send envelope")
7173
}
72-
tracer.Trace(ctx, "mailman.sleep")
7374
}
75+
76+
tracer.Trace(ctx, "mailman.sleep")
7477
}
7578
}
7679
}

internal/models/dto.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ type DTOEnvelopeListRequest struct {
2626
SearchSubject bool
2727
SearchText bool
2828
Ascending bool
29-
Order DTOEnvelopeField
29+
Order dtoEnvelopeField
3030
}
3131

32-
type DTOEnvelopeField string
32+
type dtoEnvelopeField string
3333

34-
func NewDTOEnvelopeField(s string) DTOEnvelopeField {
34+
func NewDTOEnvelopeField(s string) dtoEnvelopeField {
3535
switch s {
3636
case DTOEnvelopeFieldFrom:
3737
return DTOEnvelopeFieldFrom

pkg/pagination/page.go

+4
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ func NewPageResult(p Page, totalItems int) PageResult {
5151
}
5252
}
5353

54+
func (p PageResult) Overflow() bool {
55+
return p.Page > p.TotalPages
56+
}
57+
5458
func (p PageResult) HasNext() bool {
5559
return p.Page < p.TotalPages
5660
}

web/helpers/helpers.go

+4
Original file line numberDiff line numberDiff line change
@@ -133,3 +133,7 @@ func DecodeForm(w http.ResponseWriter, r *http.Request, form any) error {
133133

134134
return nil
135135
}
136+
137+
func ParseMultipartForm(r *http.Request) error {
138+
return r.ParseMultipartForm(32 << 20)
139+
}

0 commit comments

Comments
 (0)