Skip to content

Commit 48d055c

Browse files
committed
refactor: Remove http logic from main
Signed-off-by: Vincent Boutour <bob@vibioh.fr>
1 parent 6cbaccb commit 48d055c

3 files changed

Lines changed: 25 additions & 15 deletions

File tree

cmd/mailer/mailer.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@ import (
66
"github.com/ViBiOh/httputils/v4/pkg/alcotest"
77
"github.com/ViBiOh/httputils/v4/pkg/amqp"
88
"github.com/ViBiOh/httputils/v4/pkg/amqphandler"
9-
"github.com/ViBiOh/httputils/v4/pkg/cors"
10-
"github.com/ViBiOh/httputils/v4/pkg/httputils"
119
"github.com/ViBiOh/httputils/v4/pkg/logger"
12-
"github.com/ViBiOh/httputils/v4/pkg/owasp"
1310
"github.com/ViBiOh/httputils/v4/pkg/server"
1411
)
1512

@@ -33,10 +30,9 @@ func main() {
3330

3431
port := newPort(clients, services)
3532

36-
go services.server.Start(clients.health.EndCtx(), httputils.Handler(port, clients.health, clients.telemetry.Middleware("http"), owasp.New(config.owasp).Middleware, cors.New(config.cors).Middleware))
33+
go services.server.Start(clients.health.EndCtx(), port)
3734

3835
clients.health.WaitForTermination(getDoneChan(services.server.Done(), clients.amqp, services.amqpHandler))
39-
4036
server.GracefulWait(services.server.Done(), services.amqpHandler.Done())
4137
}
4238

cmd/mailer/port.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package main
33
import (
44
"net/http"
55

6+
"github.com/ViBiOh/httputils/v4/pkg/httputils"
67
"github.com/ViBiOh/mailer/pkg/httphandler"
78
)
89

@@ -15,5 +16,9 @@ func newPort(clients clients, services services) http.Handler {
1516
mux.HandleFunc("GET /render/{template...}", handler.HandlerTemplate)
1617
mux.HandleFunc("GET /", handler.HandleRoot)
1718

18-
return mux
19+
return httputils.Handler(mux, clients.health,
20+
clients.telemetry.Middleware("http"),
21+
services.owasp.Middleware,
22+
services.cors.Middleware,
23+
)
1924
}

cmd/mailer/services.go

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,42 @@ import (
55
"fmt"
66

77
"github.com/ViBiOh/httputils/v4/pkg/amqphandler"
8+
"github.com/ViBiOh/httputils/v4/pkg/cors"
9+
"github.com/ViBiOh/httputils/v4/pkg/owasp"
810
"github.com/ViBiOh/httputils/v4/pkg/server"
911
"github.com/ViBiOh/mailer/pkg/mailer"
1012
"github.com/ViBiOh/mailer/pkg/mjml"
1113
"github.com/ViBiOh/mailer/pkg/smtp"
1214
)
1315

1416
type services struct {
15-
server *server.Server
17+
server *server.Server
18+
owasp owasp.Service
19+
cors cors.Service
20+
1621
amqpHandler *amqphandler.Service
1722
mailer mailer.Service
1823
}
1924

2025
func newServices(config configuration, clients clients) (services, error) {
26+
var output services
27+
var err error
28+
29+
output.server = server.New(config.server)
30+
output.owasp = owasp.New(config.owasp)
31+
output.cors = cors.New(config.cors)
32+
2133
mjmlService := mjml.New(config.mjml, clients.telemetry.MeterProvider(), clients.telemetry.TracerProvider())
2234
smtpService := smtp.New(config.smtp, clients.telemetry.MeterProvider(), clients.telemetry.TracerProvider())
23-
mailerService := mailer.New(config.mailer, mjmlService, smtpService, clients.telemetry.MeterProvider(), clients.telemetry.TracerProvider())
2435

25-
amqpHandler, err := amqphandler.New(config.amqphandler, clients.amqp, clients.telemetry.MeterProvider(), clients.telemetry.TracerProvider(), mailerService.AmqpHandler)
36+
output.mailer = mailer.New(config.mailer, mjmlService, smtpService, clients.telemetry.MeterProvider(), clients.telemetry.TracerProvider())
37+
38+
output.amqpHandler, err = amqphandler.New(config.amqphandler, clients.amqp, clients.telemetry.MeterProvider(), clients.telemetry.TracerProvider(), output.mailer.AmqpHandler)
2639
if err != nil {
27-
return services{}, fmt.Errorf("amqpHandler: %w", err)
40+
return output, fmt.Errorf("amqpHandler: %w", err)
2841
}
2942

30-
return services{
31-
server: server.New(config.server),
32-
mailer: mailerService,
33-
amqpHandler: amqpHandler,
34-
}, nil
43+
return output, nil
3544
}
3645

3746
func (s services) Start(ctx context.Context) {

0 commit comments

Comments
 (0)