X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/e7927df2744d46e176c7114bf63f1bd8f5746168..1e373b12f008865c90a75cc56202d8adde06e2b7:/apps/apiclient/__init__.py?ds=sidebyside diff --git a/apps/apiclient/__init__.py b/apps/apiclient/__init__.py index 33d20081..56ecb96d 100644 --- a/apps/apiclient/__init__.py +++ b/apps/apiclient/__init__.py @@ -1,10 +1,9 @@ import urllib -from django.utils import simplejson +import json import oauth2 -from apiclient.models import OAuthConnection -from apiclient.settings import WL_CONSUMER_KEY, WL_CONSUMER_SECRET, WL_API_URL +from apiclient.settings import WL_CONSUMER_KEY, WL_CONSUMER_SECRET, WL_API_URL, BETA_API_URL if WL_CONSUMER_KEY and WL_CONSUMER_SECRET: @@ -21,26 +20,28 @@ class NotAuthorizedError(BaseException): pass -def api_call(user, path, data=None): - conn = OAuthConnection.get(user) +def api_call(user, path, data=None, beta=False): + from .models import OAuthConnection + api_url = BETA_API_URL if beta else WL_API_URL + conn = OAuthConnection.get(user=user, beta=beta) if not conn.access: raise NotAuthorizedError("No WL authorization for user %s." % user) token = oauth2.Token(conn.token, conn.token_secret) client = oauth2.Client(wl_consumer, token) if data is not None: - data = simplejson.dumps(data) + data = json.dumps(data) data = urllib.urlencode({"data": data}) resp, content = client.request( - "%s%s" % (WL_API_URL, path), + "%s%s" % (api_url, path), method="POST", body=data) else: resp, content = client.request( - "%s%s" % (WL_API_URL, path)) + "%s%s" % (api_url, path)) status = resp['status'] if status == '200': - return simplejson.loads(content) + return json.loads(content) elif status.startswith('2'): return elif status == '401':