diff --git a/src/eligibility_signposting_api/views/eligibility.py b/src/eligibility_signposting_api/views/eligibility.py index 07e2e079..e7d2bbbc 100644 --- a/src/eligibility_signposting_api/views/eligibility.py +++ b/src/eligibility_signposting_api/views/eligibility.py @@ -7,7 +7,7 @@ from fhir.resources.R4B.operationoutcome import OperationOutcome, OperationOutcomeIssue from fhir.resources.R4B.requestgroup import RequestGroup from fhir.resources.R4B.task import Task -from flask import Blueprint, make_response, request +from flask import Blueprint, make_response from flask.typing import ResponseReturnValue from wireup import Injected @@ -19,9 +19,9 @@ eligibility_blueprint = Blueprint("eligibility", __name__) -@eligibility_blueprint.get("/") -def check_eligibility(eligibility_service: Injected[EligibilityService]) -> ResponseReturnValue: - nhs_number = NHSNumber(request.args.get("nhs_number", "")) +@eligibility_blueprint.get("/", defaults={"nhs_number": ""}) +@eligibility_blueprint.get("/") +def check_eligibility(nhs_number: NHSNumber, eligibility_service: Injected[EligibilityService]) -> ResponseReturnValue: logger.debug("checking nhs_number %r in %r", nhs_number, eligibility_service, extra={"nhs_number": nhs_number}) try: eligibility_status = eligibility_service.get_eligibility_status(nhs_number) diff --git a/tests/integration/in_process/test_eligibility_endpoint.py b/tests/integration/in_process/test_eligibility_endpoint.py index 69790a17..fc17f8d2 100644 --- a/tests/integration/in_process/test_eligibility_endpoint.py +++ b/tests/integration/in_process/test_eligibility_endpoint.py @@ -18,7 +18,7 @@ def test_nhs_number_given( nhs_number, date_of_birth, postcode = persisted_person # When - response = client.get(f"/eligibility/?nhs_number={nhs_number}") + response = client.get(f"/eligibility/{nhs_number}") # Then assert_that( diff --git a/tests/integration/lambda/test_app_running_as_lambda.py b/tests/integration/lambda/test_app_running_as_lambda.py index bc653cf3..c904b384 100644 --- a/tests/integration/lambda/test_app_running_as_lambda.py +++ b/tests/integration/lambda/test_app_running_as_lambda.py @@ -33,13 +33,18 @@ def test_install_and_call_lambda_flask( request_payload = { "version": "2.0", "routeKey": "GET /", - "rawPath": "/eligibility/", - "rawQueryString": f"nhs_number={nhs_number}", + "rawPath": "/", + "rawQueryString": "", "headers": {"accept": "application/json", "content-type": "application/json"}, "requestContext": { - "http": {"sourceIp": "192.0.0.1", "method": "GET", "path": "/eligibility/", "protocol": "HTTP/1.1"} + "http": { + "sourceIp": "192.0.0.1", + "method": "GET", + "path": f"/eligibility/{nhs_number}", + "protocol": "HTTP/1.1", + } }, - "queryStringParameters": {"nhs_number": nhs_number}, + "queryStringParameters": {}, "body": None, "isBase64Encoded": False, } @@ -73,7 +78,7 @@ def test_install_and_call_flask_lambda_over_http( nhs_number, date_of_birth, postcode = persisted_person # When - response = httpx.get(str(flask_function_url / "eligibility" / "" % {"nhs_number": nhs_number})) + response = httpx.get(str(flask_function_url / "eligibility" / nhs_number)) # Then assert_that( @@ -94,7 +99,7 @@ def test_install_and_call_flask_lambda_with_unknown_nhs_number( nhs_number = NHSNumber(f"5{faker.random_int(max=999999999):09d}") # When - response = httpx.get(str(flask_function_url / "eligibility" / "" % {"nhs_number": nhs_number})) + response = httpx.get(str(flask_function_url / "eligibility" / nhs_number)) # Then assert_that( diff --git a/tests/unit/views/test_eligibility.py b/tests/unit/views/test_eligibility.py index 5d8c4c9f..10561790 100644 --- a/tests/unit/views/test_eligibility.py +++ b/tests/unit/views/test_eligibility.py @@ -42,7 +42,7 @@ def test_nhs_number_given(app: Flask, client: FlaskClient): # Given with get_app_container(app).override.service(EligibilityService, new=FakeEligibilityService()): # When - response = client.get("/eligibility/?nhs_number=12345") + response = client.get("/eligibility/12345") # Then assert_that( @@ -80,7 +80,7 @@ def test_no_nhs_number_given(app: Flask, client: FlaskClient): def test_unexpected_error(app: Flask, client: FlaskClient): # Given with get_app_container(app).override.service(EligibilityService, new=FakeUnexpectedErrorEligibilityService()): - response = client.get("/eligibility/?nhs_number=12345") + response = client.get("/eligibility/12345") assert_that( response, is_response()