fix
This commit is contained in:
2
assets
2
assets
Submodule assets updated: 6dc3943b70...3a21802d76
@@ -70,10 +70,18 @@ func (c *settingClient) Gets(ctx context.Context, names []string) (map[string]st
|
|||||||
|
|
||||||
func (c *settingClient) Set(ctx context.Context, settings map[string]string) error {
|
func (c *settingClient) Set(ctx context.Context, settings map[string]string) error {
|
||||||
for k, v := range settings {
|
for k, v := range settings {
|
||||||
if err := c.client.Setting.Update().Where(setting.Name(k)).SetValue(v).Exec(ctx); err != nil {
|
// 尝试更新现有记录
|
||||||
return fmt.Errorf("failed to create setting %q: %w", k, err)
|
affected, err := c.client.Setting.Update().Where(setting.Name(k)).SetValue(v).Save(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to update setting %q: %w", k, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果没有记录被更新,创建新记录
|
||||||
|
if affected == 0 {
|
||||||
|
if err := c.client.Setting.Create().SetName(k).SetValue(v).Exec(ctx); err != nil {
|
||||||
|
return fmt.Errorf("failed to create setting %q: %w", k, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
Reference in New Issue
Block a user