12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- using FNZCM.Shared.MediaModels;
- using FNZCM.Shared.MetadataModels;
- using Microsoft.AspNetCore.Components;
- using Newtonsoft.Json;
- using System.Net.Http.Json;
- namespace FNZCM.BlazorWasm.Helpers
- {
- public class ApiClient
- {
- public NavigationManager NavManager { get; set; }
- public ApiClient(NavigationManager nav) => NavManager = nav;
- public string ApiBase
- {
- get
- {
- #if DEBUG
- return $"http://fnz-server";
- #endif
- return $"{NavManager.ToAbsoluteUri("/").GetLeftPart(UriPartial.Scheme | UriPartial.Authority)}";
- }
- }
- public async Task<LoadingProgress?> GetProgress()
- {
- var url = $"{ApiBase}/metadata/progress.json";
- using var httpClient = new HttpClient();
- var response = await httpClient.GetAsync(url);
- var obj = await response.Content.ReadFromJsonAsync<LoadingProgress>();
- return obj;
- }
- public async Task<Dictionary<string, Library>> GetLibraries()
- {
- var url = $"{ApiBase}/metadata/file-set.json";
- using var httpClient = new HttpClient();
- var response = await httpClient.GetAsync(url);
- var json = await response.Content.ReadAsStringAsync();
- var obj = JsonConvert.DeserializeObject<Dictionary<string, Library>>(json);
- return obj;
- }
- public async Task<Dictionary<string, MediaTag>> GetMediaTags()
- {
- var url = $"{ApiBase}/metadata/tag-dict.json";
- using var httpClient = new HttpClient();
- var response = await httpClient.GetAsync(url);
- var json = await response.Content.ReadAsStringAsync();
- var obj = JsonConvert.DeserializeObject<Dictionary<string, MediaTag>>(json);
- return obj;
- }
- }
- }
|