mirror of https://github.com/ErsatzTV/ErsatzTV.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
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<Either<BaseError, string>> GetLatestReleaseNotes() |
|
{ |
|
try |
|
{ |
|
IGitHubApi service = RestService.For<IGitHubApi>("https://api.github.com"); |
|
return await service.GetReleases().Map(releases => releases.Head().Body); |
|
} |
|
catch (Exception ex) |
|
{ |
|
return BaseError.New(ex.ToString()); |
|
} |
|
} |
|
|
|
public async Task<Either<BaseError, string>> GetReleaseNotes(string tag) |
|
{ |
|
try |
|
{ |
|
IGitHubApi service = RestService.For<IGitHubApi>("https://api.github.com"); |
|
return await service.GetTag(tag).Map(t => t.Body); |
|
} |
|
catch (Exception ex) |
|
{ |
|
return BaseError.New(ex.ToString()); |
|
} |
|
} |
|
} |
|
}
|
|
|