using MoonCore.Attributes; using MoonCore.Helpers; using MoonCore.Models; using Moonlight.Shared.Http.Requests.Admin.Sys.Theme; using Moonlight.Shared.Http.Responses.Admin; using Moonlight.Shared.Misc; namespace Moonlight.Client.Services; [Scoped] public class ThemeService { private readonly HttpApiClient ApiClient; public ThemeService(HttpApiClient apiClient) { ApiClient = apiClient; } public async Task> Get(int page, int pageSize) { return await ApiClient.GetJson>( $"api/admin/system/customisation/themes?page={page}&pageSize={pageSize}" ); } public async Task Get(int id) { return await ApiClient.GetJson( $"api/admin/system/customisation/themes/{id}" ); } public async Task Create(CreateThemeRequest request) { return await ApiClient.PostJson( "api/admin/system/customisation/themes", request ); } public async Task Update(int id, UpdateThemeRequest request) { return await ApiClient.PatchJson( $"api/admin/system/customisation/themes/{id}", request ); } public async Task Delete(int id) { await ApiClient.Delete( $"api/admin/system/customisation/themes/{id}" ); } }