in api/internal/handler/proto/proto.go [231:260]
func (h *Handler) checkProtoUsed(ctx context.Context, storeInterface store.Interface, key string) error {
ret, err := storeInterface.List(ctx, store.ListInput{
Predicate: func(obj interface{}) bool {
record := obj.(entity.GetPlugins)
for _, plugin := range plugins {
if _, ok := record.GetPlugins()[plugin]; ok {
configs := record.GetPlugins()[plugin].(map[string]interface{})
protoId := utils.InterfaceToString(configs["proto_id"])
if protoId == key {
return true
}
}
}
return false
},
Format: func(obj interface{}) interface{} {
return obj.(entity.GetPlugins)
},
PageSize: 0,
PageNumber: 0,
})
if err != nil {
return err
}
if ret.TotalSize > 0 {
return fmt.Errorf("proto used check invalid: %s: %s is using this proto", storeInterface.Type(), ret.Rows[0].(entity.GetBaseInfo).GetBaseInfo().ID)
}
return nil
}