smarter mark final form
[redakcja.git] / apps / apiclient / views.py
index f851590..239682a 100644 (file)
@@ -7,23 +7,23 @@ import oauth2
 
 from apiclient.models import OAuthConnection
 from apiclient import wl_consumer
-from apiclient.settings import (WL_REQUEST_TOKEN_URL, WL_ACCESS_TOKEN_URL, 
-        WL_AUTHORIZE_URL)
+from apiclient.settings import WL_REQUEST_TOKEN_URL, WL_ACCESS_TOKEN_URL, WL_AUTHORIZE_URL
+from apiclient.settings import BETA_REQUEST_TOKEN_URL, BETA_ACCESS_TOKEN_URL, BETA_AUTHORIZE_URL
 
 
 @login_required
-def oauth(request):
+def oauth(request, beta=False):
     if wl_consumer is None:
         return HttpResponse("OAuth consumer not configured.")
 
     client = oauth2.Client(wl_consumer)
-    resp, content = client.request(WL_REQUEST_TOKEN_URL)
+    resp, content = client.request(WL_REQUEST_TOKEN_URL if not beta else BETA_REQUEST_TOKEN_URL)
     if resp['status'] != '200':
         raise Exception("Invalid response %s." % resp['status'])
 
     request_token = dict(cgi.parse_qsl(content))
     
-    conn = OAuthConnection.get(request.user)
+    conn = OAuthConnection.get(request.user, beta)
     # this might reset existing auth!
     conn.access = False
     conn.token = request_token['oauth_token']
@@ -31,25 +31,25 @@ def oauth(request):
     conn.save()
 
     url = "%s?oauth_token=%s&oauth_callback=%s" % (
-            WL_AUTHORIZE_URL
+            WL_AUTHORIZE_URL if not beta else BETA_AUTHORIZE_URL,
             request_token['oauth_token'],
-            request.build_absolute_uri(reverse("users_oauth_callback")),
+            request.build_absolute_uri(reverse("apiclient_oauth_callback" if not beta else "apiclient_beta_callback")),
             )
 
     return HttpResponseRedirect(url)
 
 
 @login_required
-def oauth_callback(request):
+def oauth_callback(request, beta=False):
     if wl_consumer is None:
         return HttpResponse("OAuth consumer not configured.")
 
     oauth_verifier = request.GET.get('oauth_verifier')
-    conn = OAuthConnection.get(request.user)
+    conn = OAuthConnection.get(request.user, beta)
     token = oauth2.Token(conn.token, conn.token_secret)
     token.set_verifier(oauth_verifier)
     client = oauth2.Client(wl_consumer, token)
-    resp, content = client.request(WL_ACCESS_TOKEN_URL, method="POST")
+    resp, content = client.request(WL_ACCESS_TOKEN_URL if not beta else BETA_ACCESS_TOKEN_URL, method="POST")
     access_token = dict(cgi.parse_qsl(content))
 
     conn.access = True