using Portfolio.Shared.Models; using Portfolio.Shared.Services; namespace Portfolio.Web.Services; internal sealed class TimelineRepository(IHttpClientFactory factory) : ITimelineRepository { public async Task> GetTimeline(TimelineEntryType type, CancellationToken ct) { var client = factory.CreateClient("api"); var result = await client.GetAsync($"api/timeline/{type}", ct); if (!result.IsSuccessStatusCode) return []; var data = await result.Content.ReadFromJsonAsync>(ct); return data ?? []; } public async Task> GetFeaturedTimeline(CancellationToken ct) { var client = factory.CreateClient("api"); var result = await client.GetAsync("api/timeline/featured", ct); if (!result.IsSuccessStatusCode) return []; var data = await result.Content.ReadFromJsonAsync>(ct); return data ?? []; } }