diff --git a/src/Untappd.Net.UnitTests/Authentication/TestAuthenticationHelper.cs b/src/Untappd.Net.UnitTests/Authentication/TestAuthenticationHelper.cs
new file mode 100644
index 0000000..4d2d1b5
--- /dev/null
+++ b/src/Untappd.Net.UnitTests/Authentication/TestAuthenticationHelper.cs
@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using NUnit.Framework;
+using Untappd.Net.Authentication;
+using Untappd.Net.Client;
+
+namespace Untappd.Net.UnitTests.Authentication
+{
+ [TestFixture]
+ public class TestAuthenticationHelper
+ {
+ [Test]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestRedirectUserToException1()
+ {
+
+ AuthenticationHelper.RedirectUserTo(null, "url");
+ }
+ [Test]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestRedirectUserToException2()
+ {
+
+ AuthenticationHelper.RedirectUserTo(new UnAuthenticatedUntappdCredentials("d", "d"), string.Empty);
+ }
+ [Test]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestTokenUrlException1()
+ {
+
+ AuthenticationHelper.TokenUrl(null, "some", "code");
+ }
+ [Test]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestTokenUrlException2()
+ {
+
+ AuthenticationHelper.TokenUrl(new UnAuthenticatedUntappdCredentials("d", "d"), string.Empty, "code");
+ }
+ [Test]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestTokenUrlException3()
+ {
+
+ AuthenticationHelper.TokenUrl(new UnAuthenticatedUntappdCredentials("d", "d"), "ds", string.Empty);
+ }
+ }
+}
diff --git a/src/Untappd.Net.UnitTests/Untappd.Net.UnitTests.csproj b/src/Untappd.Net.UnitTests/Untappd.Net.UnitTests.csproj
index 0986b69..9530b32 100644
--- a/src/Untappd.Net.UnitTests/Untappd.Net.UnitTests.csproj
+++ b/src/Untappd.Net.UnitTests/Untappd.Net.UnitTests.csproj
@@ -69,6 +69,7 @@
+
diff --git a/src/Untappd.Net/Authentication/AuthenticationHelper.cs b/src/Untappd.Net/Authentication/AuthenticationHelper.cs
new file mode 100644
index 0000000..f7b59f3
--- /dev/null
+++ b/src/Untappd.Net/Authentication/AuthenticationHelper.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Untappd.Net.Client;
+using Untappd.Net.Request;
+
+namespace Untappd.Net.Authentication
+{
+ public static class AuthenticationHelper
+ {
+ ///
+ /// Redirect the user to this string.
+ ///
+ ///
+ /// The URL to redirect back to your application. Should listen on code as a string param
+ ///
+ public static string RedirectUserTo(IUnAuthenticadedUntappdCredentials credentials, string redirectUrl)
+ {
+ if (credentials == null)
+ {
+ throw new ArgumentNullException("credentials");
+ }
+
+ if (string.IsNullOrWhiteSpace(redirectUrl))
+ {
+ throw new ArgumentNullException("redirectUrl");
+ }
+
+ return string.Format("{0}/?client_id={1}&response_type=code&redirect_url={2}", Constants.BaseRequestString,
+ credentials.ClientId, redirectUrl);
+ }
+
+ ///
+ /// Url to get the OAuth token.
+ ///
+ ///
+ ///
+ /// Data returned by the initial request(see: RedirectUserTo)
+ ///
+ public static string TokenUrl(IUnAuthenticadedUntappdCredentials credentials, string redirectUrl, string code)
+ {
+ if (credentials == null)
+ {
+ throw new ArgumentNullException("credentials");
+ }
+
+ if (string.IsNullOrWhiteSpace(redirectUrl))
+ {
+ throw new ArgumentNullException("redirectUrl");
+ }
+ if (string.IsNullOrWhiteSpace(code))
+ {
+ throw new ArgumentNullException("code");
+ }
+ return string.Format("{0}/?client_id={1}&client_secret={2}&response_type=code&redirect_url={3}&code={4}",
+ Constants.OAuthTokenEndPoint,
+ credentials.ClientId,
+ credentials.ClientSecret,
+ redirectUrl,
+ code);
+ }
+ }
+}
diff --git a/src/Untappd.Net/Constants.cs b/src/Untappd.Net/Constants.cs
index 058817f..1c72c24 100644
--- a/src/Untappd.Net/Constants.cs
+++ b/src/Untappd.Net/Constants.cs
@@ -3,5 +3,6 @@
public struct Constants
{
public const string BaseRequestString = "https://api.untappd.com";
+ public const string OAuthTokenEndPoint = "https://untappd.com/oauth/authorize";
}
}
diff --git a/src/Untappd.Net/Untappd.Net.csproj b/src/Untappd.Net/Untappd.Net.csproj
index bf3d012..e805d63 100644
--- a/src/Untappd.Net/Untappd.Net.csproj
+++ b/src/Untappd.Net/Untappd.Net.csproj
@@ -46,6 +46,7 @@
+