From e68b8f7e7c871a405b8d139c0afaf39f73b7ecbe Mon Sep 17 00:00:00 2001 From: 01zulfi <85733202+01zulfi@users.noreply.github.com> Date: Wed, 20 Aug 2025 11:20:50 +0500 Subject: [PATCH] sync: add RequestFetchV2 hub method (#43) --- Notesnook.API/Hubs/SyncV2Hub.cs | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/Notesnook.API/Hubs/SyncV2Hub.cs b/Notesnook.API/Hubs/SyncV2Hub.cs index 30b1f19..234f48e 100644 --- a/Notesnook.API/Hubs/SyncV2Hub.cs +++ b/Notesnook.API/Hubs/SyncV2Hub.cs @@ -186,6 +186,16 @@ namespace Notesnook.API.Hubs } public async Task RequestFetch(string deviceId) + { + return await HandleRequestFetch(deviceId, false); + } + + public async Task RequestFetchV2(string deviceId) + { + return await HandleRequestFetch(deviceId, true); + } + + private async Task HandleRequestFetch(string deviceId, bool includeMonographs) { var userId = Context.User.FindFirstValue("sub"); if (string.IsNullOrEmpty(userId)) throw new HubException("Please login to sync."); @@ -251,14 +261,17 @@ namespace Notesnook.API.Hubs } } - // var unsyncedMonographs = ids.Where((id) => id.EndsWith(":monograph")).ToHashSet(); - // var unsyncedMonographIds = unsyncedMonographs.Select((id) => id.Split(":")[0]).ToArray(); - // var userMonographs = isResetSync - // ? await Repositories.Monographs.FindAsync(m => m.UserId == userId) - // : await Repositories.Monographs.FindAsync(m => m.UserId == userId && unsyncedMonographIds.Contains(m.ItemId)); + if (includeMonographs) + { + var unsyncedMonographs = ids.Where((id) => id.EndsWith(":monograph")).ToHashSet(); + var unsyncedMonographIds = unsyncedMonographs.Select((id) => id.Split(":")[0]).ToArray(); + var userMonographs = isResetSync + ? await Repositories.Monographs.FindAsync(m => m.UserId == userId) + : await Repositories.Monographs.FindAsync(m => m.UserId == userId && unsyncedMonographIds.Contains(m.ItemId)); - // if (userMonographs.Any() && !await Clients.Caller.SendMonographs(userMonographs).WaitAsync(TimeSpan.FromMinutes(10))) - // throw new HubException("Client rejected monographs."); + if (userMonographs.Any() && !await Clients.Caller.SendMonographs(userMonographs).WaitAsync(TimeSpan.FromMinutes(10))) + throw new HubException("Client rejected monographs."); + } deviceService.Reset();