Merge branch 'master' into sent-status

This commit is contained in:
Leo Hemsted
2017-04-26 16:52:16 +01:00
9 changed files with 149 additions and 15 deletions

View File

@@ -95,6 +95,7 @@ def register_blueprint(application):
from app.notifications.receive_notifications import receive_notifications_blueprint
from app.notifications.notifications_ses_callback import ses_callback_blueprint
from app.notifications.notifications_sms_callback import sms_callback_blueprint
from app.notifications.notifications_letter_callback import letter_callback_blueprint
from app.authentication.auth import requires_admin_auth, requires_auth, requires_no_auth
from app.letters.send_letter_jobs import letter_job
@@ -155,6 +156,9 @@ def register_blueprint(application):
letter_job.before_request(requires_admin_auth)
application.register_blueprint(letter_job)
letter_callback_blueprint.before_request(requires_no_auth)
application.register_blueprint(letter_callback_blueprint)
def register_v2_blueprints(application):
from app.v2.notifications.post_notifications import v2_notification_blueprint as post_notifications

View File

@@ -443,6 +443,7 @@ class ProviderDetails(db.Model):
updated_at = db.Column(db.DateTime, nullable=True, onupdate=datetime.datetime.utcnow)
created_by_id = db.Column(UUID(as_uuid=True), db.ForeignKey('users.id'), index=True, nullable=True)
created_by = db.relationship('User')
supports_international = db.Column(db.Boolean, nullable=False, default=False)
class ProviderDetailsHistory(db.Model, HistoryModel):
@@ -458,6 +459,7 @@ class ProviderDetailsHistory(db.Model, HistoryModel):
updated_at = db.Column(db.DateTime, nullable=True, onupdate=datetime.datetime.utcnow)
created_by_id = db.Column(UUID(as_uuid=True), db.ForeignKey('users.id'), index=True, nullable=True)
created_by = db.relationship('User')
supports_international = db.Column(db.Boolean, nullable=False, default=False)
JOB_STATUS_PENDING = 'pending'
@@ -664,6 +666,12 @@ class Notification(db.Model):
foreign(template_version) == remote(TemplateHistory.version)
))
client_reference = db.Column(db.String, index=True, nullable=True)
international = db.Column(db.Boolean, nullable=False, default=False)
phone_prefix = db.Column(db.String, nullable=True)
rate_multiplier = db.Column(db.Numeric(), nullable=True)
@property
def personalisation(self):
if self._personalisation:
@@ -837,6 +845,10 @@ class NotificationHistory(db.Model, HistoryModel):
reference = db.Column(db.String, nullable=True, index=True)
client_reference = db.Column(db.String, nullable=True)
international = db.Column(db.Boolean, nullable=False, default=False)
phone_prefix = db.Column(db.String, nullable=True)
rate_multiplier = db.Column(db.Numeric(), nullable=True)
@classmethod
def from_original(cls, notification):
history = super().from_original(notification)

View File

@@ -0,0 +1,39 @@
from datetime import datetime
from flask import (
Blueprint,
jsonify,
request,
current_app,
json
)
from app import statsd_client
from app.clients.email.aws_ses import get_aws_responses
from app.dao import (
notifications_dao
)
from app.notifications.process_client_response import validate_callback_data
letter_callback_blueprint = Blueprint('notifications_letter_callback', __name__)
from app.errors import (
register_errors,
InvalidRequest
)
register_errors(letter_callback_blueprint)
@letter_callback_blueprint.route('/notifications/letter/dvla', methods=['POST'])
def process_letter_response():
try:
dvla_request = json.loads(request.data)
current_app.logger.info(dvla_request)
return jsonify(
result="success", message="DVLA callback succeeded"
), 200
except ValueError:
error = "DVLA callback failed: invalid json"
raise InvalidRequest(error, status_code=400)