working v1
This commit is contained in:
28
gateway/samechannel/samechannel.go
Normal file
28
gateway/samechannel/samechannel.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package samechannel
|
||||
|
||||
import (
|
||||
"github.com/42wim/matterbridge/bridge/config"
|
||||
)
|
||||
|
||||
type SameChannelGateway struct {
|
||||
config.Config
|
||||
}
|
||||
|
||||
func New(cfg config.Config) *SameChannelGateway {
|
||||
return &SameChannelGateway{Config: cfg}
|
||||
}
|
||||
|
||||
func (sgw *SameChannelGateway) GetConfig() []config.Gateway {
|
||||
var gwconfigs []config.Gateway
|
||||
cfg := sgw.Config
|
||||
for _, gw := range cfg.BridgeValues().SameChannelGateway {
|
||||
gwconfig := config.Gateway{Name: gw.Name, Enable: gw.Enable}
|
||||
for _, account := range gw.Accounts {
|
||||
for _, channel := range gw.Channels {
|
||||
gwconfig.InOut = append(gwconfig.InOut, config.Bridge{Account: account, Channel: channel, SameChannel: true})
|
||||
}
|
||||
}
|
||||
gwconfigs = append(gwconfigs, gwconfig)
|
||||
}
|
||||
return gwconfigs
|
||||
}
|
||||
77
gateway/samechannel/samechannel_test.go
Normal file
77
gateway/samechannel/samechannel_test.go
Normal file
@@ -0,0 +1,77 @@
|
||||
package samechannel
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"testing"
|
||||
|
||||
"github.com/42wim/matterbridge/bridge/config"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
const testConfig = `
|
||||
[mattermost.test]
|
||||
[slack.test]
|
||||
|
||||
[[samechannelgateway]]
|
||||
enable = true
|
||||
name = "blah"
|
||||
accounts = [ "mattermost.test","slack.test" ]
|
||||
channels = [ "testing","testing2","testing10"]
|
||||
`
|
||||
|
||||
var (
|
||||
expectedConfig = config.Gateway{
|
||||
Name: "blah",
|
||||
Enable: true,
|
||||
In: []config.Bridge(nil),
|
||||
Out: []config.Bridge(nil),
|
||||
InOut: []config.Bridge{
|
||||
{
|
||||
Account: "mattermost.test",
|
||||
Channel: "testing",
|
||||
Options: config.ChannelOptions{Key: ""},
|
||||
SameChannel: true,
|
||||
},
|
||||
{
|
||||
Account: "mattermost.test",
|
||||
Channel: "testing2",
|
||||
Options: config.ChannelOptions{Key: ""},
|
||||
SameChannel: true,
|
||||
},
|
||||
{
|
||||
Account: "mattermost.test",
|
||||
Channel: "testing10",
|
||||
Options: config.ChannelOptions{Key: ""},
|
||||
SameChannel: true,
|
||||
},
|
||||
{
|
||||
Account: "slack.test",
|
||||
Channel: "testing",
|
||||
Options: config.ChannelOptions{Key: ""},
|
||||
SameChannel: true,
|
||||
},
|
||||
{
|
||||
Account: "slack.test",
|
||||
Channel: "testing2",
|
||||
Options: config.ChannelOptions{Key: ""},
|
||||
SameChannel: true,
|
||||
},
|
||||
{
|
||||
Account: "slack.test",
|
||||
Channel: "testing10",
|
||||
Options: config.ChannelOptions{Key: ""},
|
||||
SameChannel: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
func TestGetConfig(t *testing.T) {
|
||||
logger := logrus.New()
|
||||
logger.SetOutput(ioutil.Discard)
|
||||
cfg := config.NewConfigFromString(logger, []byte(testConfig))
|
||||
sgw := New(cfg)
|
||||
configs := sgw.GetConfig()
|
||||
assert.Equal(t, []config.Gateway{expectedConfig}, configs)
|
||||
}
|
||||
Reference in New Issue
Block a user