using System.Threading; using System.Threading.Tasks; namespace Crowdin.Plugin.Server_API.Services { using Helpers; using Serializable.Build; using Serializable.Translations; public class TranslationsApiService : BaseApiService { private static string BaseUri => SettingsHelper.GetUri("translations", SettingsHelper.GetProjectId()); private readonly CrowdinHttpClient _httpClient = CrowdinHttpClient.Default; public Task GetBuildStatus(int buildId, CancellationToken ct) { return _httpClient.GetAsync($"{BaseUri}/builds/{buildId}", ct); } public Task BuildDirectoryTranslation(int directoryId, CancellationToken ct) { return _httpClient.PostAsync($"{BaseUri}/builds/directories/{directoryId}", new { }, ct); } public Task GetBuildDownloadUrl(int buildId, CancellationToken ct) { return _httpClient.GetAsync($"{BaseUri}/builds/{buildId}/download", ct); } public Task DeleteBuild(int buildId, CancellationToken ct) { return _httpClient.DeleteAsync($"{BaseUri}/builds/{buildId}", ct); } public async Task UploadTranslation(UpdateTranslationQueryData queryData, string languageId, CancellationToken ct) { await _httpClient.PostAsync($"{BaseUri}/{languageId}", queryData, ct); } public Task BuildFileTranslation(int fileId, BuildTranslationQueryData queryData, CancellationToken ct) { return _httpClient.PostAsync($"{BaseUri}/builds/files/{fileId}", queryData, ct); } } }