47 lines
2.0 KiB
C#
47 lines
2.0 KiB
C#
|
using System.Text.Json;
|
||
|
using CFCoreAPI.Endpoints.Files.Responses;
|
||
|
using Microsoft.AspNetCore.WebUtilities;
|
||
|
|
||
|
namespace CFCoreAPI.Endpoints.Files
|
||
|
{
|
||
|
public class FilesAPI : APIBase
|
||
|
{
|
||
|
public FilesAPI(HttpClient httpClient) : base(httpClient)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public async Task<ModFileResponse> GetModFileAsync(int modId, int fileId)
|
||
|
{
|
||
|
string url = "/v1/mods/{0}/files/{1}";
|
||
|
string.Format(url, modId, fileId);
|
||
|
HttpResponseMessage response = await httpClient.GetAsync(url);
|
||
|
|
||
|
ModFileResponse result;
|
||
|
using (Stream contentStream = await response.Content.ReadAsStreamAsync())
|
||
|
{
|
||
|
result = await JsonSerializer.DeserializeAsync<ModFileResponse>(contentStream);
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
public async Task<ModFilesResponse> GetModFilesAsync(int modId, string? gameVersion = null, ModLoaderType? modLoaderType = null, int? gameVersionTypeId = null, int? index = null, int? pageSize = null)
|
||
|
{
|
||
|
string url = "/v1/mods/{0}/files";
|
||
|
string.Format(url, modId);
|
||
|
if (gameVersion != null) QueryHelpers.AddQueryString(url, "gameVersion", gameVersion);
|
||
|
if (modLoaderType != null) QueryHelpers.AddQueryString(url, "modLoaderType", ((int)modLoaderType.Value).ToString());
|
||
|
if (gameVersionTypeId != null) QueryHelpers.AddQueryString(url, "gameVersionTypeId", gameVersionTypeId.ToString());
|
||
|
if (index != null) QueryHelpers.AddQueryString(url, "index", index.ToString());
|
||
|
if (pageSize != null) QueryHelpers.AddQueryString(url, "pageSize", pageSize.ToString());
|
||
|
HttpResponseMessage response = await httpClient.GetAsync(url);
|
||
|
ModFilesResponse result;
|
||
|
|
||
|
using (Stream contentStream = await response.Content.ReadAsStreamAsync())
|
||
|
{
|
||
|
result = await JsonSerializer.DeserializeAsync<ModFilesResponse>(contentStream);
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|