1
0
mirror of synced 2024-11-21 20:16:02 +03:00

Merge pull request #67 from DmitryZagorulko/master

add channels deactivation
This commit is contained in:
Alex Lushpai 2019-01-18 10:41:58 +03:00 committed by GitHub
commit b416922844
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 47 additions and 4 deletions

2
go.mod
View File

@ -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
View File

@ -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=

View File

@ -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)