using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; #nullable enable namespace Crowdin.Plugin.Server_API.Services { using Helpers; using Serializable.Directories; public class DirectoriesApiService : BaseApiService { private static string BaseUri => SettingsHelper.GetUri("directories", SettingsHelper.GetProjectId()); private readonly CrowdinHttpClient _httpClient = CrowdinHttpClient.Default; public async Task> ListDirectories(int directoryId, string? filter, CancellationToken ct) { var url = BaseUri; if (directoryId > 0) { url += $"?directoryId={directoryId}"; } if (!string.IsNullOrWhiteSpace(filter)) { url += url.Contains('?') ? $"&filter={filter}" : $"?filter={filter}"; } return await _httpClient.ListAllAsync(url, limit: 500, ct); } public Task GetDirectory(int directoryId, CancellationToken ct) { return _httpClient.GetAsync($"{BaseUri}/{directoryId}", ct); } public Task AddDirectory(AddRootDirectoryQueryData queryData, CancellationToken ct) { return _httpClient.PostAsync(BaseUri, queryData, ct); } } }