Documentation
¶
Index ¶
- Constants
- Variables
- func CreateRemapperKazaam(name string, config Config) (manipulation.Remapper, error)
- func CreateRemapperNoOp(name string, _ Config) (manipulation.Remapper, error)
- func DefaultBackendErrorHandler(log func(v ...any)) func(err error) (proceed bool)
- func DefaultErrorHandler(log func(v ...any)) func(err error, w http.ResponseWriter, r *http.Request)
- func GetLogger() app.Logger
- func SetLogger(log app.Logger)
- type BackendConfig
- type Config
- type ConfigParser
- type DynamicConfig
- type Error
- type Factory
- func CSVTransformer(tablifierFactory Factory[manipulation.Tablifier]) Factory[manipulation.DataTransformer]
- func JSONTablifierFactory(remapperFactory Factory[manipulation.Remapper], ...) Factory[manipulation.Tablifier]
- func PDFTransformer(remapperFactory Factory[manipulation.Remapper]) Factory[manipulation.DataTransformer]
- type FactoryFunc
- type FactoryMap
- type HCLConfigParser
- type HTTPRoutesInitializer
- type HTTPRoutesInitializers
- type ProxyRoutesInitializer
- type ProxyServiceConfig
- type RootConfig
- type ServerConfig
- type StaticContentRoutesInitializer
- type StaticServiceConfig
Constants ¶
View Source
const ( RemapperReferenceName = "remapper" RemapperKazaam = "kazaam" // https://github.com/qntfy/kazaam RemapperNoOp = "noOp" )
View Source
const ( TablifierReferenceName = "tablifier" TablifierJSON = "json" )
View Source
const ( TransformerReferenceName = "transformer" TransformerCSV = "csv" TransformerPDF = "pdf" )
View Source
const (
ErrRequiredConfigurationMissed = Error("required configuration missed")
)
Variables ¶
View Source
var Remapper = FactoryMap[manipulation.Remapper]{ RemapperKazaam: FactoryFunc[manipulation.Remapper](CreateRemapperKazaam), RemapperNoOp: FactoryFunc[manipulation.Remapper](CreateRemapperNoOp), }
View Source
var Tablifier = FactoryMap[manipulation.Tablifier]{ TablifierJSON: JSONTablifierFactory(Remapper, manipulation.NewNoOpRemapper()), }
View Source
var Transformer = FactoryMap[manipulation.DataTransformer]{ TransformerCSV: CSVTransformer(Tablifier), TransformerPDF: PDFTransformer(Remapper), }
Functions ¶
func CreateRemapperKazaam ¶
func CreateRemapperKazaam(name string, config Config) (manipulation.Remapper, error)
func CreateRemapperNoOp ¶
func CreateRemapperNoOp(name string, _ Config) (manipulation.Remapper, error)
func DefaultErrorHandler ¶
Types ¶
type BackendConfig ¶
type ConfigParser ¶
type ConfigParser interface {
Parse(filename string) (*RootConfig, error)
}
type DynamicConfig ¶
type DynamicConfig struct { Name string `hcl:"name,label"` Attributes map[string]cty.Value `hcl:",remain"` }
func (*DynamicConfig) ToConfig ¶
func (c *DynamicConfig) ToConfig() (Config, error)
type Factory ¶
Factory base factory interface
func CSVTransformer ¶
func CSVTransformer(tablifierFactory Factory[manipulation.Tablifier]) Factory[manipulation.DataTransformer]
func JSONTablifierFactory ¶
func JSONTablifierFactory( remapperFactory Factory[manipulation.Remapper], defaultRemapper manipulation.Remapper, ) Factory[manipulation.Tablifier]
func PDFTransformer ¶
func PDFTransformer(remapperFactory Factory[manipulation.Remapper]) Factory[manipulation.DataTransformer]
type FactoryFunc ¶
FactoryFunc allows using functions as factories
type FactoryMap ¶
FactoryMap allows using multiple factory by name
type HCLConfigParser ¶
type HCLConfigParser struct { }
func (HCLConfigParser) Parse ¶
func (p HCLConfigParser) Parse(filename string) (*RootConfig, error)
type HTTPRoutesInitializer ¶
type HTTPRoutesInitializer interface {
InitRoutes(router route.Router, config *ServerConfig) error
}
type HTTPRoutesInitializers ¶
type HTTPRoutesInitializers []HTTPRoutesInitializer
func (HTTPRoutesInitializers) InitRoutes ¶
func (h HTTPRoutesInitializers) InitRoutes(router route.Router, config *ServerConfig) error
type ProxyRoutesInitializer ¶
type ProxyRoutesInitializer struct {
// contains filtered or unexported fields
}
func NewProxyRoutesInitializer ¶
func NewProxyRoutesInitializer( backendErrorHandler func(err error) (proceed bool), errorHandler func(err error, w http.ResponseWriter, r *http.Request), ) *ProxyRoutesInitializer
func (*ProxyRoutesInitializer) InitRoutes ¶
func (p *ProxyRoutesInitializer) InitRoutes(router route.Router, config *ServerConfig) error
type ProxyServiceConfig ¶
type ProxyServiceConfig struct { Method string `hcl:"method,optional"` PathTemplate string `hcl:"path_template,label"` Backend BackendConfig `hcl:"backend,block"` FlushInterval time.Duration `hcl:"flush_interval,optional"` SetHeader map[string]string `hcl:"set_header,optional"` Transformer DynamicConfig `hcl:"transformer,block"` }
type RootConfig ¶
type RootConfig struct { LogLevel string `hcl:"log_level,optional"` Servers []*ServerConfig `hcl:"server,block"` }
func ParseConfig ¶
func ParseConfig(filename string) (*RootConfig, error)
type ServerConfig ¶
type ServerConfig struct { Name string `hcl:"name,label"` ListenAddress string `hcl:"listen"` ReadTimeout time.Duration `hcl:"read_timeout,optional"` WriteTimeout time.Duration `hcl:"write_timeout,optional"` IdleTimeout time.Duration `hcl:"idle_timeout,optional"` ProxyServices []*ProxyServiceConfig `hcl:"proxy_service,block"` StaticServices []*StaticServiceConfig `hcl:"static_service,block"` }
type StaticContentRoutesInitializer ¶
type StaticContentRoutesInitializer struct { }
func NewStaticContentRoutesInitializer ¶
func NewStaticContentRoutesInitializer() *StaticContentRoutesInitializer
func (*StaticContentRoutesInitializer) InitRoutes ¶
func (s *StaticContentRoutesInitializer) InitRoutes(router route.Router, config *ServerConfig) error
Click to show internal directories.
Click to hide internal directories.