in PetAdoptions/cdk/pet_stack/resources/microservices/payforadoption-go/payforadoption/transport.go [19:71]
func MakeHTTPHandler(s Service, logger log.Logger) http.Handler {
r := mux.NewRouter()
e := MakeEndpoints(s)
options := []httptransport.ServerOption{
httptransport.ServerErrorHandler(transport.NewLogErrorHandler(logger)),
httptransport.ServerErrorEncoder(encodeError),
httptransport.ServerFinalizer(loggingMiddleware),
}
r.Methods("GET").Path("/health/status").Handler(httptransport.NewServer(
e.HealthCheckEndpoint,
decodeEmptyRequest,
encodeEmptyResponse,
options...,
))
// using xray as wrapper for http.Handler
r.Methods("POST").Path("/api/home/completeadoption").Handler(
xray.Handler(
xray.NewFixedSegmentNamer("payforadoption"),
httptransport.NewServer(
e.CompleteAdoptionEndpoint,
decodeCompleteAdoptionRequest,
encodeResponse,
options...,
),
),
)
// using xray as wrapper for http.Handler
r.Methods("POST").Path("/api/home/cleanupadoptions").Handler(
xray.Handler(
xray.NewFixedSegmentNamer("payforadoption"),
httptransport.NewServer(
e.CleanupAdoptionsEndpoint,
decodeEmptyRequest,
encodeEmptyResponse,
options...,
),
),
)
// Trigger DDB seeding
r.Methods("POST").Path("/api/home/triggerseeding").Handler(httptransport.NewServer(
e.TriggerSeedingEndpoint,
decodeEmptyRequest,
encodeEmptyResponse,
options...,
))
r.Methods("GET").Path("/metrics").Handler(promhttp.Handler())
return r
}