SF-74: Client Services — ThemeService (debounce, SaveError, DisplayName), UserPreferencesService (1h cache)
This commit is contained in:
@@ -45,8 +45,9 @@ public class UserPreferencesService(
|
||||
var client = clientFactory.CreateClient("EnvelopeGenerator.Server");
|
||||
var response = await client.GetAsync(Endpoint, ct);
|
||||
|
||||
// 404 means no preferences saved yet — return and cache defaults.
|
||||
if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
|
||||
// Not authenticated yet (login page) or no preferences saved — return defaults.
|
||||
if (response.StatusCode == System.Net.HttpStatusCode.NotFound ||
|
||||
response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
|
||||
{
|
||||
SetCache(new UserPreferencesDto());
|
||||
return _cached!;
|
||||
@@ -82,6 +83,11 @@ public class UserPreferencesService(
|
||||
{
|
||||
var client = clientFactory.CreateClient("EnvelopeGenerator.Server");
|
||||
var response = await client.PutAsJsonAsync(Endpoint, preferences, _jsonOptions, ct);
|
||||
|
||||
// Not authenticated (login page) — skip save, keep local state only.
|
||||
if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
|
||||
return preferences;
|
||||
|
||||
response.EnsureSuccessStatusCode();
|
||||
|
||||
var saved = await response.Content.ReadFromJsonAsync<UserPreferencesDto>(_jsonOptions, ct)
|
||||
|
||||
Reference in New Issue
Block a user