From 0a8cb679d77b4ddc22b3b568bdaea8a00f1bb31a Mon Sep 17 00:00:00 2001 From: Leo Hemsted Date: Wed, 1 Jun 2016 15:24:19 +0100 Subject: [PATCH] make mmg and firetext client params consistent --- app/__init__.py | 2 +- app/clients/sms/firetext.py | 22 ++++++++++++++++------ app/clients/sms/mmg.py | 23 +++++++++++++++-------- 3 files changed, 32 insertions(+), 15 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index be7bd43ed..77bf25a47 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -52,7 +52,7 @@ def create_app(app_name=None): statsd_client.init_app(application) firetext_client.init_app(application, statsd_client=statsd_client) loadtest_client.init_app(application, statsd_client=statsd_client) - mmg_client.init_app(application.config, statsd_client=statsd_client) + mmg_client.init_app(application, statsd_client=statsd_client) aws_ses_client.init_app(application.config['AWS_REGION'], statsd_client=statsd_client) notify_celery.init_app(application) encryption.init_app(application) diff --git a/app/clients/sms/firetext.py b/app/clients/sms/firetext.py index 2d77c777d..2dfba89f0 100644 --- a/app/clients/sms/firetext.py +++ b/app/clients/sms/firetext.py @@ -1,11 +1,12 @@ import logging + from monotonic import monotonic +from requests import request, RequestException, HTTPError + from app.clients.sms import ( SmsClient, SmsClientException ) -from flask import current_app -from requests import request, RequestException, HTTPError from app.clients import STATISTICS_DELIVERED, STATISTICS_FAILURE logger = logging.getLogger(__name__) @@ -55,10 +56,11 @@ class FiretextClient(SmsClient): FireText sms client. ''' - def init_app(self, config, statsd_client, *args, **kwargs): + def init_app(self, current_app, statsd_client, *args, **kwargs): super(SmsClient, self).__init__(*args, **kwargs) - self.api_key = config.config.get('FIRETEXT_API_KEY') - self.from_number = config.config.get('FIRETEXT_NUMBER') + self.current_app = current_app + self.api_key = current_app.config.get('FIRETEXT_API_KEY') + self.from_number = current_app.config.get('FIRETEXT_NUMBER') self.name = 'firetext' self.statsd_client = statsd_client @@ -86,6 +88,14 @@ class FiretextClient(SmsClient): if firetext_response['code'] != 0: raise FiretextClientException(firetext_response) response.raise_for_status() + self.current_app.logger.info( + "API {} request on {} succeeded with {} '{}'".format( + "POST", + "https://www.firetext.co.uk/api/sendsms", + response.status_code, + firetext_response + ) + ) except RequestException as e: api_error = HTTPError.create(e) logger.error( @@ -100,6 +110,6 @@ class FiretextClient(SmsClient): raise api_error finally: elapsed_time = monotonic() - start_time - current_app.logger.info("Firetext request finished in {}".format(elapsed_time)) + self.current_app.logger.info("Firetext request finished in {}".format(elapsed_time)) self.statsd_client.timing("notifications.clients.firetext.request-time", elapsed_time) return response diff --git a/app/clients/sms/mmg.py b/app/clients/sms/mmg.py index 70148e2c3..5d4698ba8 100644 --- a/app/clients/sms/mmg.py +++ b/app/clients/sms/mmg.py @@ -1,5 +1,4 @@ import json -from flask import current_app from monotonic import monotonic from requests import (request, RequestException, HTTPError) from app.clients import (STATISTICS_DELIVERED, STATISTICS_FAILURE) @@ -57,10 +56,11 @@ class MMGClient(SmsClient): MMG sms client ''' - def init_app(self, config, statsd_client, *args, **kwargs): + def init_app(self, current_app, statsd_client, *args, **kwargs): super(SmsClient, self).__init__(*args, **kwargs) - self.api_key = config.get('MMG_API_KEY') - self.from_number = config.get('MMG_FROM_NUMBER') + self.current_app = current_app + self.api_key = current_app.config.get('MMG_API_KEY') + self.from_number = current_app.config.get('MMG_FROM_NUMBER') self.name = 'mmg' self.statsd_client = statsd_client @@ -84,12 +84,19 @@ class MMGClient(SmsClient): headers={'Content-Type': 'application/json', 'Authorization': 'Basic {}'.format(self.api_key)}) if response.status_code != 200: - error = response.text - raise MMGClientException(json.loads(error)) + raise MMGClientException(response.json()) response.raise_for_status() + self.current_app.logger.info( + "API {} request on {} succeeded with {} '{}'".format( + "POST", + "https://www.mmgrp.co.uk/API/json/api.php", + response.status_code, + response.json() + ) + ) except RequestException as e: api_error = HTTPError.create(e) - current_app.logger.error( + self.current_app.logger.error( "API {} request on {} failed with {} '{}'".format( "POST", "https://www.mmgrp.co.uk/API/json/api.php", @@ -102,5 +109,5 @@ class MMGClient(SmsClient): finally: elapsed_time = monotonic() - start_time self.statsd_client.timing("notifications.clients.mmg.request-time", elapsed_time) - current_app.logger.info("MMG request finished in {}".format(elapsed_time)) + self.current_app.logger.info("MMG request finished in {}".format(elapsed_time)) return response