mirror of https://github.com/zulip/zulip.git
Add an api endpoint to fetch GOOGLE_CLIENT_ID
Further to #102, this provides an endpoint suitable for mobile apps to consume the GOOGLE_CLIENT_ID if configured.
This commit is contained in:
parent
ea65715ef8
commit
77fad7a16e
|
@ -83,6 +83,25 @@ class PublicURLTest(TestCase):
|
||||||
for status_code, url_set in post_urls.iteritems():
|
for status_code, url_set in post_urls.iteritems():
|
||||||
self.fetch("post", url_set, status_code)
|
self.fetch("post", url_set, status_code)
|
||||||
|
|
||||||
|
def test_get_gcid_when_not_configured(self):
|
||||||
|
with self.settings(GOOGLE_CLIENT_ID=None):
|
||||||
|
resp = self.client.get("/api/v1/fetch_google_client_id")
|
||||||
|
self.assertEquals(400, resp.status_code,
|
||||||
|
msg="Expected 400, received %d for GET /api/v1/fetch_google_client_id" % resp.status_code,
|
||||||
|
)
|
||||||
|
data = ujson.loads(resp.content)
|
||||||
|
self.assertEqual('error', data['result'])
|
||||||
|
|
||||||
|
def test_get_gcid_when_configured(self):
|
||||||
|
with self.settings(GOOGLE_CLIENT_ID="ABCD"):
|
||||||
|
resp = self.client.get("/api/v1/fetch_google_client_id")
|
||||||
|
self.assertEquals(200, resp.status_code,
|
||||||
|
msg="Expected 200, received %d for GET /api/v1/fetch_google_client_id" % resp.status_code,
|
||||||
|
)
|
||||||
|
data = ujson.loads(resp.content)
|
||||||
|
self.assertEqual('success', data['result'])
|
||||||
|
self.assertEqual('ABCD', data['google_client_id'])
|
||||||
|
|
||||||
class LoginTest(AuthedTestCase):
|
class LoginTest(AuthedTestCase):
|
||||||
"""
|
"""
|
||||||
Logging in, registration, and logging out.
|
Logging in, registration, and logging out.
|
||||||
|
|
|
@ -1881,6 +1881,12 @@ def json_fetch_api_key(request, user_profile, password=REQ(default='')):
|
||||||
return json_error("Your username or password is incorrect.")
|
return json_error("Your username or password is incorrect.")
|
||||||
return json_success({"api_key": user_profile.api_key})
|
return json_success({"api_key": user_profile.api_key})
|
||||||
|
|
||||||
|
@csrf_exempt
|
||||||
|
def api_fetch_google_client_id(request):
|
||||||
|
if not settings.GOOGLE_CLIENT_ID:
|
||||||
|
return json_error("GOOGLE_CLIENT_ID is not configured", status=400)
|
||||||
|
return json_success({"google_client_id": settings.GOOGLE_CLIENT_ID})
|
||||||
|
|
||||||
def get_status_list(requesting_user_profile):
|
def get_status_list(requesting_user_profile):
|
||||||
return {'presences': get_status_dict(requesting_user_profile),
|
return {'presences': get_status_dict(requesting_user_profile),
|
||||||
'server_timestamp': time.time()}
|
'server_timestamp': time.time()}
|
||||||
|
|
|
@ -153,6 +153,9 @@ urlpatterns += patterns('zerver.views',
|
||||||
# password/pair and returns an API key.
|
# password/pair and returns an API key.
|
||||||
url(r'^api/v1/fetch_api_key$', 'api_fetch_api_key'),
|
url(r'^api/v1/fetch_api_key$', 'api_fetch_api_key'),
|
||||||
|
|
||||||
|
# Used to present the GOOGLE_CLIENT_ID to mobile apps
|
||||||
|
url(r'^api/v1/fetch_google_client_id$', 'api_fetch_google_client_id'),
|
||||||
|
|
||||||
# These are integration-specific web hook callbacks
|
# These are integration-specific web hook callbacks
|
||||||
url(r'^api/v1/external/beanstalk$' , 'webhooks.api_beanstalk_webhook'),
|
url(r'^api/v1/external/beanstalk$' , 'webhooks.api_beanstalk_webhook'),
|
||||||
url(r'^api/v1/external/github$', 'webhooks.api_github_landing'),
|
url(r'^api/v1/external/github$', 'webhooks.api_github_landing'),
|
||||||
|
|
Loading…
Reference in New Issue