diff --git a/app/__init__.py b/app/__init__.py index 8e774cccb..82bce0425 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -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) diff --git a/app/dao/dvla_organisation_dao.py b/app/dao/dvla_organisation_dao.py new file mode 100644 index 000000000..879671947 --- /dev/null +++ b/app/dao/dvla_organisation_dao.py @@ -0,0 +1,5 @@ +from app.models import DVLAOrganisation + + +def dao_get_dvla_organisations(): + return DVLAOrganisation.query.all() diff --git a/app/dvla_organisation/__init__.py b/app/dvla_organisation/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/app/dvla_organisation/rest.py b/app/dvla_organisation/rest.py new file mode 100644 index 000000000..acf9e09e0 --- /dev/null +++ b/app/dvla_organisation/rest.py @@ -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() + }) diff --git a/tests/app/dvla_organisation/__init__.py b/tests/app/dvla_organisation/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/app/dvla_organisation/test_rest.py b/tests/app/dvla_organisation/test_rest.py new file mode 100644 index 000000000..e40c843bf --- /dev/null +++ b/tests/app/dvla_organisation/test_rest.py @@ -0,0 +1,13 @@ +from flask import json + +from tests import create_authorization_header + + +def test_get_dvla_organisations(client): + auth_header = create_authorization_header() + + response = client.get('/dvla_organisations', headers=[auth_header]) + + assert response.status_code == 200 + dvla_organisations = json.loads(response.get_data(as_text=True)) + assert dvla_organisations == {'001': 'HM Government', '500': 'Land Registry'}