Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/actions/setup-proxygen/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,15 @@ runs:

- name: Create Proxygen private key file
run: |
echo "${{ inputs.PROXYGEN_PRIVATE_KEY }}" > ~/.proxygen/private_key.pem
echo "${{ inputs.NEW_PROXYGEN_PRIVATE_KEY }}" > ~/.proxygen/private_key.pem
chmod 600 ~/.proxygen/private_key.pem
shell: bash

- name: Update Proxygen Credentials
run: |
sed -i "s|CLIENT_ID_TO_BE_REPLACED|${{ inputs.PROXYGEN_CLIENT_ID }}|" ~/.proxygen/credentials.yaml
sed -i "s|KEY_ID_TO_BE_REPLACED|${{ inputs.PROXYGEN_KEY_ID }}|" ~/.proxygen/credentials.yaml
sed -i "s|PRIVATE_KEY_PATH_TO_BE_REPLACED|private_key.pem|" ~/.proxygen/credentials.yaml
sed -i "s|NEW_CLIENT_ID_TO_BE_REPLACED|${{ inputs.NEW_PROXYGEN_CLIENT_ID }}|" ~/.proxygen/credentials.yaml
sed -i "s|NEW_KEY_ID_TO_BE_REPLACED|${{ inputs.NEW_PROXYGEN_KEY_ID }}|" ~/.proxygen/credentials.yaml
sed -i "s|NEW_PRIVATE_KEY_PATH_TO_BE_REPLACED|private_key.pem|" ~/.proxygen/credentials.yaml
shell: bash

- name: Copy Proxygen settings
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/pull-request-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ jobs:
emis_base_url: https://nhs70apptest.emishealth.com
tpp_base_url: https://systmonline2.tpp-uk.com
secrets:
PROXYGEN_CLIENT_ID: ${{ secrets.PROXYGEN_CLIENT_ID }}
PROXYGEN_KEY_ID: ${{ secrets.PROXYGEN_KEY_ID }}
PROXYGEN_PRIVATE_KEY: ${{ secrets.PROXYGEN_PRIVATE_KEY }}
NEW_PROXYGEN_CLIENT_ID: ${{ secrets.NEW_PROXYGEN_CLIENT_ID }}
NEW_PROXYGEN_KEY_ID: ${{ secrets.NEW_PROXYGEN_KEY_ID }}
NEW_PROXYGEN_PRIVATE_KEY: ${{ secrets.NEW_PROXYGEN_PRIVATE_KEY }}

run-end-to-end-tests:
name: "Run End to End Tests"
Expand All @@ -54,9 +54,9 @@ jobs:
- name: Setup proxygen
uses: ./.github/actions/setup-proxygen
with:
PROXYGEN_CLIENT_ID: ${{ secrets.PROXYGEN_CLIENT_ID }}
PROXYGEN_KEY_ID: ${{ secrets.PROXYGEN_KEY_ID }}
PROXYGEN_PRIVATE_KEY: ${{ secrets.PROXYGEN_PRIVATE_KEY }}
NEW_PROXYGEN_CLIENT_ID: ${{ secrets.NEW_PROXYGEN_CLIENT_ID }}
NEW_PROXYGEN_KEY_ID: ${{ secrets.NEW_PROXYGEN_KEY_ID }}
NEW_PROXYGEN_PRIVATE_KEY: ${{ secrets.NEW_PROXYGEN_PRIVATE_KEY }}
- name: Run End to End Tests
uses: ./.github/actions/run-end-to-end-tests
env:
Expand All @@ -78,9 +78,9 @@ jobs:
additional_path: "pr-${{ github.event.number }}"
type_of_deployment: "sandbox"
secrets:
PROXYGEN_CLIENT_ID: ${{ secrets.PROXYGEN_CLIENT_ID }}
PROXYGEN_KEY_ID: ${{ secrets.PROXYGEN_KEY_ID }}
PROXYGEN_PRIVATE_KEY: ${{ secrets.PROXYGEN_PRIVATE_KEY }}
NEW_PROXYGEN_CLIENT_ID: ${{ secrets.NEW_PROXYGEN_CLIENT_ID }}
NEW_PROXYGEN_KEY_ID: ${{ secrets.NEW_PROXYGEN_KEY_ID }}
NEW_PROXYGEN_PRIVATE_KEY: ${{ secrets.NEW_PROXYGEN_PRIVATE_KEY }}

run-postman-collection:
name: "Run Postman Collection"
Expand Down
6 changes: 3 additions & 3 deletions app/api/domain/forward_response_model.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from pydantic import BaseModel, ConfigDict, field_validator
from pydantic import BaseModel, ConfigDict, SerializeAsAny, field_validator
Comment thread
ehallam marked this conversation as resolved.
from pydantic.alias_generators import to_camel


Expand Down Expand Up @@ -26,8 +26,8 @@ class ForwardResponse(BaseModel):
session_id: str
supplier: str
ods_code: str
user: Demographics
patients: list[Demographics]
user: SerializeAsAny[Demographics]
patients: list[SerializeAsAny[Demographics]]

@field_validator("patients")
def patients_must_not_be_empty(cls, v: list) -> list: # noqa: N805
Expand Down
14 changes: 7 additions & 7 deletions app/api/infrastructure/emis/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
EffectiveServices,
Identifier,
MedicalRecordPermissions,
Patient,
Person,
SessionRequestData,
SessionRequestHeaders,
SessionResponse,
Expand Down Expand Up @@ -114,7 +114,7 @@ def transform_response(self, response: dict) -> SessionResponse:
endUserSessionId=response.get("EndUserSessionId"),
supplier=self.supplier,
odsCode=self.request.patient_ods_code,
user=Patient(
user=Person(
firstName=response.get("FirstName"),
surname=response.get("Surname"),
title=response.get("Title"),
Expand Down Expand Up @@ -145,20 +145,20 @@ def _mock_response(self) -> dict:
with Path((BASE_DIR) / "data" / "mocked_response.json").open("r") as f:
return load(f)

def _parse_patients(self, patient_links: list) -> list[Patient]:
"""Parsing raw data from Client into structual model.
def _parse_patients(self, patient_links: list) -> list[Person]:
"""Parsing raw data from Client into structural model.

Args:
patient_links (dict): Raw data containing information about patients
patient_links (list[dict]): Raw data containing information about patients

Returns:
list[Patient]: Parsed information about patients
list[Person]: Parsed information about patients
"""
parsed_patients = []
for patient in patient_links:
raw_permissions = patient.get("EffectiveServices", {})
parsed_patients.append(
Patient(
Person(
firstName=patient.get("FirstName"),
surname=patient.get("Surname"),
title=patient.get("Title"),
Expand Down
6 changes: 3 additions & 3 deletions app/api/infrastructure/emis/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ class EffectiveServices(Permissions):
medical_record: MedicalRecordPermissions


class Patient(Demographics):
class Person(Demographics):
"""Base Model for User and Patient."""

model_config = ConfigDict(alias_generator=to_camel)
Expand All @@ -99,5 +99,5 @@ class SessionResponse(ForwardResponse):
model_config = ConfigDict(alias_generator=to_camel)

end_user_session_id: str
user: Patient
patients: list[Patient]
user: Person
patients: list[Person]
8 changes: 4 additions & 4 deletions app/api/infrastructure/emis/tests/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
EffectiveServices,
Identifier,
MedicalRecordPermissions,
Patient,
Person,
SessionResponse,
)

Expand Down Expand Up @@ -140,7 +140,7 @@ def test_emis_client_transform_response(client: EmisClient) -> None:
endUserSessionId="SESS_mDq6nE2b8R7KQ0v",
supplier="EMIS",
odsCode="some patient ods code",
user=Patient(
user=Person(
firstName="Alex",
surname="Taylor",
title="Mr",
Expand Down Expand Up @@ -170,7 +170,7 @@ def test_emis_client_transform_response(client: EmisClient) -> None:
),
),
patients=[
Patient(
Person(
firstName="Jane",
surname="Doe",
title="Mrs",
Expand Down Expand Up @@ -201,7 +201,7 @@ def test_emis_client_transform_response(client: EmisClient) -> None:
),
),
),
Patient(
Person(
firstName="Ella",
surname="Taylor",
title="Ms",
Expand Down
2 changes: 1 addition & 1 deletion app/api/infrastructure/tpp/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ def _mock_response(self) -> dict:
return xmltodict.parse(mocked_response)

def _parse_patients(self, data: dict) -> list[Person]:
"""Parsing raw data from Client into structual model.
"""Parsing raw data from Client into structural model.
Args:
data (dict): Raw data containing information about multiple patients
Expand Down
6 changes: 3 additions & 3 deletions proxygen/credentials.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
base_url: https://identity.prod.api.platform.nhs.uk/realms/api-producers
client_id: CLIENT_ID_TO_BE_REPLACED
key_id: KEY_ID_TO_BE_REPLACED
private_key_path: PRIVATE_KEY_PATH_TO_BE_REPLACED
client_id: NEW_CLIENT_ID_TO_BE_REPLACED
key_id: NEW_KEY_ID_TO_BE_REPLACED
private_key_path: NEW_PRIVATE_KEY_PATH_TO_BE_REPLACED