diff options
author | vnugent <public@vaughnnugent.com> | 2024-04-09 17:35:13 -0400 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2024-04-09 17:35:13 -0400 |
commit | 56e0a38b2ca246e8beeaef3c6c4b9c0ce7d0f09b (patch) | |
tree | 5ba2556e42510cbbdf9c287f67041c1b1eb46206 /back-end/src/Model/UserSettingsDbStore.cs | |
parent | 0945210c0492dd8a8de99ccd8e5e66cf05e3a1c1 (diff) |
chore(app): Update deps, login spinner, curl msg, view prep
Diffstat (limited to 'back-end/src/Model/UserSettingsDbStore.cs')
-rw-r--r-- | back-end/src/Model/UserSettingsDbStore.cs | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/back-end/src/Model/UserSettingsDbStore.cs b/back-end/src/Model/UserSettingsDbStore.cs deleted file mode 100644 index d392262..0000000 --- a/back-end/src/Model/UserSettingsDbStore.cs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (C) 2024 Vaughn Nugent -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see <https://www.gnu.org/licenses/>. - -using System; -using System.Threading; -using System.Threading.Tasks; - -using Microsoft.EntityFrameworkCore; - -using VNLib.Utils; -using VNLib.Plugins.Extensions.Loading; - -namespace SimpleBookmark.Model -{ - internal sealed class UserSettingsDbStore(IAsyncLazy<DbContextOptions> dbOptions) - { - - public async Task<UserSettingsEntry?> GetSettingsForUserAsync(string userId, CancellationToken cancellation) - { - ArgumentNullException.ThrowIfNull(userId); - - //Init new db connection - await using SimpleBookmarkContext context = new(dbOptions.Value); - - UserSettingsEntry? settings = await context.SbSettings.FirstOrDefaultAsync(p => p.UserId == userId, cancellation); - - //Close db and commit transaction - await context.SaveAndCloseAsync(true, cancellation); - - return settings; - } - - public async Task<ERRNO> SetSettingsForUser(string userId, UserSettingsEntry settings, CancellationToken cancellation) - { - ArgumentNullException.ThrowIfNull(userId); - ArgumentNullException.ThrowIfNull(settings); - - //Init new db connection - await using SimpleBookmarkContext context = new(dbOptions.Value); - - //Search for existing settings entry - UserSettingsEntry? existing = await context.SbSettings.FirstOrDefaultAsync(p => p.UserId == userId, cancellation); - - if (existing is null) - { - //Add a new entry - settings.UserId = userId; - settings.LastModified = DateTime.UtcNow; - context.Add(settings); - } - else - { - //Update existing entry - existing.SettingsData = settings.SettingsData; - existing.LastModified = DateTime.UtcNow; - context.Update(existing); - } - - //Close db and commit transaction - return await context.SaveAndCloseAsync(true, cancellation); - } - } -} |