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 { if err != nil {
return fmt.Errorf("config check failed: %w", err) 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 { if err != nil {
return fmt.Errorf("config gen failed: %w", err) 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() 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, Name: input.Name,
Config: input.Config, Config: input.Config,
ExpireTime: input.ExpireTime, ExpireTime: input.ExpireTime,
Status: &status, 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 { return i.transaction.Transaction(ctx, func(ctx context.Context) error {
if !enable { if !enable {
// TODO:下线Key
status := ai_key_dto.KeyDisable.Int() status := ai_key_dto.KeyDisable.Int()
err = i.aiKeyService.Save(ctx, id, &ai_key.Edit{ err = i.aiKeyService.Save(ctx, id, &ai_key.Edit{
Status: &status, 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) subscribers, err := i.subscribeService.ListByApplication(ctx, subscribeInfo.Service, appId)
if err != nil { 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 return err
} else { } else {
subscriberMap := utils.SliceToMap(subscribers, func(t *subscribe.Subscribe) string { 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 { if err != nil {
return err return err
} }
_, err = i.subscribeService.GetByServiceAndApplication(ctx, serviceId, input.Application) clusters, err := i.clusterService.List(ctx)
if err == nil { if err != nil {
// 订阅方已存在 return err
return fmt.Errorf("subscriber is already exists")
} }
sub := &gateway.SubscribeRelease{ sub := &gateway.SubscribeRelease{
Service: serviceId, Service: serviceId,
Application: input.Application, Application: input.Application,
Expired: "0", Expired: "0",
} }
clusters, err := i.clusterService.List(ctx)
if err != nil {
return err
}
return i.transaction.Transaction(ctx, func(ctx context.Context) error { return i.transaction.Transaction(ctx, func(ctx context.Context) error {
err = i.subscribeService.Create(ctx, &subscribe.CreateSubscribe{ info, err := i.subscribeService.GetByServiceAndApplication(ctx, serviceId, input.Application)
Uuid: uuid.New().String(), if err == nil {
Service: serviceId, // 订阅方已存在
Application: input.Application, if info.ApplyStatus != subscribe.ApplyStatusSubscribe {
ApplyStatus: subscribe.ApplyStatusSubscribe, // 更新订阅方状态
From: subscribe.FromUser, status := subscribe.ApplyStatusSubscribe
}) from := subscribe.FromUser
if err != nil { err = i.subscribeService.Save(ctx, info.Id, &subscribe.UpdateSubscribe{
return err 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 { for _, c := range clusters {
err = i.onlineSubscriber(ctx, c.Uuid, sub) err = i.onlineSubscriber(ctx, c.Uuid, sub)
if err != nil { if err != nil {
+3
View File
@@ -200,6 +200,9 @@ func (i *imlSubscribeService) updateHandler(e *subscribe.Subscribe, t *UpdateSub
if t.ApplyStatus != nil { if t.ApplyStatus != nil {
e.ApplyStatus = *t.ApplyStatus e.ApplyStatus = *t.ApplyStatus
} }
if t.From != nil {
e.From = *t.From
}
} }
var ( var (
+3 -2
View File
@@ -2,14 +2,14 @@ package subscribe
import ( import (
"time" "time"
"github.com/APIParkLab/APIPark/stores/subscribe" "github.com/APIParkLab/APIPark/stores/subscribe"
) )
type Subscribe struct { type Subscribe struct {
Id string Id string
Service string Service string
// 订阅方相关 // 订阅方相关
Application string Application string
From int From int
@@ -28,6 +28,7 @@ type CreateSubscribe struct {
} }
type UpdateSubscribe struct { type UpdateSubscribe struct {
From *int
ApplyStatus *int ApplyStatus *int
} }