Revert "Revert "add DVLA organisations to API""

This commit is contained in:
Imdad Ahad
2017-04-21 12:39:42 +01:00
committed by Chris Hill-Scott
parent 4c764dcc80
commit c4fac1d937
13 changed files with 139 additions and 79 deletions

View File

@@ -90,6 +90,7 @@ def register_blueprint(application):
from app.provider_details.rest import provider_details as provider_details_blueprint
from app.spec.rest import spec as spec_blueprint
from app.organisation.rest import organisation_blueprint
from app.dvla_organisation.rest import dvla_organisation_blueprint
from app.delivery.rest import delivery_blueprint
from app.notifications.receive_notifications import receive_notifications_blueprint
from app.notifications.notifications_ses_callback import ses_callback_blueprint
@@ -148,6 +149,9 @@ def register_blueprint(application):
organisation_blueprint.before_request(requires_admin_auth)
application.register_blueprint(organisation_blueprint, url_prefix='/organisation')
dvla_organisation_blueprint.before_request(requires_admin_auth)
application.register_blueprint(dvla_organisation_blueprint, url_prefix='/dvla_organisations')
letter_job.before_request(requires_admin_auth)
application.register_blueprint(letter_job)

View File

@@ -321,7 +321,8 @@ def create_dvla_file_contents(job_id):
notification.template.__dict__,
notification.personalisation,
notification_reference=notification.reference,
contact_block=notification.service.letter_contact_block
contact_block=notification.service.letter_contact_block,
org_id=notification.service.dvla_organisation.id,
))
for notification in dao_get_all_notifications_for_job(job_id)
)

View File

@@ -0,0 +1,5 @@
from app.models import DVLAOrganisation
def dao_get_dvla_organisations():
return DVLAOrganisation.query.all()

View File

View File

@@ -0,0 +1,14 @@
from flask import Blueprint, jsonify
from app.dao.dvla_organisation_dao import dao_get_dvla_organisations
from app.errors import register_errors
dvla_organisation_blueprint = Blueprint('dvla_organisation', __name__)
register_errors(dvla_organisation_blueprint)
@dvla_organisation_blueprint.route('', methods=['GET'])
def get_dvla_organisations():
return jsonify({
org.id: org.name for org in dao_get_dvla_organisations()
})

View File

@@ -115,6 +115,16 @@ class Organisation(db.Model):
name = db.Column(db.String(255), nullable=True)
DVLA_ORG_HM_GOVERNMENT = '001'
DVLA_ORG_LAND_REGISTRY = '500'
class DVLAOrganisation(db.Model):
__tablename__ = 'dvla_organisation'
id = db.Column(db.String, primary_key=True)
name = db.Column(db.String(255), nullable=True)
class Service(db.Model, Versioned):
__tablename__ = 'services'
@@ -149,6 +159,14 @@ class Service(db.Model, Versioned):
sms_sender = db.Column(db.String(11), nullable=True)
organisation_id = db.Column(UUID(as_uuid=True), db.ForeignKey('organisation.id'), index=True, nullable=True)
organisation = db.relationship('Organisation')
dvla_organisation_id = db.Column(
db.String,
db.ForeignKey('dvla_organisation.id'),
index=True,
nullable=False,
default=DVLA_ORG_HM_GOVERNMENT
)
dvla_organisation = db.relationship('DVLAOrganisation')
branding = db.Column(
db.String(255),
db.ForeignKey('branding_type.name'),

View File

@@ -177,6 +177,7 @@ class ServiceSchema(BaseSchema):
created_by = field_for(models.Service, 'created_by', required=True)
organisation = field_for(models.Service, 'organisation')
branding = field_for(models.Service, 'branding')
dvla_organisation = field_for(models.Service, 'dvla_organisation')
class Meta:
model = models.Service