Skip to content
This repository has been archived by the owner on Nov 24, 2020. It is now read-only.

Commit

Permalink
GH-87: Request handling improvements
Browse files Browse the repository at this point in the history
- Fix type in name of AuthorizationRefreshRequest
- Add handler for authentication requests
- Add handler for response errors
- Add helper for reading response content streams
  • Loading branch information
henrikfroehling committed Apr 29, 2018
1 parent 61be241 commit 0a749cd
Show file tree
Hide file tree
Showing 8 changed files with 1,049 additions and 271 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
using Objects.Authentication;

internal sealed class ÁuthorizationRefreshRequest : AAuthorizationRequest<ITraktAuthorization, AuthorizationRefreshRequestBody>
internal sealed class AuthorizationRefreshRequest : AAuthorizationRequest<ITraktAuthorization, AuthorizationRefreshRequestBody>
{
public override string UriTemplate => "oauth/token";
}
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
namespace TraktApiSharp.Requests.Handler
{
using Authentication;
using Objects.Authentication;
using Responses;
using System.Threading;
using System.Threading.Tasks;
using Utils;

internal interface IAuthenticationRequestHandler
{
string CreateAuthorizationUrl(string clientId, string redirectUri, string state);

string CreateAuthorizationUrlWithDefaultState(string clientId, string redirectUri);

Task<Pair<bool, TraktResponse<ITraktAuthorization>>> CheckIfAuthorizationIsExpiredOrWasRevokedAsync(bool autoRefresh = false, CancellationToken cancellationToken = default);

Task<Pair<bool, TraktResponse<ITraktAuthorization>>> CheckIfAuthorizationIsExpiredOrWasRevokedAsync(ITraktAuthorization authorization, bool autoRefresh = false, CancellationToken cancellationToken = default);

Task<bool> CheckIfAccessTokenWasRevokedOrIsNotValidAsync(string accessToken, CancellationToken cancellationToken = default);

Task<TraktResponse<ITraktDevice>> GetDeviceAsync(DeviceRequest request, CancellationToken cancellationToken = default);

Task<TraktResponse<ITraktAuthorization>> GetAuthorizationAsync(AuthorizationRequest request, CancellationToken cancellationToken = default);

Task<TraktResponse<ITraktAuthorization>> PollForAuthorizationAsync(AuthorizationPollRequest request, CancellationToken cancellationToken = default);

Task<TraktResponse<ITraktAuthorization>> RefreshAuthorizationAsync(AuthorizationRefreshRequest request, CancellationToken cancellationToken = default);

Task<TraktNoContentResponse> RevokeAuthorizationAsync(AuthorizationRevokeRequest request, string clientId, CancellationToken cancellationToken = default);
}
}
277 changes: 8 additions & 269 deletions Source/Lib/TraktApiSharp/Requests/Handler/RequestHandler.cs

Large diffs are not rendered by default.

538 changes: 538 additions & 0 deletions Source/Lib/TraktApiSharp/Requests/Handler/ResponseErrorHandler.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
namespace TraktApiSharp.Requests.Handler
{
using Base;
using System.Net;

internal sealed class ResponseErrorParameters
{
public string Url { get; set; }

public string RequestBody { get; set; }

public string ResponseBody { get; set; }

public string ServerReasonPhrase { get; set; }

public HttpStatusCode StatusCode { get; set; }

public RequestObjectType RequestObjectType { get; set; }

public string ObjectId { get; set; }

public uint SeasonNumber { get; set; }

public uint EpisodeNumber { get; set; }

public bool IsCheckinRequest { get; set; }

public bool IsDeviceRequest { get; set; }

public bool IsInAuthorizationPolling { get; set; }

public bool IsAuthorizationRequest { get; set; }

public bool IsAuthorizationRevoke { get; set; }
}
}
17 changes: 17 additions & 0 deletions Source/Lib/TraktApiSharp/Requests/Handler/ResponseMessageHelper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
namespace TraktApiSharp.Requests.Handler
{
using Core;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

internal static class ResponseMessageHelper
{
internal static async Task<Stream> GetResponseContentStreamAsync(HttpResponseMessage responseMessage)
{
Stream responseContentStream = responseMessage.Content != null ? await responseMessage.Content.ReadAsStreamAsync().ConfigureAwait(false) : default;
DebugAsserter.AssertResponseContentStreamIsNotNull(responseContentStream);
return responseContentStream;
}
}
}
7 changes: 6 additions & 1 deletion Source/Lib/TraktApiSharp/TraktApiSharp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -922,7 +922,7 @@
<Compile Include="Requests\Authentication\AuthorizationRevokeRequestBody.cs" />
<Compile Include="Requests\Authentication\DeviceRequest.cs" />
<Compile Include="Requests\Authentication\DeviceRequestBody.cs" />
<Compile Include="Requests\Authentication\ÁuthorizationRefreshRequest.cs" />
<Compile Include="Requests\Authentication\AuthorizationRefreshRequest.cs" />
<Compile Include="Requests\Base\ABodylessPostRequest%271.cs" />
<Compile Include="Requests\Base\ABodylessPostRequest.cs" />
<Compile Include="Requests\Base\ADeleteRequest.cs" />
Expand All @@ -939,11 +939,16 @@
<Compile Include="Requests\Episodes\AEpisodeRequest%271.cs" />
<Compile Include="Requests\Episodes\EpisodeListsRequest.cs" />
<Compile Include="Requests\Episodes\EpisodeTranslationsRequest.cs" />
<Compile Include="Requests\Handler\AuthenticationRequestHandler.cs" />
<Compile Include="Requests\Handler\ExtendedHttpRequestMessage.cs" />
<Compile Include="Requests\Handler\HttpClientProvider.cs" />
<Compile Include="Requests\Handler\IAuthenticationRequestHandler.cs" />
<Compile Include="Requests\Handler\IHttpClientProvider.cs" />
<Compile Include="Requests\Handler\RequestMessageBuilder.cs" />
<Compile Include="Requests\Handler\ResponseErrorHandler.cs" />
<Compile Include="Requests\Handler\ResponseErrorParameters.cs" />
<Compile Include="Requests\Handler\ResponseHeaderParser.cs" />
<Compile Include="Requests\Handler\ResponseMessageHelper.cs" />
<Compile Include="Requests\Interfaces\Base\IBodylessPostRequest%271.cs" />
<Compile Include="Requests\Interfaces\Base\IBodylessPostRequest.cs" />
<Compile Include="Requests\Interfaces\Base\IDeleteRequest.cs" />
Expand Down

0 comments on commit 0a749cd

Please sign in to comment.