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

Commit

Permalink
GH-78: Use request handlers as singleton
Browse files Browse the repository at this point in the history
  • Loading branch information
henrikfroehling committed Nov 7, 2017
1 parent 732eda8 commit e08ab0c
Show file tree
Hide file tree
Showing 20 changed files with 429 additions and 753 deletions.
8 changes: 0 additions & 8 deletions Source/Lib/TraktApiSharp/Modules/ITraktModule.cs

This file was deleted.

77 changes: 35 additions & 42 deletions Source/Lib/TraktApiSharp/Modules/TraktAuthenticationModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,15 @@
using System.Threading.Tasks;
using Utils;

public class TraktAuthenticationModule : ITraktModule
public class TraktAuthenticationModule
{
private const string DEFAULT_REDIRECT_URI = "urn:ietf:wg:oauth:2.0:oob";

private TraktAuthorization _authorization;
private TraktDevice _device;
private readonly AuthenticationRequestHandler _requestHandler;
private readonly TraktClient _client;

internal TraktAuthenticationModule(TraktClient client)
{
Client = client;
_requestHandler = new AuthenticationRequestHandler(client);
}

/// <summary>Gets a reference to the associated <see cref="TraktClient" /> instance.</summary>
public TraktClient Client { get; }
internal TraktAuthenticationModule(TraktClient client) => _client = client;

public string OAuthAuthorizationCode { get; set; }

Expand All @@ -50,14 +43,14 @@ public TraktDevice Device

public bool IsAuthorized => Authorization?.IsExpired == false;

public Task<Pair<bool, TraktResponse<TraktAuthorization>>> CheckIfAuthorizationIsExpiredOrWasRevokedAsync(bool autoRefresh = false, CancellationToken cancellationToken = default(CancellationToken))
=> _requestHandler.CheckIfAuthorizationIsExpiredOrWasRevokedAsync(autoRefresh, cancellationToken);
public Task<Pair<bool, TraktResponse<TraktAuthorization>>> CheckIfAuthorizationIsExpiredOrWasRevokedAsync(bool autoRefresh = false, CancellationToken cancellationToken = default)
=> AuthenticationRequestHandler.GetInstance(_client).CheckIfAuthorizationIsExpiredOrWasRevokedAsync(autoRefresh, cancellationToken);

public Task<Pair<bool, TraktResponse<TraktAuthorization>>> CheckIfAuthorizationIsExpiredOrWasRevokedAsync(TraktAuthorization authorization, bool autoRefresh = false, CancellationToken cancellationToken = default(CancellationToken))
=> _requestHandler.CheckIfAuthorizationIsExpiredOrWasRevokedAsync(authorization, autoRefresh, cancellationToken);
public Task<Pair<bool, TraktResponse<TraktAuthorization>>> CheckIfAuthorizationIsExpiredOrWasRevokedAsync(TraktAuthorization authorization, bool autoRefresh = false, CancellationToken cancellationToken = default)
=> AuthenticationRequestHandler.GetInstance(_client).CheckIfAuthorizationIsExpiredOrWasRevokedAsync(authorization, autoRefresh, cancellationToken);

public Task<bool> CheckIfAccessTokenWasRevokedOrIsNotValidAsync(string accessToken, CancellationToken cancellationToken = default(CancellationToken))
=> _requestHandler.CheckIfAccessTokenWasRevokedOrIsNotValidAsync(accessToken, cancellationToken);
public Task<bool> CheckIfAccessTokenWasRevokedOrIsNotValidAsync(string accessToken, CancellationToken cancellationToken = default)
=> AuthenticationRequestHandler.GetInstance(_client).CheckIfAccessTokenWasRevokedOrIsNotValidAsync(accessToken, cancellationToken);

public string CreateAuthorizationUrl() => CreateAuthorizationUrl(ClientId);

Expand All @@ -67,28 +60,28 @@ public string CreateAuthorizationUrl(string clientId, string redirectUri)
=> CreateAuthorizationUrl(clientId, redirectUri, AntiForgeryToken);

public string CreateAuthorizationUrl(string clientId, string redirectUri, string state)
=> _requestHandler.CreateAuthorizationUrl(clientId, redirectUri, state);
=> AuthenticationRequestHandler.GetInstance(_client).CreateAuthorizationUrl(clientId, redirectUri, state);

public string CreateAuthorizationUrlWithDefaultState() => CreateAuthorizationUrlWithDefaultState(ClientId);

public string CreateAuthorizationUrlWithDefaultState(string clientId) => CreateAuthorizationUrlWithDefaultState(clientId, RedirectUri);

public string CreateAuthorizationUrlWithDefaultState(string clientId, string redirectUri)
=> _requestHandler.CreateAuthorizationUrlWithDefaultState(clientId, redirectUri);
=> AuthenticationRequestHandler.GetInstance(_client).CreateAuthorizationUrlWithDefaultState(clientId, redirectUri);

public Task<TraktResponse<TraktAuthorization>> GetAuthorizationAsync(CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> GetAuthorizationAsync(CancellationToken cancellationToken = default)
=> GetAuthorizationAsync(OAuthAuthorizationCode, cancellationToken);

public Task<TraktResponse<TraktAuthorization>> GetAuthorizationAsync(string code, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> GetAuthorizationAsync(string code, CancellationToken cancellationToken = default)
=> GetAuthorizationAsync(code, ClientId, cancellationToken);

public Task<TraktResponse<TraktAuthorization>> GetAuthorizationAsync(string code, string clientId, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> GetAuthorizationAsync(string code, string clientId, CancellationToken cancellationToken = default)
=> GetAuthorizationAsync(code, clientId, ClientSecret, cancellationToken);

public Task<TraktResponse<TraktAuthorization>> GetAuthorizationAsync(string code, string clientId, string clientSecret, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> GetAuthorizationAsync(string code, string clientId, string clientSecret, CancellationToken cancellationToken = default)
=> GetAuthorizationAsync(code, clientId, clientSecret, RedirectUri, cancellationToken);

public Task<TraktResponse<TraktAuthorization>> GetAuthorizationAsync(string code, string clientId, string clientSecret, string redirectUri, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> GetAuthorizationAsync(string code, string clientId, string clientSecret, string redirectUri, CancellationToken cancellationToken = default)
{
var request = new AuthorizationRequest
{
Expand All @@ -101,13 +94,13 @@ public string CreateAuthorizationUrlWithDefaultState(string clientId, string red
}
};

return _requestHandler.GetAuthorizationAsync(request, cancellationToken);
return AuthenticationRequestHandler.GetInstance(_client).GetAuthorizationAsync(request, cancellationToken);
}

public Task<TraktResponse<TraktDevice>> GenerateDeviceAsync(CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktDevice>> GenerateDeviceAsync(CancellationToken cancellationToken = default)
=> GenerateDeviceAsync(ClientId, cancellationToken);

public Task<TraktResponse<TraktDevice>> GenerateDeviceAsync(string clientId, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktDevice>> GenerateDeviceAsync(string clientId, CancellationToken cancellationToken = default)
{
var request = new DeviceRequest
{
Expand All @@ -117,19 +110,19 @@ public string CreateAuthorizationUrlWithDefaultState(string clientId, string red
}
};

return _requestHandler.GetDeviceAsync(request, cancellationToken);
return AuthenticationRequestHandler.GetInstance(_client).GetDeviceAsync(request, cancellationToken);
}

public Task<TraktResponse<TraktAuthorization>> PollForAuthorizationAsync(CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> PollForAuthorizationAsync(CancellationToken cancellationToken = default)
=> PollForAuthorizationAsync(Device, cancellationToken);

public Task<TraktResponse<TraktAuthorization>> PollForAuthorizationAsync(TraktDevice device, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> PollForAuthorizationAsync(TraktDevice device, CancellationToken cancellationToken = default)
=> PollForAuthorizationAsync(device, ClientId, cancellationToken);

public Task<TraktResponse<TraktAuthorization>> PollForAuthorizationAsync(TraktDevice device, string clientId, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> PollForAuthorizationAsync(TraktDevice device, string clientId, CancellationToken cancellationToken = default)
=> PollForAuthorizationAsync(device, clientId, ClientSecret, cancellationToken);

public Task<TraktResponse<TraktAuthorization>> PollForAuthorizationAsync(TraktDevice device, string clientId, string clientSecret, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> PollForAuthorizationAsync(TraktDevice device, string clientId, string clientSecret, CancellationToken cancellationToken = default)
{
var request = new AuthorizationPollRequest
{
Expand All @@ -141,22 +134,22 @@ public string CreateAuthorizationUrlWithDefaultState(string clientId, string red
}
};

return _requestHandler.PollForAuthorizationAsync(request, cancellationToken);
return AuthenticationRequestHandler.GetInstance(_client).PollForAuthorizationAsync(request, cancellationToken);
}

public Task<TraktResponse<TraktAuthorization>> RefreshAuthorizationAsync(CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> RefreshAuthorizationAsync(CancellationToken cancellationToken = default)
=> RefreshAuthorizationAsync(Authorization.RefreshToken, cancellationToken);

public Task<TraktResponse<TraktAuthorization>> RefreshAuthorizationAsync(string refreshToken, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> RefreshAuthorizationAsync(string refreshToken, CancellationToken cancellationToken = default)
=> RefreshAuthorizationAsync(refreshToken, ClientId, cancellationToken);

public Task<TraktResponse<TraktAuthorization>> RefreshAuthorizationAsync(string refreshToken, string clientId, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> RefreshAuthorizationAsync(string refreshToken, string clientId, CancellationToken cancellationToken = default)
=> RefreshAuthorizationAsync(refreshToken, clientId, ClientSecret, cancellationToken);

public Task<TraktResponse<TraktAuthorization>> RefreshAuthorizationAsync(string refreshToken, string clientId, string clientSecret, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> RefreshAuthorizationAsync(string refreshToken, string clientId, string clientSecret, CancellationToken cancellationToken = default)
=> RefreshAuthorizationAsync(refreshToken, clientId, clientSecret, RedirectUri, cancellationToken);

public Task<TraktResponse<TraktAuthorization>> RefreshAuthorizationAsync(string refreshToken, string clientId, string clientSecret, string redirectUri, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktResponse<TraktAuthorization>> RefreshAuthorizationAsync(string refreshToken, string clientId, string clientSecret, string redirectUri, CancellationToken cancellationToken = default)
{
var request = new AuthorizationRefreshRequest
{
Expand All @@ -169,16 +162,16 @@ public string CreateAuthorizationUrlWithDefaultState(string clientId, string red
}
};

return _requestHandler.RefreshAuthorizationAsync(request, cancellationToken);
return AuthenticationRequestHandler.GetInstance(_client).RefreshAuthorizationAsync(request, cancellationToken);
}

public Task<TraktNoContentResponse> RevokeAuthorizationAsync(CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktNoContentResponse> RevokeAuthorizationAsync(CancellationToken cancellationToken = default)
=> RevokeAuthorizationAsync(Authorization.AccessToken, cancellationToken);

public Task<TraktNoContentResponse> RevokeAuthorizationAsync(string accessToken, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktNoContentResponse> RevokeAuthorizationAsync(string accessToken, CancellationToken cancellationToken = default)
=> RevokeAuthorizationAsync(accessToken, ClientId, cancellationToken);

public Task<TraktNoContentResponse> RevokeAuthorizationAsync(string accessToken, string clientId, CancellationToken cancellationToken = default(CancellationToken))
public Task<TraktNoContentResponse> RevokeAuthorizationAsync(string accessToken, string clientId, CancellationToken cancellationToken = default)
{
var request = new AuthorizationRevokeRequest
{
Expand All @@ -188,7 +181,7 @@ public string CreateAuthorizationUrlWithDefaultState(string clientId, string red
}
};

return _requestHandler.RevokeAuthorizationAsync(request, clientId, cancellationToken);
return AuthenticationRequestHandler.GetInstance(_client).RevokeAuthorizationAsync(request, clientId, cancellationToken);
}
}
}
Loading

0 comments on commit e08ab0c

Please sign in to comment.