diff --git a/Iceshrimp.Frontend/Core/ControllerModels/InstanceControllerModel.cs b/Iceshrimp.Frontend/Core/ControllerModels/InstanceControllerModel.cs new file mode 100644 index 00000000..14af5f35 --- /dev/null +++ b/Iceshrimp.Frontend/Core/ControllerModels/InstanceControllerModel.cs @@ -0,0 +1,10 @@ +using Iceshrimp.Frontend.Core.Services; +using Iceshrimp.Shared.Schemas.Web; + +namespace Iceshrimp.Frontend.Core.ControllerModels; + +internal class InstanceControllerModel(ApiClient api) +{ + public Task GetInstance() => + api.CallAsync(HttpMethod.Get, "/instance"); +} \ No newline at end of file diff --git a/Iceshrimp.Frontend/Core/Services/ApiService.cs b/Iceshrimp.Frontend/Core/Services/ApiService.cs index c357e92c..3eb09464 100644 --- a/Iceshrimp.Frontend/Core/Services/ApiService.cs +++ b/Iceshrimp.Frontend/Core/Services/ApiService.cs @@ -8,6 +8,7 @@ internal class ApiService(ApiClient client) public readonly AuthControllerModel Auth = new(client); public readonly DriveControllerModel Drive = new(client); public readonly EmojiControllerModel Emoji = new(client); + public readonly InstanceControllerModel Instance = new(client); public readonly NoteControllerModel Notes = new(client); public readonly NotificationControllerModel Notifications = new(client); public readonly SearchControllerModel Search = new(client); diff --git a/Iceshrimp.Frontend/Core/Services/MetadataService.cs b/Iceshrimp.Frontend/Core/Services/MetadataService.cs new file mode 100644 index 00000000..eda42edc --- /dev/null +++ b/Iceshrimp.Frontend/Core/Services/MetadataService.cs @@ -0,0 +1,16 @@ +using Iceshrimp.Shared.Schemas.Web; +using Microsoft.AspNetCore.Components; + +namespace Iceshrimp.Frontend.Core.Services; + +internal class MetadataService +{ + [Inject] private ApiService Api { get; set; } + public Lazy> Instance { get; set; } + + public MetadataService(ApiService api) + { + Api = api; + Instance = new Lazy>(() => Api.Instance.GetInstance()); + } +} \ No newline at end of file diff --git a/Iceshrimp.Frontend/Startup.cs b/Iceshrimp.Frontend/Startup.cs index 24a2df73..c1ddc05e 100644 --- a/Iceshrimp.Frontend/Startup.cs +++ b/Iceshrimp.Frontend/Startup.cs @@ -25,6 +25,7 @@ builder.Services.AddScoped builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); +builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton();