Merge pull request #67 from DmitryZagorulko/master
add channels deactivation
This commit is contained in:
commit
b416922844
2
go.mod
2
go.mod
@ -45,7 +45,7 @@ require (
|
||||
github.com/pkg/errors v0.8.0
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/retailcrm/api-client-go v1.1.0
|
||||
github.com/retailcrm/mg-transport-api-client-go v1.1.21
|
||||
github.com/retailcrm/mg-transport-api-client-go v1.1.24
|
||||
github.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf // indirect
|
||||
github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a // indirect
|
||||
github.com/stevvooe/resumable v0.0.0-20180830230917-22b14a53ba50 // indirect
|
||||
|
4
go.sum
4
go.sum
@ -95,8 +95,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/retailcrm/api-client-go v1.1.0 h1:APPO6ccJAeMV7Jz7BhrtDKSOm2r1j5Ft6fuEXNP2ij4=
|
||||
github.com/retailcrm/api-client-go v1.1.0/go.mod h1:QRoPE2SM6ST7i2g0yEdqm7Iw98y7cYuq3q14Ot+6N8c=
|
||||
github.com/retailcrm/mg-transport-api-client-go v1.1.21 h1:OKkey9uvB16ucICuO2hp/tfh0wfp3na0CxRiT2Iv3sE=
|
||||
github.com/retailcrm/mg-transport-api-client-go v1.1.21/go.mod h1:AWV6BueE28/6SCoyfKURTo4lF0oXYoOKmHTzehd5vAI=
|
||||
github.com/retailcrm/mg-transport-api-client-go v1.1.24 h1:8VdiyhCYgEhKwlXvvuJdsOMquNXEcqtHBVzDojNHxNg=
|
||||
github.com/retailcrm/mg-transport-api-client-go v1.1.24/go.mod h1:AWV6BueE28/6SCoyfKURTo4lF0oXYoOKmHTzehd5vAI=
|
||||
github.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf h1:6V1qxN6Usn4jy8unvggSJz/NC790tefw8Zdy6OZS5co=
|
||||
github.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||
github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a h1:JSvGDIbmil4Ui/dDdFBExb7/cmkNjyX5F97oglmvCDo=
|
||||
|
@ -89,6 +89,8 @@ func addBotHandler(c *gin.Context) {
|
||||
|
||||
err = conn.createBot(b)
|
||||
if err != nil {
|
||||
client.DeactivateTransportChannel(data.ChannelID)
|
||||
|
||||
c.Error(err)
|
||||
return
|
||||
}
|
||||
@ -405,11 +407,14 @@ func updateChannelsSettings() {
|
||||
}
|
||||
|
||||
func updateBots(conn *Connection, hashSettings string) {
|
||||
var channelIDs []uint64
|
||||
bots := conn.getBotsByClientID()
|
||||
|
||||
if len(bots) > 0 {
|
||||
client := v1.New(conn.MGURL, conn.MGToken)
|
||||
client.Debug = config.Debug
|
||||
for _, bot := range bots {
|
||||
channelIDs = append(channelIDs, bot.Channel)
|
||||
if bot.ChannelSettingsHash == hashSettings {
|
||||
continue
|
||||
}
|
||||
@ -437,13 +442,51 @@ func updateBots(conn *Connection, hashSettings string) {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
deactivateChannels(client, channelIDs)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func deactivateChannels(client *v1.MgClient, channelIDs []uint64) {
|
||||
channelListItems, status, err := client.TransportChannels(v1.Channels{Active: true})
|
||||
if config.Debug {
|
||||
logger.Debugf(
|
||||
"TransportChannels ChannelListItems: %+v, Status: %d, err: %v",
|
||||
channelListItems, status, err,
|
||||
)
|
||||
}
|
||||
|
||||
if len(channelListItems) > 0 {
|
||||
for _, channel := range channelIDs {
|
||||
for key, ch := range channelListItems {
|
||||
if channel == ch.ID {
|
||||
if len(channelListItems) == 1 {
|
||||
channelListItems = channelListItems[:0]
|
||||
break
|
||||
}
|
||||
|
||||
channelListItems = append(channelListItems[:key], channelListItems[key+1:]...)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if len(channelListItems) > 0 {
|
||||
for _, ch := range channelListItems {
|
||||
channelListItems, status, err := client.DeactivateTransportChannel(ch.ID)
|
||||
if config.Debug {
|
||||
logger.Debugf(
|
||||
"DeactivateTransportChannel ChannelListItems: %+v, Status: %d, err: %v",
|
||||
channelListItems, status, err,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func telegramWebhookHandler(c *gin.Context) {
|
||||
b := c.MustGet("bot").(Bot)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user