24 lines
989 B
C#
24 lines
989 B
C#
using Portfolio.Shared.Models;
|
|
using Portfolio.Shared.Services;
|
|
|
|
namespace Portfolio.Web.Services;
|
|
|
|
internal sealed class TechnologyRepository(IHttpClientFactory factory) : ITechnologyRepository {
|
|
public async Task<IEnumerable<Technology>> GetTechnologies(CancellationToken ct) {
|
|
var client = factory.CreateClient("api");
|
|
var response = await client.GetAsync("api/technologies", ct);
|
|
if (!response.IsSuccessStatusCode) return [];
|
|
|
|
var data = await response.Content.ReadFromJsonAsync<IEnumerable<Technology>>(ct);
|
|
return data ?? [];
|
|
}
|
|
|
|
public async Task<IEnumerable<Technology>> GetFeaturedTechnologies(CancellationToken ct) {
|
|
var client = factory.CreateClient("api");
|
|
var response = await client.GetAsync("api/technologies/featured", ct);
|
|
if (!response.IsSuccessStatusCode) return [];
|
|
|
|
var data = await response.Content.ReadFromJsonAsync<IEnumerable<Technology>>(ct);
|
|
return data ?? [];
|
|
}
|
|
} |