Przeglądaj źródła

fix(channel): 修复豆包视频渠道素材凭据摘要不回显

attachChannelAssetCredentialSummaries 收集查询 ID 时只纳入了中国移动
Seedance(61) 渠道,豆包视频(54) 渠道的凭据永远不会回显,导致管理端
编辑 54 渠道时素材 API 地址显示为空。提取 isAssetCredentialSummaryChannel
统一两处类型判断,并补充 54 渠道回归测试。
master
fengsilin 5 dni temu
rodzic
commit
0ab4867130
2 zmienionych plików z 29 dodań i 6 usunięć
  1. +7
    -2
      controller/channel.go
  2. +22
    -4
      controller/channel_asset_credential_test.go

+ 7
- 2
controller/channel.go Wyświetl plik

@@ -70,10 +70,15 @@ func clearChannelInfo(channel *model.Channel) {
}
}

func isAssetCredentialSummaryChannel(channel *model.Channel) bool {
return channel != nil && (channel.Type == constant.ChannelTypeChinaMobileSeedance ||
channel.Type == constant.ChannelTypeDoubaoVideo)
}

func attachChannelAssetCredentialSummaries(channels []*model.Channel) error {
ids := make([]int, 0)
for _, channel := range channels {
if channel != nil && channel.Type == constant.ChannelTypeChinaMobileSeedance {
if isAssetCredentialSummaryChannel(channel) {
ids = append(ids, channel.Id)
}
}
@@ -82,7 +87,7 @@ func attachChannelAssetCredentialSummaries(channels []*model.Channel) error {
return err
}
for _, channel := range channels {
if channel == nil || (channel.Type != constant.ChannelTypeChinaMobileSeedance && channel.Type != constant.ChannelTypeDoubaoVideo) {
if !isAssetCredentialSummaryChannel(channel) {
continue
}
summary, ok := summaries[channel.Id]


+ 22
- 4
controller/channel_asset_credential_test.go Wyświetl plik

@@ -33,18 +33,36 @@ func setupChannelAssetCredentialControllerDB(t *testing.T) *gorm.DB {

func TestAttachChannelAssetCredentialSummariesDoesNotExposeSecrets(t *testing.T) {
db := setupChannelAssetCredentialControllerDB(t)
accessKey := "ak-" + t.Name()
secretKey := "sk-" + t.Name()
channel := &model.Channel{Id: 61, Type: constant.ChannelTypeChinaMobileSeedance, Key: "video-key", Name: "channel"}
require.NoError(t, db.Create(channel).Error)
require.NoError(t, model.UpsertChannelAssetCredential(&model.ChannelAssetCredential{
ChannelId: 61,
AccessKey: "ak-secret",
SecretKey: "sk-secret",
AccessKey: accessKey,
SecretKey: secretKey,
PoolID: "pool-61",
}))

require.NoError(t, attachChannelAssetCredentialSummaries([]*model.Channel{channel}))
assert.True(t, channel.AssetCredentialConfigured)
assert.Equal(t, "pool-61", channel.AssetCredentialPoolID)
assert.NotContains(t, channel.Key, "ak-secret")
assert.NotContains(t, channel.Key, "sk-secret")
assert.NotContains(t, channel.Key, accessKey)
assert.NotContains(t, channel.Key, secretKey)
}

func TestAttachChannelAssetCredentialSummariesIncludesDoubaoVideo(t *testing.T) {
db := setupChannelAssetCredentialControllerDB(t)
channel := &model.Channel{Id: 54, Type: constant.ChannelTypeDoubaoVideo, Key: "video-key", Name: "doubao"}
require.NoError(t, db.Create(channel).Error)
require.NoError(t, model.UpsertChannelAssetCredential(&model.ChannelAssetCredential{
ChannelId: 54,
AccessKey: "ak-" + t.Name(),
SecretKey: "sk-" + t.Name(),
BaseURL: "http://example.com/openApi/portrait",
}))

require.NoError(t, attachChannelAssetCredentialSummaries([]*model.Channel{channel}))
assert.True(t, channel.AssetCredentialConfigured)
assert.Equal(t, "http://example.com/openApi/portrait", channel.AssetCredentialBaseURL)
}

Ładowanie…
Anuluj
Zapisz