using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; using Crowdin.Plugin.Models.Settings; namespace Crowdin.Plugin.Server_API.Services { using Helpers; public class StorageApiService : BaseApiService { private static string BaseUri => SettingsHelper.GetBaseUri("storages"); private readonly CrowdinHttpClient _httpClient = CrowdinHttpClient.Default; public Task> ListStorages(CancellationToken ct) { return _httpClient.ListAllAsync(BaseUri, limit: 500, ct); } public Task DeleteStorage(long storageId, CancellationToken ct) { return _httpClient.DeleteAsync($"{BaseUri}/{storageId}", ct); } public async Task CreateStorage(string fullFileName, string filePath, CancellationToken ct) { if (!File.Exists(filePath)) { throw new FileNotFoundException($"\"{filePath}\" does not exist!", filePath); } using var fileStream = File.OpenRead(filePath); return await _httpClient.PostFileAsync(BaseUri, fileStream, fullFileName, ct); } } }