fix: ai key config error

This commit is contained in:
Liujian
2025-01-07 01:42:36 +08:00
parent ff99f55b0a
commit 7fcfbb2a54
5 changed files with 52 additions and 40 deletions
+14 -6
View File
@@ -152,7 +152,7 @@ func (i *imlKeyModule) Edit(ctx context.Context, providerId string, id string, i
if err != nil {
return fmt.Errorf("config check failed: %w", err)
}
cfg, err := p.GenConfig(info.Config, *input.Config)
cfg, err := p.GenConfig(*input.Config, info.Config)
if err != nil {
return fmt.Errorf("config gen failed: %w", err)
}
@@ -184,16 +184,25 @@ func (i *imlKeyModule) Edit(ctx context.Context, providerId string, id string, i
// 停用、超额需要启用,所以维持原状态
status = orgStatus.Int()
}
if status == ai_key_dto.KeyNormal.Int() {
// TODO: 发布Key到网关
}
return i.aiKeyService.Save(ctx, id, &ai_key.Edit{
err = i.aiKeyService.Save(ctx, id, &ai_key.Edit{
Name: input.Name,
Config: input.Config,
ExpireTime: input.ExpireTime,
Status: &status,
})
if err != nil {
return err
}
if status == ai_key_dto.KeyNormal.Int() {
info, err = i.aiKeyService.Get(ctx, id)
if err != nil {
return err
}
releases := []*gateway.DynamicRelease{newKey(info)}
return i.syncGateway(ctx, cluster.DefaultClusterID, releases, true)
}
return nil
})
}
@@ -365,7 +374,6 @@ func (i *imlKeyModule) UpdateKeyStatus(ctx context.Context, providerId string, i
}
return i.transaction.Transaction(ctx, func(ctx context.Context) error {
if !enable {
// TODO:下线Key
status := ai_key_dto.KeyDisable.Int()
err = i.aiKeyService.Save(ctx, id, &ai_key.Edit{
Status: &status,
-13
View File
@@ -176,19 +176,6 @@ func (i *imlCatalogueModule) Subscribe(ctx context.Context, subscribeInfo *catal
// 修改订阅表状态
subscribers, err := i.subscribeService.ListByApplication(ctx, subscribeInfo.Service, appId)
if err != nil {
//if !errors.Is(err, gorm.ErrRecordNotFound) {
// return err
//}
//err = i.subscribeService.Create(ctx, &subscribe.CreateSubscribe{
// Uuid: uuid.New().String(),
// Service: subscribeInfo.Service,
// Application: appId,
// ApplyStatus: status,
// From: subscribe.FromSubscribe,
//})
//if err != nil {
// return err
//}
return err
} else {
subscriberMap := utils.SliceToMap(subscribers, func(t *subscribe.Subscribe) string {
+32 -19
View File
@@ -218,33 +218,46 @@ func (i *imlSubscribeModule) AddSubscriber(ctx context.Context, serviceId string
if err != nil {
return err
}
_, err = i.subscribeService.GetByServiceAndApplication(ctx, serviceId, input.Application)
if err == nil {
// 订阅方已存在
return fmt.Errorf("subscriber is already exists")
clusters, err := i.clusterService.List(ctx)
if err != nil {
return err
}
sub := &gateway.SubscribeRelease{
Service: serviceId,
Application: input.Application,
Expired: "0",
}
clusters, err := i.clusterService.List(ctx)
if err != nil {
return err
}
return i.transaction.Transaction(ctx, func(ctx context.Context) error {
err = i.subscribeService.Create(ctx, &subscribe.CreateSubscribe{
Uuid: uuid.New().String(),
Service: serviceId,
Application: input.Application,
ApplyStatus: subscribe.ApplyStatusSubscribe,
From: subscribe.FromUser,
})
if err != nil {
return err
info, err := i.subscribeService.GetByServiceAndApplication(ctx, serviceId, input.Application)
if err == nil {
// 订阅方已存在
if info.ApplyStatus != subscribe.ApplyStatusSubscribe {
// 更新订阅方状态
status := subscribe.ApplyStatusSubscribe
from := subscribe.FromUser
err = i.subscribeService.Save(ctx, info.Id, &subscribe.UpdateSubscribe{
ApplyStatus: &status,
From: &from,
})
if err != nil {
return err
}
} else {
return nil
}
} else {
err = i.subscribeService.Create(ctx, &subscribe.CreateSubscribe{
Uuid: uuid.New().String(),
Service: serviceId,
Application: input.Application,
ApplyStatus: subscribe.ApplyStatusSubscribe,
From: subscribe.FromUser,
})
if err != nil {
return err
}
}
for _, c := range clusters {
err = i.onlineSubscriber(ctx, c.Uuid, sub)
if err != nil {
+3
View File
@@ -200,6 +200,9 @@ func (i *imlSubscribeService) updateHandler(e *subscribe.Subscribe, t *UpdateSub
if t.ApplyStatus != nil {
e.ApplyStatus = *t.ApplyStatus
}
if t.From != nil {
e.From = *t.From
}
}
var (
+3 -2
View File
@@ -2,14 +2,14 @@ package subscribe
import (
"time"
"github.com/APIParkLab/APIPark/stores/subscribe"
)
type Subscribe struct {
Id string
Service string
// 订阅方相关
Application string
From int
@@ -28,6 +28,7 @@ type CreateSubscribe struct {
}
type UpdateSubscribe struct {
From *int
ApplyStatus *int
}