mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-14 03:52:26 +08:00
fix(ollama): 写入设置时缺省 debounce 补 1
兼容旧客户端省略 debounce_minutes 的 PUT 请求。
This commit is contained in:
@@ -196,6 +196,10 @@ func (s *SettingService) SetOllamaCloudUsageSettings(ctx context.Context, settin
|
|||||||
if settings == nil {
|
if settings == nil {
|
||||||
return infraerrors.BadRequest("INVALID_OLLAMA_CLOUD_USAGE_SETTINGS", "settings cannot be nil")
|
return infraerrors.BadRequest("INVALID_OLLAMA_CLOUD_USAGE_SETTINGS", "settings cannot be nil")
|
||||||
}
|
}
|
||||||
|
if settings.DebounceMinutes == 0 {
|
||||||
|
// Legacy clients that omit debounce_minutes keep the fail-safe default.
|
||||||
|
settings.DebounceMinutes = ollamaCloudUsageDefaultDebounceMinutes
|
||||||
|
}
|
||||||
if settings.IntervalMinutes < ollamaCloudUsageMinIntervalMinutes || settings.IntervalMinutes > ollamaCloudUsageMaxIntervalMinutes {
|
if settings.IntervalMinutes < ollamaCloudUsageMinIntervalMinutes || settings.IntervalMinutes > ollamaCloudUsageMaxIntervalMinutes {
|
||||||
return infraerrors.BadRequest(
|
return infraerrors.BadRequest(
|
||||||
"INVALID_OLLAMA_CLOUD_USAGE_INTERVAL",
|
"INVALID_OLLAMA_CLOUD_USAGE_INTERVAL",
|
||||||
|
|||||||
@@ -317,10 +317,14 @@ func TestOllamaCloudUsageSettingsDefaultOffAndValidation(t *testing.T) {
|
|||||||
|
|
||||||
err = settingsService.SetOllamaCloudUsageSettings(context.Background(), &OllamaCloudUsageSettings{Enabled: true, IntervalMinutes: 14, DebounceMinutes: 1})
|
err = settingsService.SetOllamaCloudUsageSettings(context.Background(), &OllamaCloudUsageSettings{Enabled: true, IntervalMinutes: 14, DebounceMinutes: 1})
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
err = settingsService.SetOllamaCloudUsageSettings(context.Background(), &OllamaCloudUsageSettings{Enabled: true, IntervalMinutes: 90, DebounceMinutes: 0})
|
|
||||||
require.Error(t, err)
|
|
||||||
err = settingsService.SetOllamaCloudUsageSettings(context.Background(), &OllamaCloudUsageSettings{Enabled: true, IntervalMinutes: 90, DebounceMinutes: 61})
|
err = settingsService.SetOllamaCloudUsageSettings(context.Background(), &OllamaCloudUsageSettings{Enabled: true, IntervalMinutes: 90, DebounceMinutes: 61})
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
|
// DebounceMinutes=0 (legacy omit) defaults to 1 on write.
|
||||||
|
err = settingsService.SetOllamaCloudUsageSettings(context.Background(), &OllamaCloudUsageSettings{Enabled: true, IntervalMinutes: 90, DebounceMinutes: 0})
|
||||||
|
require.NoError(t, err)
|
||||||
|
settings, err = settingsService.GetOllamaCloudUsageSettings(context.Background())
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, 1, settings.DebounceMinutes)
|
||||||
err = settingsService.SetOllamaCloudUsageSettings(context.Background(), &OllamaCloudUsageSettings{Enabled: true, IntervalMinutes: 90, DebounceMinutes: 2})
|
err = settingsService.SetOllamaCloudUsageSettings(context.Background(), &OllamaCloudUsageSettings{Enabled: true, IntervalMinutes: 90, DebounceMinutes: 2})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
settings, err = settingsService.GetOllamaCloudUsageSettings(context.Background())
|
settings, err = settingsService.GetOllamaCloudUsageSettings(context.Background())
|
||||||
|
|||||||
Reference in New Issue
Block a user