From 86f273d12d64a4d6985bb089dd885339c6f870de Mon Sep 17 00:00:00 2001 From: Fishandchips321 Date: Sun, 22 Feb 2026 22:22:38 +0000 Subject: [PATCH] Fixes --- backend/src/Services/ClientService.cs | 2 +- backend/src/Services/IClientService.cs | 2 +- backend/src/Services/LibraryService.cs | 2 +- backend/src/Services/ServerService.cs | 24 ++++++++++++++- .../Components/ServerSearch/ServerSearch.tsx | 29 ++++++++++++------- frontend/src/Lib/Servers.ts | 3 ++ frontend/src/Pages/Search/Search.tsx | 3 ++ 7 files changed, 50 insertions(+), 15 deletions(-) diff --git a/backend/src/Services/ClientService.cs b/backend/src/Services/ClientService.cs index f4c6a46..47e7407 100644 --- a/backend/src/Services/ClientService.cs +++ b/backend/src/Services/ClientService.cs @@ -15,7 +15,7 @@ public class ClientService : IClientService _logger = logger; } - public async Task GetJellyfinClients() + public async Task GetClients() { if (!_clients.Any()) { diff --git a/backend/src/Services/IClientService.cs b/backend/src/Services/IClientService.cs index 4b32bdf..4603415 100644 --- a/backend/src/Services/IClientService.cs +++ b/backend/src/Services/IClientService.cs @@ -4,7 +4,7 @@ namespace JellyGlass.Services; public interface IClientService { - public Task GetJellyfinClients(); + public Task GetClients(); // public JellyfinApiClient GetClientForServer(string url); public Task GetClientForServerId(string serverId); } \ No newline at end of file diff --git a/backend/src/Services/LibraryService.cs b/backend/src/Services/LibraryService.cs index 2a0c28d..9d5e96a 100644 --- a/backend/src/Services/LibraryService.cs +++ b/backend/src/Services/LibraryService.cs @@ -14,7 +14,7 @@ public class LibraryService : ILibraryService public async Task GetLibraries() { - var clients = await _clientService.GetJellyfinClients(); + var clients = await _clientService.GetClients(); var libraries = new Dictionary(); diff --git a/backend/src/Services/ServerService.cs b/backend/src/Services/ServerService.cs index fd88c5b..20b8581 100644 --- a/backend/src/Services/ServerService.cs +++ b/backend/src/Services/ServerService.cs @@ -8,13 +8,35 @@ namespace JellyGlass.Services; public class ServerService : IServerService { private readonly IServerRepository _repository; + private readonly IClientService _service; - public ServerService(IServerRepository repository) + public ServerService(IServerRepository repository, IClientService service) { _repository = repository; + _service = service; } public async Task GetServers() + { + var clients = await _service.GetClients(); + var servers = await _repository.GetServers(); + var dtos = new List(); + + foreach (var client in clients) + { + var dto = new ServerDTO(); + var server = servers.First(s => s.Url == client.InstanceUrl); + dto.Id = client.ID; + dto.Url = client.InstanceUrl; + dto.Owner = server.Owner; + + dtos.Add(dto); + } + + return dtos.ToArray(); + } + + public async Task GetServers2() { var servers = await _repository.GetServers(); diff --git a/frontend/src/Components/ServerSearch/ServerSearch.tsx b/frontend/src/Components/ServerSearch/ServerSearch.tsx index e5c7951..2dd7b67 100644 --- a/frontend/src/Components/ServerSearch/ServerSearch.tsx +++ b/frontend/src/Components/ServerSearch/ServerSearch.tsx @@ -10,7 +10,7 @@ interface ServerSearchProps { } const ServerSearch = ({ searchTerm, server }: ServerSearchProps) => { - const [searchResults, setSearchResults] = useState>([]); + const [searchResults, setSearchResults] = useState>(); useEffect(() => { search(searchTerm, server.id).then(results => { @@ -28,16 +28,23 @@ const ServerSearch = ({ searchTerm, server }: ServerSearchProps) => { - {searchResults.length > 0 ? - searchResults.map(result => { - return ( - - - - - - ) - }) + {searchResults ? + searchResults.length > 0 ? + searchResults.map(result => { + return ( + + + + + + ) + }) + : + + +

No results found

+ + : } diff --git a/frontend/src/Lib/Servers.ts b/frontend/src/Lib/Servers.ts index b0f5676..0dba16c 100644 --- a/frontend/src/Lib/Servers.ts +++ b/frontend/src/Lib/Servers.ts @@ -10,7 +10,10 @@ export interface Server { } export const getServerList = async (): Promise> => { + console.log("fetching server list"); const response = await axios.get>(`${apiUrl}/servers`); + console.log(response); + return response.data; } \ No newline at end of file diff --git a/frontend/src/Pages/Search/Search.tsx b/frontend/src/Pages/Search/Search.tsx index ffb5a3a..8c7ad13 100644 --- a/frontend/src/Pages/Search/Search.tsx +++ b/frontend/src/Pages/Search/Search.tsx @@ -19,6 +19,9 @@ const Search = () => { } getServerList().then(servers => { + if (servers.length === 0) { + alert("No servers found"); + } setServers(servers); }).catch(e => { alert(e);