Skip to content
This repository was archived by the owner on Oct 13, 2021. It is now read-only.

Commit 4e3e03a

Browse files
author
Marcus Olsson
committed
Update with changes from gokit (thank you!)
1 parent c521f89 commit 4e3e03a

File tree

6 files changed

+23
-52
lines changed

6 files changed

+23
-52
lines changed

booking/endpoint.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ type loadCargoResponse struct {
4343

4444
func (r loadCargoResponse) error() error { return r.Err }
4545

46-
func makeLoadCargoEndpoint(bs Service) endpoint.Endpoint {
46+
func makeLoadCargoEndpoint(s Service) endpoint.Endpoint {
4747
return func(ctx context.Context, request interface{}) (interface{}, error) {
4848
req := request.(loadCargoRequest)
49-
c, err := bs.LoadCargo(req.ID)
49+
c, err := s.LoadCargo(req.ID)
5050
return loadCargoResponse{Cargo: &c, Err: err}, nil
5151
}
5252
}

booking/transport.go

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,64 @@
11
package booking
22

33
import (
4+
"context"
45
"encoding/json"
56
"errors"
67
"net/http"
78
"time"
89

9-
"context"
10-
11-
"github.com/gorilla/mux"
12-
1310
kitlog "github.com/go-kit/kit/log"
1411
kithttp "github.com/go-kit/kit/transport/http"
12+
"github.com/gorilla/mux"
1513

1614
"github.com/marcusolsson/goddd/cargo"
1715
"github.com/marcusolsson/goddd/location"
1816
)
1917

2018
// MakeHandler returns a handler for the booking service.
21-
func MakeHandler(ctx context.Context, bs Service, logger kitlog.Logger) http.Handler {
19+
func MakeHandler(bs Service, logger kitlog.Logger) http.Handler {
2220
opts := []kithttp.ServerOption{
2321
kithttp.ServerErrorLogger(logger),
2422
kithttp.ServerErrorEncoder(encodeError),
2523
}
2624

2725
bookCargoHandler := kithttp.NewServer(
28-
ctx,
2926
makeBookCargoEndpoint(bs),
3027
decodeBookCargoRequest,
3128
encodeResponse,
3229
opts...,
3330
)
3431
loadCargoHandler := kithttp.NewServer(
35-
ctx,
3632
makeLoadCargoEndpoint(bs),
3733
decodeLoadCargoRequest,
3834
encodeResponse,
3935
opts...,
4036
)
4137
requestRoutesHandler := kithttp.NewServer(
42-
ctx,
4338
makeRequestRoutesEndpoint(bs),
4439
decodeRequestRoutesRequest,
4540
encodeResponse,
4641
opts...,
4742
)
4843
assignToRouteHandler := kithttp.NewServer(
49-
ctx,
5044
makeAssignToRouteEndpoint(bs),
5145
decodeAssignToRouteRequest,
5246
encodeResponse,
5347
opts...,
5448
)
5549
changeDestinationHandler := kithttp.NewServer(
56-
ctx,
5750
makeChangeDestinationEndpoint(bs),
5851
decodeChangeDestinationRequest,
5952
encodeResponse,
6053
opts...,
6154
)
6255
listCargosHandler := kithttp.NewServer(
63-
ctx,
6456
makeListCargosEndpoint(bs),
6557
decodeListCargosRequest,
6658
encodeResponse,
6759
opts...,
6860
)
6961
listLocationsHandler := kithttp.NewServer(
70-
ctx,
7162
makeListLocationsEndpoint(bs),
7263
decodeListLocationsRequest,
7364
encodeResponse,
@@ -188,6 +179,7 @@ type errorer interface {
188179

189180
// encode errors from business-logic
190181
func encodeError(_ context.Context, err error, w http.ResponseWriter) {
182+
w.Header().Set("Content-Type", "application/json; charset=utf-8")
191183
switch err {
192184
case cargo.ErrUnknown:
193185
w.WriteHeader(http.StatusNotFound)
@@ -196,7 +188,6 @@ func encodeError(_ context.Context, err error, w http.ResponseWriter) {
196188
default:
197189
w.WriteHeader(http.StatusInternalServerError)
198190
}
199-
w.Header().Set("Content-Type", "application/json; charset=utf-8")
200191
json.NewEncoder(w).Encode(map[string]interface{}{
201192
"error": err.Error(),
202193
})

handling/transport.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
)
1818

1919
// MakeHandler returns a handler for the handling service.
20-
func MakeHandler(ctx context.Context, hs Service, logger kitlog.Logger) http.Handler {
20+
func MakeHandler(hs Service, logger kitlog.Logger) http.Handler {
2121
r := mux.NewRouter()
2222

2323
opts := []kithttp.ServerOption{
@@ -26,7 +26,6 @@ func MakeHandler(ctx context.Context, hs Service, logger kitlog.Logger) http.Han
2626
}
2727

2828
registerIncidentHandler := kithttp.NewServer(
29-
ctx,
3029
makeRegisterIncidentEndpoint(hs),
3130
decodeRegisterIncidentRequest,
3231
encodeResponse,
@@ -87,6 +86,7 @@ type errorer interface {
8786

8887
// encode errors from business-logic
8988
func encodeError(_ context.Context, err error, w http.ResponseWriter) {
89+
w.Header().Set("Content-Type", "application/json; charset=utf-8")
9090
switch err {
9191
case cargo.ErrUnknown:
9292
w.WriteHeader(http.StatusNotFound)
@@ -95,7 +95,6 @@ func encodeError(_ context.Context, err error, w http.ResponseWriter) {
9595
default:
9696
w.WriteHeader(http.StatusInternalServerError)
9797
}
98-
w.Header().Set("Content-Type", "application/json; charset=utf-8")
9998
json.NewEncoder(w).Encode(map[string]interface{}{
10099
"error": err.Error(),
101100
})

main.go

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ import (
77
"net/http"
88
"os"
99
"os/signal"
10-
"sync"
1110
"syscall"
1211
"time"
1312

1413
stdprometheus "github.com/prometheus/client_golang/prometheus"
14+
"github.com/prometheus/client_golang/prometheus/promhttp"
1515
"gopkg.in/mgo.v2"
1616

1717
"github.com/go-kit/kit/log"
@@ -55,9 +55,8 @@ func main() {
5555
flag.Parse()
5656

5757
var logger log.Logger
58-
logger = log.NewLogfmtLogger(os.Stderr)
59-
logger = &serializedLogger{Logger: logger}
60-
logger = log.NewContext(logger).With("ts", log.DefaultTimestampUTC)
58+
logger = log.NewLogfmtLogger(log.NewSyncWriter(os.Stderr))
59+
logger = log.With(logger, "ts", log.DefaultTimestampUTC)
6160

6261
// Setup repositories
6362
var (
@@ -109,7 +108,7 @@ func main() {
109108

110109
var bs booking.Service
111110
bs = booking.NewService(cargos, locations, handlingEvents, rs)
112-
bs = booking.NewLoggingService(log.NewContext(logger).With("component", "booking"), bs)
111+
bs = booking.NewLoggingService(log.With(logger, "component", "booking"), bs)
113112
bs = booking.NewInstrumentingService(
114113
kitprometheus.NewCounterFrom(stdprometheus.CounterOpts{
115114
Namespace: "api",
@@ -128,7 +127,7 @@ func main() {
128127

129128
var ts tracking.Service
130129
ts = tracking.NewService(cargos, handlingEvents)
131-
ts = tracking.NewLoggingService(log.NewContext(logger).With("component", "tracking"), ts)
130+
ts = tracking.NewLoggingService(log.With(logger, "component", "tracking"), ts)
132131
ts = tracking.NewInstrumentingService(
133132
kitprometheus.NewCounterFrom(stdprometheus.CounterOpts{
134133
Namespace: "api",
@@ -147,7 +146,7 @@ func main() {
147146

148147
var hs handling.Service
149148
hs = handling.NewService(handlingEvents, handlingEventFactory, handlingEventHandler)
150-
hs = handling.NewLoggingService(log.NewContext(logger).With("component", "handling"), hs)
149+
hs = handling.NewLoggingService(log.With(logger, "component", "handling"), hs)
151150
hs = handling.NewInstrumentingService(
152151
kitprometheus.NewCounterFrom(stdprometheus.CounterOpts{
153152
Namespace: "api",
@@ -164,16 +163,16 @@ func main() {
164163
hs,
165164
)
166165

167-
httpLogger := log.NewContext(logger).With("component", "http")
166+
httpLogger := log.With(logger, "component", "http")
168167

169168
mux := http.NewServeMux()
170169

171-
mux.Handle("/booking/v1/", booking.MakeHandler(ctx, bs, httpLogger))
172-
mux.Handle("/tracking/v1/", tracking.MakeHandler(ctx, ts, httpLogger))
173-
mux.Handle("/handling/v1/", handling.MakeHandler(ctx, hs, httpLogger))
170+
mux.Handle("/booking/v1/", booking.MakeHandler(bs, httpLogger))
171+
mux.Handle("/tracking/v1/", tracking.MakeHandler(ts, httpLogger))
172+
mux.Handle("/handling/v1/", handling.MakeHandler(hs, httpLogger))
174173

175174
http.Handle("/", accessControl(mux))
176-
http.Handle("/metrics", stdprometheus.Handler())
175+
http.Handle("/metrics", promhttp.Handler())
177176

178177
errs := make(chan error, 2)
179178
go func() {
@@ -230,14 +229,3 @@ func storeTestData(r cargo.Repository) {
230229
panic(err)
231230
}
232231
}
233-
234-
type serializedLogger struct {
235-
mtx sync.Mutex
236-
log.Logger
237-
}
238-
239-
func (l *serializedLogger) Log(keyvals ...interface{}) error {
240-
l.mtx.Lock()
241-
defer l.mtx.Unlock()
242-
return l.Logger.Log(keyvals...)
243-
}

tracking/transport.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
)
1616

1717
// MakeHandler returns a handler for the tracking service.
18-
func MakeHandler(ctx context.Context, ts Service, logger kitlog.Logger) http.Handler {
18+
func MakeHandler(ts Service, logger kitlog.Logger) http.Handler {
1919
r := mux.NewRouter()
2020

2121
opts := []kithttp.ServerOption{
@@ -24,7 +24,6 @@ func MakeHandler(ctx context.Context, ts Service, logger kitlog.Logger) http.Han
2424
}
2525

2626
trackCargoHandler := kithttp.NewServer(
27-
ctx,
2827
makeTrackCargoEndpoint(ts),
2928
decodeTrackCargoRequest,
3029
encodeResponse,
@@ -61,6 +60,7 @@ type errorer interface {
6160

6261
// encode errors from business-logic
6362
func encodeError(_ context.Context, err error, w http.ResponseWriter) {
63+
w.Header().Set("Content-Type", "application/json; charset=utf-8")
6464
switch err {
6565
case cargo.ErrUnknown:
6666
w.WriteHeader(http.StatusNotFound)
@@ -69,7 +69,6 @@ func encodeError(_ context.Context, err error, w http.ResponseWriter) {
6969
default:
7070
w.WriteHeader(http.StatusInternalServerError)
7171
}
72-
w.Header().Set("Content-Type", "application/json; charset=utf-8")
7372
json.NewEncoder(w).Encode(map[string]interface{}{
7473
"error": err.Error(),
7574
})

tracking/transport_test.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import (
99
"testing"
1010
"time"
1111

12-
"context"
13-
1412
"github.com/go-kit/kit/log"
1513

1614
"github.com/marcusolsson/goddd/cargo"
@@ -35,11 +33,9 @@ func TestTrackCargo(t *testing.T) {
3533

3634
cargos.Store(c)
3735

38-
ctx := context.Background()
39-
4036
logger := log.NewLogfmtLogger(ioutil.Discard)
4137

42-
h := MakeHandler(ctx, s, logger)
38+
h := MakeHandler(s, logger)
4339

4440
req, _ := http.NewRequest("GET", "http://example.com/tracking/v1/cargos/TEST", nil)
4541
rec := httptest.NewRecorder()
@@ -91,11 +87,9 @@ func TestTrackUnknownCargo(t *testing.T) {
9187

9288
s := NewService(&cargos, &events)
9389

94-
ctx := context.Background()
95-
9690
logger := log.NewLogfmtLogger(ioutil.Discard)
9791

98-
h := MakeHandler(ctx, s, logger)
92+
h := MakeHandler(s, logger)
9993

10094
req, _ := http.NewRequest("GET", "http://example.com/tracking/v1/cargos/not_found", nil)
10195
rec := httptest.NewRecorder()

0 commit comments

Comments
 (0)