diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index 5d530bd8f2..9e201701a3 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -1980,15 +1980,6 @@ def check_send_private_message(sender: UserProfile, client: Client, return do_send_messages([message])[0] -def check_send_private_message_from_emails( - sender: UserProfile, client: Client, - receiving_emails: Sequence[str], body: str -) -> int: - addressee = Addressee.for_private(receiving_emails, sender.realm) - message = check_message(sender, client, addressee, body) - - return do_send_messages([message])[0] - # check_send_message: # Returns the id of the sent message. Has same argspec as check_message. def check_send_message(sender: UserProfile, client: Client, message_type_name: str, diff --git a/zerver/webhooks/zapier/fixtures/zapier_zulip_app_auth.json b/zerver/webhooks/zapier/fixtures/zapier_zulip_app_auth.json deleted file mode 100644 index 189b5a663c..0000000000 --- a/zerver/webhooks/zapier/fixtures/zapier_zulip_app_auth.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "auth" -} diff --git a/zerver/webhooks/zapier/fixtures/zapier_zulip_app_private.json b/zerver/webhooks/zapier/fixtures/zapier_zulip_app_private.json deleted file mode 100644 index 8cd51a9160..0000000000 --- a/zerver/webhooks/zapier/fixtures/zapier_zulip_app_private.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "private", - "content": "Sample content for private huddle message", - "to": [ - "iago@zulip.com", - "cordelia@zulip.com" - ] -} diff --git a/zerver/webhooks/zapier/fixtures/zapier_zulip_app_stream.json b/zerver/webhooks/zapier/fixtures/zapier_zulip_app_stream.json deleted file mode 100644 index fdd7fc0243..0000000000 --- a/zerver/webhooks/zapier/fixtures/zapier_zulip_app_stream.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "stream", - "topic": "Sample message from Zapier!", - "content": "Hi! I am a new sample message from Zapier!" -} diff --git a/zerver/webhooks/zapier/tests.py b/zerver/webhooks/zapier/tests.py index c450f493d3..716d71a791 100644 --- a/zerver/webhooks/zapier/tests.py +++ b/zerver/webhooks/zapier/tests.py @@ -20,38 +20,3 @@ class ZapierHookTests(WebhookTestCase): expected_topic = u"Here is your weather update for the day:" expected_message = u"Foggy in the morning.\nMaximum temperature to be 24.\nMinimum temperature to be 12" self.send_and_test_stream_message('weather_update', expected_topic, expected_message) - -class ZapierZulipAppTests(WebhookTestCase): - STREAM_NAME = 'zapier' - URL_TEMPLATE = "/api/v1/external/zapier?api_key={api_key}&stream={stream}" - FIXTURE_DIR_NAME = 'zapier' - - def test_auth(self) -> None: - payload = self.get_body('zapier_zulip_app_auth') - headers = {'HTTP_USER_AGENT': 'ZapierZulipApp'} - result = self.client_post(self.url, payload, - content_type='application/json', - **headers) - json_result = self.assert_json_success(result) - self.assertEqual(json_result['bot_name'], 'Zulip Webhook Bot') - self.assertEqual(json_result['bot_email'], 'webhook-bot@zulip.com') - self.assertIn('bot_id', json_result) - - def test_stream(self) -> None: - expected_topic = u"Sample message from Zapier!" - expected_message = u"Hi! I am a new sample message from Zapier!" - self.send_and_test_stream_message('zapier_zulip_app_stream', - expected_topic, expected_message, - HTTP_USER_AGENT='ZapierZulipApp') - - def test_private(self) -> None: - payload = self.get_body('zapier_zulip_app_private') - headers = {'HTTP_USER_AGENT': 'ZapierZulipApp'} - result = self.client_post(self.url, payload, - content_type='application/json', - **headers) - self.assert_json_success(result) - - expected_message = "Sample content for private huddle message" - msg = self.get_last_message() - self.assertEqual(msg.content, expected_message) diff --git a/zerver/webhooks/zapier/view.py b/zerver/webhooks/zapier/view.py index fa705db032..dab14d32cb 100644 --- a/zerver/webhooks/zapier/view.py +++ b/zerver/webhooks/zapier/view.py @@ -4,11 +4,9 @@ from django.http import HttpRequest, HttpResponse from django.utils.translation import ugettext as _ from zerver.decorator import api_key_only_webhook_view -from zerver.lib.actions import check_send_private_message_from_emails from zerver.lib.request import REQ, has_request_variables from zerver.lib.response import json_error, json_success -from zerver.lib.webhooks.common import check_send_webhook_message, \ - validate_extract_webhook_http_header +from zerver.lib.webhooks.common import check_send_webhook_message from zerver.models import UserProfile @api_key_only_webhook_view('Zapier', notify_bot_owner_on_invalid_json=False) @@ -16,34 +14,6 @@ from zerver.models import UserProfile def api_zapier_webhook(request: HttpRequest, user_profile: UserProfile, payload: Dict[str, Any]=REQ(argument_type='body')) -> HttpResponse: - # A request with the ZapierZulipApp user agent is a request from - # the official Zulip app for Zapier - user_agent = validate_extract_webhook_http_header( - request, 'USER_AGENT', 'Zapier', fatal=False) - if user_agent == 'ZapierZulipApp': - event_type = payload.get('type') - if event_type == 'auth': - # The bot's details are used by Zapier to format a connection - # label for users to be able to distinguish between different - # Zulip bots and API keys in their UI - return json_success({ - 'bot_name': user_profile.full_name, - 'bot_email': user_profile.email, - 'bot_id': user_profile.id - }) - elif event_type == 'stream': - check_send_webhook_message( - request, user_profile, - payload['topic'], payload['content'] - ) - elif event_type == 'private': - check_send_private_message_from_emails( - user_profile, request.client, - payload['to'], payload['content'] - ) - - return json_success() - topic = payload.get('topic') content = payload.get('content')