mirror of https://github.com/ory/kratos
61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
// Copyright © 2023 Ory Corp
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package x
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/gorilla/sessions"
|
|
"github.com/hashicorp/go-retryablehttp"
|
|
|
|
"github.com/ory/herodot"
|
|
"github.com/ory/x/httpx"
|
|
"github.com/ory/x/logrusx"
|
|
"github.com/ory/x/otelx"
|
|
)
|
|
|
|
type LoggingProvider interface {
|
|
Logger() *logrusx.Logger
|
|
Audit() *logrusx.Logger
|
|
}
|
|
|
|
type WriterProvider interface {
|
|
Writer() herodot.Writer
|
|
}
|
|
|
|
type CookieProvider interface {
|
|
CookieManager(ctx context.Context) sessions.StoreExact
|
|
ContinuityCookieManager(ctx context.Context) sessions.StoreExact
|
|
}
|
|
|
|
type TracingProvider interface {
|
|
Tracer(ctx context.Context) *otelx.Tracer
|
|
}
|
|
|
|
type SimpleLoggerWithClient struct {
|
|
L *logrusx.Logger
|
|
C *retryablehttp.Client
|
|
T *otelx.Tracer
|
|
}
|
|
|
|
func (s *SimpleLoggerWithClient) Tracer(_ context.Context) *otelx.Tracer {
|
|
return s.T
|
|
}
|
|
|
|
func (s *SimpleLoggerWithClient) Logger() *logrusx.Logger {
|
|
return s.L
|
|
}
|
|
|
|
func (s *SimpleLoggerWithClient) Audit() *logrusx.Logger {
|
|
return s.L
|
|
}
|
|
|
|
func (s *SimpleLoggerWithClient) HTTPClient(_ context.Context, _ ...httpx.ResilientOptions) *retryablehttp.Client {
|
|
return s.C
|
|
}
|
|
|
|
var _ LoggingProvider = (*SimpleLoggerWithClient)(nil)
|
|
var _ HTTPClientProvider = (*SimpleLoggerWithClient)(nil)
|
|
var _ TracingProvider = (*SimpleLoggerWithClient)(nil)
|