2020-04-13 22:14:56 +00:00
|
|
|
package config
|
|
|
|
|
|
|
|
import (
|
2020-04-25 22:22:45 +00:00
|
|
|
"github.com/baez90/inetmock/pkg/api"
|
2020-04-13 22:14:56 +00:00
|
|
|
"github.com/spf13/viper"
|
|
|
|
)
|
|
|
|
|
|
|
|
type MultiHandlerConfig interface {
|
|
|
|
HandlerName() string
|
|
|
|
ListenAddress() string
|
|
|
|
Ports() []uint16
|
|
|
|
Options() *viper.Viper
|
2020-04-25 22:22:45 +00:00
|
|
|
HandlerConfigs() []api.HandlerConfig
|
2020-04-13 22:14:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type multiHandlerConfig struct {
|
|
|
|
handlerName string
|
|
|
|
ports []uint16
|
|
|
|
listenAddress string
|
|
|
|
options *viper.Viper
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewMultiHandlerConfig(handlerName string, ports []uint16, listenAddress string, options *viper.Viper) MultiHandlerConfig {
|
|
|
|
return &multiHandlerConfig{handlerName: handlerName, ports: ports, listenAddress: listenAddress, options: options}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m multiHandlerConfig) HandlerName() string {
|
|
|
|
return m.handlerName
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m multiHandlerConfig) ListenAddress() string {
|
|
|
|
return m.listenAddress
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m multiHandlerConfig) Ports() []uint16 {
|
|
|
|
return m.ports
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m multiHandlerConfig) Options() *viper.Viper {
|
|
|
|
return m.options
|
|
|
|
}
|
|
|
|
|
2020-04-25 22:22:45 +00:00
|
|
|
func (m multiHandlerConfig) HandlerConfigs() []api.HandlerConfig {
|
|
|
|
configs := make([]api.HandlerConfig, 0)
|
2020-04-13 22:14:56 +00:00
|
|
|
for _, port := range m.ports {
|
2020-04-25 22:22:45 +00:00
|
|
|
configs = append(configs, api.NewHandlerConfig(m.handlerName, port, m.listenAddress, m.options))
|
2020-04-13 22:14:56 +00:00
|
|
|
}
|
|
|
|
return configs
|
|
|
|
}
|