newInvalidBaseURLHandler returns a handler that always returns 502 when the provider's base URL is invalid.
(prov provider.Provider, logger slog.Logger, m *metrics.Metrics, tracer trace.Tracer, baseURLErr error)
| 102 | // newInvalidBaseURLHandler returns a handler that always returns 502 |
| 103 | // when the provider's base URL is invalid. |
| 104 | func newInvalidBaseURLHandler(prov provider.Provider, logger slog.Logger, m *metrics.Metrics, tracer trace.Tracer, baseURLErr error) http.HandlerFunc { |
| 105 | return func(w http.ResponseWriter, r *http.Request) { |
| 106 | ctx, span := startSpan(r, tracer) |
| 107 | defer span.End() |
| 108 | |
| 109 | if m != nil { |
| 110 | m.PassthroughCount.WithLabelValues(prov.Name(), r.URL.Path, r.Method).Add(1) |
| 111 | } |
| 112 | |
| 113 | logger.Warn(ctx, "invalid provider base URL", slog.Error(baseURLErr)) |
| 114 | http.Error(w, "invalid provider base URL", http.StatusBadGateway) |
| 115 | span.SetStatus(codes.Error, "invalid provider base URL: "+baseURLErr.Error()) |
| 116 | } |
| 117 | } |
| 118 | |
| 119 | func startSpan(r *http.Request, tracer trace.Tracer) (context.Context, trace.Span) { |
| 120 | return tracer.Start(r.Context(), "Passthrough", trace.WithAttributes( |
no test coverage detected