feat(channels): add Shangwutong connector

This commit is contained in:
2026-08-03 10:13:40 +08:00
parent 96f5c796a6
commit 897b4e018f
126 changed files with 20207 additions and 272 deletions
@@ -71,6 +71,21 @@ func serializeInbox(inbox *model.Inbox, db *gorm.DB, isAdmin bool) map[string]an
payload["webhook_url"] = inbox.WebhookURL
payload["inbox_identifier"] = firstConfigValue(config, "inbox_identifier", "identifier")
payload["additional_attributes"] = configValue(config, "additional_attributes")
case "Channel::Shangwutong":
payload["webhook_url"] = inbox.WebhookURL
if db != nil {
var channelConfig model.ChannelShangwutongConfig
if err := db.Where("inbox_id = ?", inbox.ID).First(&channelConfig).Error; err == nil {
payload["password_configured"] = channelConfig.Password != ""
payload["config_version"] = channelConfig.ConfigVersion
payload["desired_presence"] = channelConfig.DesiredPresence
payload["actual_presence"] = channelConfig.ActualPresence
payload["connection_status"] = channelConfig.ConnectionStatus
payload["credential_status"] = channelConfig.CredentialStatus
payload["last_heartbeat_at"] = channelConfig.LastHeartbeatAt
payload["last_error_code"] = channelConfig.LastErrorCode
}
}
case "Channel::Telegram":
payload["bot_name"] = configValue(config, "bot_name")
case "Channel::FacebookPage":
@@ -189,18 +204,19 @@ func chatwootChannelType(channelType string) string {
return channelType
}
aliases := map[string]string{
"web_widget": "Channel::WebWidget",
"facebook": "Channel::FacebookPage",
"instagram": "Channel::Instagram",
"twitter": "Channel::TwitterProfile",
"twilio_sms": "Channel::TwilioSms",
"whatsapp": "Channel::Whatsapp",
"api": "Channel::Api",
"email": "Channel::Email",
"telegram": "Channel::Telegram",
"line": "Channel::Line",
"sms": "Channel::Sms",
"tiktok": "Channel::Tiktok",
"web_widget": "Channel::WebWidget",
"facebook": "Channel::FacebookPage",
"instagram": "Channel::Instagram",
"twitter": "Channel::TwitterProfile",
"twilio_sms": "Channel::TwilioSms",
"whatsapp": "Channel::Whatsapp",
"api": "Channel::Api",
"shangwutong": "Channel::Shangwutong",
"email": "Channel::Email",
"telegram": "Channel::Telegram",
"line": "Channel::Line",
"sms": "Channel::Sms",
"tiktok": "Channel::Tiktok",
}
if mapped, ok := aliases[channelType]; ok {
return mapped