Skip to content

Commit

Permalink
EditClubActivityAsync return ClubActivity
Browse files Browse the repository at this point in the history
  • Loading branch information
BigBang1112 committed Jun 24, 2024
1 parent 41c27a2 commit c909666
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
9 changes: 8 additions & 1 deletion Src/ManiaAPI.NadeoAPI/NadeoAPI.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ public interface INadeoAPI : IDisposable
/// <exception cref="NadeoAPIResponseException"></exception>
Task<HttpResponseMessage> SendAsync(HttpMethod method, string? endpoint, HttpContent? content = null, CancellationToken cancellationToken = default);
Task<T> GetJsonAsync<T>(string? endpoint, JsonTypeInfo<T> jsonTypeInfo, CancellationToken cancellationToken = default);
Task<T> PostJsonAsync<T>(string? endpoint, JsonContent content, JsonTypeInfo<T> jsonTypeInfo, CancellationToken cancellationToken = default);
}

public abstract class NadeoAPI : INadeoAPI
Expand Down Expand Up @@ -94,7 +95,7 @@ public virtual async Task AuthorizeAsync(string login, string password, Authoriz
}

var payload = new AuthorizationBody(Audience);
var content = new StringContent(JsonSerializer.Serialize(payload, NadeoAPIJsonContext.Default.AuthorizationBody), Encoding.UTF8, "application/json");
var content = JsonContent.Create(payload, NadeoAPIJsonContext.Default.AuthorizationBody);

var authRequest = method switch
{
Expand Down Expand Up @@ -237,6 +238,12 @@ public async Task<T> GetJsonAsync<T>(string? endpoint, JsonTypeInfo<T> jsonTypeI
return await response.Content.ReadFromJsonAsync(jsonTypeInfo, cancellationToken) ?? throw new Exception("This shouldn't be null.");
}

public async Task<T> PostJsonAsync<T>(string? endpoint, JsonContent content, JsonTypeInfo<T> jsonTypeInfo, CancellationToken cancellationToken = default)
{
using var response = await SendAsync(HttpMethod.Post, endpoint, content, cancellationToken: cancellationToken);
return await response.Content.ReadFromJsonAsync(jsonTypeInfo, cancellationToken) ?? throw new Exception("This shouldn't be null.");
}

#if DEBUG
protected async Task<string> GetAsync(string? endpoint, CancellationToken cancellationToken)
{
Expand Down
7 changes: 4 additions & 3 deletions Src/ManiaAPI.NadeoAPI/NadeoLiveServices.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public interface INadeoLiveServices : INadeoAPI
Task<ClubCollection> GetClubsAsync(int length, int offset = 0, string? name = null, CancellationToken cancellationToken = default);
Task<ClubPlayerInfo> GetClubPlayerInfoAsync(CancellationToken cancellationToken = default);
Task<ClubCollection> GetMyClubsAsync(int length, int offset = 0, CancellationToken cancellationToken = default);
Task EditClubActivityAsync(int clubId, int activityId, ClubActivityEdition edition, CancellationToken cancellationToken = default);
Task<ClubActivity> EditClubActivityAsync(int clubId, int activityId, ClubActivityEdition edition, CancellationToken cancellationToken = default);

/// <summary>
/// Requests the daily channel join link. It can vary based on server occupancy.
Expand Down Expand Up @@ -240,9 +240,10 @@ public virtual async Task<ClubCollection> GetMyClubsAsync(int length, int offset
NadeoAPIJsonContext.Default.ClubCollection, cancellationToken);
}

public virtual async Task EditClubActivityAsync(int clubId, int activityId, ClubActivityEdition edition, CancellationToken cancellationToken = default)
public virtual async Task<ClubActivity> EditClubActivityAsync(int clubId, int activityId, ClubActivityEdition edition, CancellationToken cancellationToken = default)
{
var jsonContent = JsonContent.Create(edition, NadeoAPIJsonContext.Default.ClubActivityEdition);
await SendAsync(HttpMethod.Post, $"token/club/{clubId}/activity/{activityId}/edit", jsonContent, cancellationToken);
return await PostJsonAsync($"token/club/{clubId}/activity/{activityId}/edit",
jsonContent, NadeoAPIJsonContext.Default.ClubActivity, cancellationToken);
}
}

0 comments on commit c909666

Please sign in to comment.