using System; using System.Threading.Tasks; using ErsatzTV.Core; using ErsatzTV.Core.Interfaces.GitHub; using LanguageExt; using Refit; namespace ErsatzTV.Infrastructure.GitHub { public class GitHubApiClient : IGitHubApiClient { public async Task> GetLatestReleaseNotes() { try { IGitHubApi service = RestService.For("https://api.github.com"); return await service.GetReleases().Map(releases => releases.Head().Body); } catch (Exception ex) { return BaseError.New(ex.ToString()); } } public async Task> GetReleaseNotes(string tag) { try { IGitHubApi service = RestService.For("https://api.github.com"); return await service.GetTag(tag).Map(t => t.Body); } catch (Exception ex) { return BaseError.New(ex.ToString()); } } } }