This commit is contained in:
Fishandchips321 2026-02-22 22:22:38 +00:00
parent 2a572e8bc4
commit 86f273d12d
7 changed files with 50 additions and 15 deletions

View file

@ -15,7 +15,7 @@ public class ClientService : IClientService
_logger = logger; _logger = logger;
} }
public async Task<JellyfinApiClient[]> GetJellyfinClients() public async Task<JellyfinApiClient[]> GetClients()
{ {
if (!_clients.Any()) if (!_clients.Any())
{ {

View file

@ -4,7 +4,7 @@ namespace JellyGlass.Services;
public interface IClientService public interface IClientService
{ {
public Task<JellyfinApiClient[]> GetJellyfinClients(); public Task<JellyfinApiClient[]> GetClients();
// public JellyfinApiClient GetClientForServer(string url); // public JellyfinApiClient GetClientForServer(string url);
public Task<JellyfinApiClient> GetClientForServerId(string serverId); public Task<JellyfinApiClient> GetClientForServerId(string serverId);
} }

View file

@ -14,7 +14,7 @@ public class LibraryService : ILibraryService
public async Task<Library[]> GetLibraries() public async Task<Library[]> GetLibraries()
{ {
var clients = await _clientService.GetJellyfinClients(); var clients = await _clientService.GetClients();
var libraries = new Dictionary<string, Library>(); var libraries = new Dictionary<string, Library>();

View file

@ -8,13 +8,35 @@ namespace JellyGlass.Services;
public class ServerService : IServerService public class ServerService : IServerService
{ {
private readonly IServerRepository _repository; private readonly IServerRepository _repository;
private readonly IClientService _service;
public ServerService(IServerRepository repository) public ServerService(IServerRepository repository, IClientService service)
{ {
_repository = repository; _repository = repository;
_service = service;
} }
public async Task<ServerDTO[]> GetServers() public async Task<ServerDTO[]> GetServers()
{
var clients = await _service.GetClients();
var servers = await _repository.GetServers();
var dtos = new List<ServerDTO>();
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<ServerDTO[]> GetServers2()
{ {
var servers = await _repository.GetServers(); var servers = await _repository.GetServers();

View file

@ -10,7 +10,7 @@ interface ServerSearchProps {
} }
const ServerSearch = ({ searchTerm, server }: ServerSearchProps) => { const ServerSearch = ({ searchTerm, server }: ServerSearchProps) => {
const [searchResults, setSearchResults] = useState<Array<SearchResult>>([]); const [searchResults, setSearchResults] = useState<Array<SearchResult | undefined>>();
useEffect(() => { useEffect(() => {
search(searchTerm, server.id).then(results => { search(searchTerm, server.id).then(results => {
@ -28,16 +28,23 @@ const ServerSearch = ({ searchTerm, server }: ServerSearchProps) => {
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{searchResults.length > 0 ? {searchResults ?
searchResults.map(result => { searchResults.length > 0 ?
return ( searchResults.map(result => {
<tr> return (
<td> <tr>
<ServerSearchResult key={result.id} searchResult={result} server={server} /> <td>
</td> <ServerSearchResult key={result!.id} searchResult={result!} server={server} />
</tr> </td>
) </tr>
}) )
})
:
<tr>
<td>
<h1>No results found</h1>
</td>
</tr>
: :
<Spinner /> <Spinner />
} }

View file

@ -10,7 +10,10 @@ export interface Server {
} }
export const getServerList = async (): Promise<Array<Server>> => { export const getServerList = async (): Promise<Array<Server>> => {
console.log("fetching server list");
const response = await axios.get<Array<Server>>(`${apiUrl}/servers`); const response = await axios.get<Array<Server>>(`${apiUrl}/servers`);
console.log(response);
return response.data; return response.data;
} }

View file

@ -19,6 +19,9 @@ const Search = () => {
} }
getServerList().then(servers => { getServerList().then(servers => {
if (servers.length === 0) {
alert("No servers found");
}
setServers(servers); setServers(servers);
}).catch(e => { }).catch(e => {
alert(e); alert(e);