[frontend] Add Instance Metadata service

This commit is contained in:
pancakes 2024-11-21 18:40:59 +10:00 committed by Laura Hausmann
parent 09b39a64ea
commit 11575e4daf
No known key found for this signature in database
GPG key ID: D044E84C5BE01605
4 changed files with 28 additions and 0 deletions

View file

@ -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<InstanceResponse> GetInstance() =>
api.CallAsync<InstanceResponse>(HttpMethod.Get, "/instance");
}

View file

@ -8,6 +8,7 @@ internal class ApiService(ApiClient client)
public readonly AuthControllerModel Auth = new(client); public readonly AuthControllerModel Auth = new(client);
public readonly DriveControllerModel Drive = new(client); public readonly DriveControllerModel Drive = new(client);
public readonly EmojiControllerModel Emoji = new(client); public readonly EmojiControllerModel Emoji = new(client);
public readonly InstanceControllerModel Instance = new(client);
public readonly NoteControllerModel Notes = new(client); public readonly NoteControllerModel Notes = new(client);
public readonly NotificationControllerModel Notifications = new(client); public readonly NotificationControllerModel Notifications = new(client);
public readonly SearchControllerModel Search = new(client); public readonly SearchControllerModel Search = new(client);

View file

@ -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<Task<InstanceResponse>> Instance { get; set; }
public MetadataService(ApiService api)
{
Api = api;
Instance = new Lazy<Task<InstanceResponse>>(() => Api.Instance.GetInstance());
}
}

View file

@ -25,6 +25,7 @@ builder.Services.AddScoped<AuthenticationStateProvider, CustomAuthStateProvider>
builder.Services.AddSingleton<ComposeService>(); builder.Services.AddSingleton<ComposeService>();
builder.Services.AddSingleton<StateService>(); builder.Services.AddSingleton<StateService>();
builder.Services.AddSingleton<EmojiService>(); builder.Services.AddSingleton<EmojiService>();
builder.Services.AddSingleton<MetadataService>();
builder.Services.AddSingleton<VersionService>(); builder.Services.AddSingleton<VersionService>();
builder.Services.AddSingleton<MessageService>(); builder.Services.AddSingleton<MessageService>();
builder.Services.AddSingleton<GlobalComponentSvc>(); builder.Services.AddSingleton<GlobalComponentSvc>();