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/pkg/errors v0.8.0
|
||||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
github.com/retailcrm/api-client-go v1.1.0
|
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/assertions v0.0.0-20180820201707-7c9eb446e3cf // indirect
|
||||||
github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a // indirect
|
github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a // indirect
|
||||||
github.com/stevvooe/resumable v0.0.0-20180830230917-22b14a53ba50 // 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/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 h1:APPO6ccJAeMV7Jz7BhrtDKSOm2r1j5Ft6fuEXNP2ij4=
|
||||||
github.com/retailcrm/api-client-go v1.1.0/go.mod h1:QRoPE2SM6ST7i2g0yEdqm7Iw98y7cYuq3q14Ot+6N8c=
|
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.24 h1:8VdiyhCYgEhKwlXvvuJdsOMquNXEcqtHBVzDojNHxNg=
|
||||||
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/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 h1:6V1qxN6Usn4jy8unvggSJz/NC790tefw8Zdy6OZS5co=
|
||||||
github.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
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=
|
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)
|
err = conn.createBot(b)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
client.DeactivateTransportChannel(data.ChannelID)
|
||||||
|
|
||||||
c.Error(err)
|
c.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -405,11 +407,14 @@ func updateChannelsSettings() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func updateBots(conn *Connection, hashSettings string) {
|
func updateBots(conn *Connection, hashSettings string) {
|
||||||
|
var channelIDs []uint64
|
||||||
bots := conn.getBotsByClientID()
|
bots := conn.getBotsByClientID()
|
||||||
|
|
||||||
if len(bots) > 0 {
|
if len(bots) > 0 {
|
||||||
client := v1.New(conn.MGURL, conn.MGToken)
|
client := v1.New(conn.MGURL, conn.MGToken)
|
||||||
client.Debug = config.Debug
|
client.Debug = config.Debug
|
||||||
for _, bot := range bots {
|
for _, bot := range bots {
|
||||||
|
channelIDs = append(channelIDs, bot.Channel)
|
||||||
if bot.ChannelSettingsHash == hashSettings {
|
if bot.ChannelSettingsHash == hashSettings {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -437,13 +442,51 @@ func updateBots(conn *Connection, hashSettings string) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
deactivateChannels(client, channelIDs)
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
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) {
|
func telegramWebhookHandler(c *gin.Context) {
|
||||||
b := c.MustGet("bot").(Bot)
|
b := c.MustGet("bot").(Bot)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user