├── .dependabot
└── config.yml
├── .git-config
└── hooks
│ ├── commit-msg
│ └── pre-commit
├── .github
├── renovate.json
└── workflows
│ ├── pr-title-validation.yml
│ ├── stale.yml
│ └── swagger.yml
├── .gitignore
├── .travis.yml
├── Dockerfile
├── Jenkinsfile_CNP
├── Jenkinsfile_nightly
├── Jenkinsfile_parameterized
├── LICENSE
├── README-CALLBACKS.md
├── README.md
├── audit.json
├── bin
├── add-org-roles-to-users.sh
├── add-roles.sh
├── import-bpmn-diagram.sh
├── import-dmn-diagram.sh
├── import-wa-bpmn-diagram.sh
├── pull-latest-camunda-wa-files.sh
├── pull-latest-dmn-files.sh
├── run-in-docker.sh
├── setup-devuser-preview-env.sh
├── utils
│ ├── aip_scripts
│ │ ├── create-test-user.zsh
│ │ └── get_idam_token.zsh
│ ├── ccd-add-role.sh
│ ├── idam-lease-service-token.sh
│ ├── idam-service-token-aat.sh
│ ├── idam-user-id.sh
│ ├── idam-user-token-aat.sh
│ ├── idam-user-token.sh
│ ├── organisational-role-assignment.sh
│ ├── python_scripts
│ │ ├── convert_json_to_txt.py
│ │ ├── create_jsons_from_event_csv.py
│ │ ├── es_dlq_scripts
│ │ │ └── process-es-dlq-files-extract-unique-cases.py
│ │ ├── field_redaction_jsons
│ │ │ └── field_redactions.json
│ │ ├── filepath_settings.py
│ │ ├── helpers.py
│ │ ├── init.py
│ │ ├── input_csv_files
│ │ │ └── dummy.txt
│ │ ├── output_csv_files
│ │ │ └── dummy.txt
│ │ ├── output_jsons
│ │ │ └── dummy.txt
│ │ ├── prep_import_data.py
│ │ ├── redact_info_from_json.py
│ │ ├── tests.py
│ │ └── unique_field_types.csv
│ └── system-user-role-assignment.sh
├── validate_case_api.js
└── variables
│ ├── load-dev-user-preview-environment-variables.sh
│ └── load-preview-environment-variables.sh
├── build.gradle
├── catalog-info.yaml
├── charts
└── ia-case-api
│ ├── Chart.yaml
│ ├── values.aat.template.yaml
│ ├── values.preview.template.yaml
│ └── values.yaml
├── config
├── checkstyle
│ └── checkstyle.xml
├── fortify-client.properties
└── owasp
│ └── suppressions.xml
├── docker-compose.yml
├── docker-pactbroker-compose.yml
├── functional-output
└── .gitignore
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── infrastructure
├── .terraform-version
├── aat.tfvars
├── demo.tfvars
├── ithc.tfvars
├── main.tf
├── output.tf
├── preview.tfvars
├── prod.tfvars
├── sprod.tfvars
├── state.tf
├── test_config.tf
└── variables.tf
├── lib
└── applicationinsights.json
├── lombok.config
├── package.json
├── src
├── contractTest
│ ├── java
│ │ └── uk
│ │ │ └── gov
│ │ │ └── hmcts
│ │ │ └── reform
│ │ │ └── iacaseapi
│ │ │ └── consumer
│ │ │ ├── ccd
│ │ │ ├── AssignCaseAccessConsumerTest.java
│ │ │ ├── CcdCaseAssignmentConsumerTest.java
│ │ │ ├── CcdCaseAssignmentProviderBaseTest.java
│ │ │ ├── CcdSupplementaryConsumerTest.java
│ │ │ └── CcdSupplementaryProviderBaseTest.java
│ │ │ ├── fee
│ │ │ ├── FeeApiConsumerApplication.java
│ │ │ └── FeeApiConsumerTest.java
│ │ │ ├── idam
│ │ │ ├── IdamApiConsumerTest.java
│ │ │ └── IdamConsumerApplication.java
│ │ │ ├── refdata
│ │ │ ├── LocationRefDataConsumerTest.java
│ │ │ ├── ProfessionalOrganisationConsumerTest.java
│ │ │ ├── ProfessionalUsersConsumerTest.java
│ │ │ ├── RefDataConsumerApplication.java
│ │ │ └── RefDataConsumerTest.java
│ │ │ └── roleassignment
│ │ │ ├── RoleAssignmentApiConsumerTest.java
│ │ │ ├── RoleAssignmentConsumerApplication.java
│ │ │ └── RoleAssignmentQueryConsumerTest.java
│ └── resources
│ │ ├── application.properties
│ │ └── logback-test.xml
├── functionalTest
│ ├── java
│ │ └── uk
│ │ │ └── gov
│ │ │ └── hmcts
│ │ │ └── reform
│ │ │ └── iacaseapi
│ │ │ ├── CcdCaseCreationTest.java
│ │ │ ├── CcdScenarioRunnerTest.java
│ │ │ ├── ConfigValidationTest.java
│ │ │ ├── DataFixingTest.java
│ │ │ ├── EndpointSecurityTest.java
│ │ │ ├── HearingsUpdateHearingRequestFunctionalTest.java
│ │ │ ├── RecordAdjournmentDetailsPreparerFunctionalTest.java
│ │ │ ├── RecordAdjournmentDetailsStateHandlerFunctionalTest.java
│ │ │ ├── WelcomeTest.java
│ │ │ ├── config
│ │ │ └── DocumentUploadClientApiConfiguration.java
│ │ │ ├── fixtures
│ │ │ ├── DocumentManagementFilesFixture.java
│ │ │ ├── Fixture.java
│ │ │ └── documents
│ │ │ │ ├── CDAMDocumentManagementUploader.java
│ │ │ │ ├── DMDocumentManagementUploader.java
│ │ │ │ ├── DocumentManagementUploader.java
│ │ │ │ └── DocumentUploader.java
│ │ │ ├── infrastructure
│ │ │ └── clients
│ │ │ │ └── LaunchDarklyTestFeatureToggler.java
│ │ │ ├── util
│ │ │ ├── AuthorizationHeadersProvider.java
│ │ │ ├── BinaryResourceLoader.java
│ │ │ ├── CDAMSystemDocumentManagementUploader.java
│ │ │ ├── DMSystemDocumentManagementUploader.java
│ │ │ ├── IdamAuthProvider.java
│ │ │ ├── LaunchDarklyFunctionalTestClient.java
│ │ │ ├── MapFieldAssertor.java
│ │ │ ├── MapMerger.java
│ │ │ ├── MapSerializer.java
│ │ │ ├── MapValueExpander.java
│ │ │ ├── MapValueExtractor.java
│ │ │ ├── StringResourceLoader.java
│ │ │ └── SystemDocumentManagementUploader.java
│ │ │ └── verifiers
│ │ │ ├── CaseDataVerifier.java
│ │ │ └── Verifier.java
│ └── resources
│ │ ├── application-functional.yaml
│ │ ├── documents
│ │ ├── doc1.pdf
│ │ ├── doc2.pdf
│ │ └── doc3.pdf
│ │ ├── scenarios
│ │ ├── DIAC-1043-appeal-submitted-in-time-admin-in-country.json
│ │ ├── DIAC-1043-appeal-submitted-in-time-admin-out-of-country.json
│ │ ├── DIAC-1043-appeal-submitted-out-of-time-admin-in-country.json
│ │ ├── DIAC-1043-appeal-submitted-out-of-time-non-admin-in-country.json
│ │ ├── DIAC-323-appeal-submitted-asylum-support.json
│ │ ├── DIAC-323-appeal-submitted-exceptional-circumstances.json
│ │ ├── DIAC-323-appeal-submitted-help-with-fees.json
│ │ ├── DIAC-323-appeal-submitted-home-office-fee-waiver.json
│ │ ├── DIAC-323-appeal-submitted-legal-aid.json
│ │ ├── DIAC-323-appeal-submitted-section-17.json
│ │ ├── DIAC-323-appeal-submitted-section-20.json
│ │ ├── DIAC-323-request-fee-remission-asylum-support.json
│ │ ├── DIAC-323-request-fee-remission-exceptional-circustances.json
│ │ ├── DIAC-323-request-fee-remission-help-with-fees.json
│ │ ├── DIAC-323-request-fee-remission-home-office-fee-waiver.json
│ │ ├── DIAC-323-request-fee-remission-legal-aid.json
│ │ ├── DIAC-323-request-fee-remission-section-17.json
│ │ ├── DIAC-323-request-fee-remission-section-20.json
│ │ ├── DIAC-86-update-hearing-bundle-about-to-start-adjourned.json
│ │ ├── DIAC-86-update-hearing-bundle-about-to-start-decision.json
│ │ ├── DIAC-86-update-hearing-bundle-about-to-start-preHearing.json
│ │ ├── DIAC-86-update-hearing-bundle-adjourned.json
│ │ ├── DIAC-86-update-hearing-bundle-appealTakenOffline.json
│ │ ├── DIAC-86-update-hearing-bundle-confirmation-adjourned.json
│ │ ├── DIAC-86-update-hearing-bundle-confirmation-appealTakenOffline.json
│ │ ├── DIAC-86-update-hearing-bundle-confirmation-decision.json
│ │ ├── DIAC-86-update-hearing-bundle-confirmation-preHearing.json
│ │ ├── DIAC-86-update-hearing-bundle-decision.json
│ │ ├── DIAC-86-update-hearing-bundle-preHearing.json
│ │ ├── DIAC-86-updated-hearing-bundle-about-to-start-appealTakenOffline.json
│ │ ├── RIA-1147-RIA-1400-exit-appeal-from-the-online-service.json
│ │ ├── RIA-1147-exit-appeal-from-the-online-service-confirmation.json
│ │ ├── RIA-1152-&-1153-generate-decision-and-reasons.json
│ │ ├── RIA-1278-apc-upload-additional-ho-evidence-submit.json
│ │ ├── RIA-1278-generic-upload-additional-ho-evidence-submit.json
│ │ ├── RIA-1278-lart-upload-additional-ho-evidence-submit.json
│ │ ├── RIA-1278-pou-upload-additional-ho-evidence-submit.json
│ │ ├── RIA-1278-upload-additional-evidence-ho-action-available.json
│ │ ├── RIA-1278-upload-additional-evidence-ho-confirmation.json
│ │ ├── RIA-1280-generate-decision-and-reasons-judge.json
│ │ ├── RIA-1293-ftpa-appellant-confirmation.json
│ │ ├── RIA-1293-ftpa-appellant-duplicate-submit-validation.json
│ │ ├── RIA-1293-ftpa-appellant-in-time-submit.json
│ │ ├── RIA-1293-ftpa-appellant-out-of-time-flag-on-submit.json
│ │ ├── RIA-1293-ftpa-appellant-out-of-time-submission-confirmation.json
│ │ ├── RIA-1293-ftpa-appellant-out-of-time-submit.json
│ │ ├── RIA-1308-upload-respondent-evidence-amend-homeoffice-apc-submit.json
│ │ ├── RIA-1308-upload-respondent-evidence-amend-homeoffice-generic-submit.json
│ │ ├── RIA-1308-upload-respondent-evidence-homeoffice-confirmation.json
│ │ ├── RIA-1308-upload-respondent-evidence-homeoffice-superuser-confirmation.json
│ │ ├── RIA-1308-upload-respondent-evidence-new-homeoffice-apc-submit.json
│ │ ├── RIA-1308-upload-respondent-evidence-new-homeoffice-generic-submit.json
│ │ ├── RIA-1309-upload-appeal-response-homeoffice-confirmation-generic-user.json
│ │ ├── RIA-1309-upload-appeal-response-homeoffice-confirmation.json
│ │ ├── RIA-1309-upload-appeal-response-homeoffice-submit-generic-user.json
│ │ ├── RIA-1309-upload-appeal-response-homeoffice-submit.json
│ │ ├── RIA-1358-RIA-4293-RIA-7246-update-legal-representatives-details.json
│ │ ├── RIA-1359-RIA-1497-RIA-2338-edit-appeal-after-submit-in-time-submit.json
│ │ ├── RIA-1359-edit-appeal-after-submit-in-time-confirmation.json
│ │ ├── RIA-1359-edit-appeal-after-submit-out-of-time-confirmation.json
│ │ ├── RIA-1359-record-edit-appeal-after-submit-application-confirmation.json
│ │ ├── RIA-1379-RIA-2694-upload-respondent-evidence-direction-due-date-on-submission-date.json
│ │ ├── RIA-1434-leadership-judge-record-appellant-ftpa-decision-confirmation.json
│ │ ├── RIA-1434-leadership-judge-record-appellant-ftpa-decision.json
│ │ ├── RIA-1434-leadership-judge-record-respondent-ftpa-decision.json
│ │ ├── RIA-1485-RIA-1500-record-granted-time-extension-application-confirmation.json
│ │ ├── RIA-1485-record-granted-time-extension-application-in-wrong-state.json
│ │ ├── RIA-1485-record-granted-time-extension-application.json
│ │ ├── RIA-1485-record-granted-transfer-application-confirmation.json
│ │ ├── RIA-1485-record-granted-transfer-application-in-wrong-state.json
│ │ ├── RIA-1485-record-granted-transfer-application.json
│ │ ├── RIA-1485-record-granted-withdraw-application-confirmation.json
│ │ ├── RIA-1485-record-granted-withdraw-application.json
│ │ ├── RIA-1485-record-refused-application-confirmation.json
│ │ ├── RIA-1485-record-refused-application.json
│ │ ├── RIA-1603-upload-addendum-evidence-action-available.json
│ │ ├── RIA-1603-upload-addendum-evidence-confirmation.json
│ │ ├── RIA-1603-upload-addendum-evidence-submit.json
│ │ ├── RIA-1654-RIA-2851-edit-case-listing-admin-officer.json
│ │ ├── RIA-1742-flag-case-confirmation.json
│ │ ├── RIA-1742-flag-case-with-anonymity-flag.json
│ │ ├── RIA-1742-flag-case-with-complex-case-flag.json
│ │ ├── RIA-1742-flag-case-with-deport-flag.json
│ │ ├── RIA-1742-flag-case-with-detained-immigration-appeal-flag.json
│ │ ├── RIA-1742-flag-case-with-foreign-national-offender-flag.json
│ │ ├── RIA-1742-flag-case-with-potentially-violent-person-flag.json
│ │ ├── RIA-1742-flag-case-with-unacceptable-customer-behaviour-flag.json
│ │ ├── RIA-1742-flag-case-with-unaccompanied-minor-flag.json
│ │ ├── RIA-1789-RIA-2694-request-case-building.json
│ │ ├── RIA-1789-request-case-building-confirmation.json
│ │ ├── RIA-1794-RIA-2694-request-response-review.json
│ │ ├── RIA-1810-upload-amend-appeal-response-add-new-homeoffice-generic-submit.json
│ │ ├── RIA-1810-upload-amend-appeal-response-add-new-homeoffice-lart-submit.json
│ │ ├── RIA-1845-upload-addendum-evidence-legal-rep-action-available.json
│ │ ├── RIA-1845-upload-addendum-evidence-legal-rep-confirmation.json
│ │ ├── RIA-1845-upload-addendum-evidence-legal-rep-submit.json
│ │ ├── RIA-1925-upload-decision-letter.json
│ │ ├── RIA-1935-upload-addendum-evidence-ho-action-available.json
│ │ ├── RIA-1935-upload-addendum-evidence-ho-confirmation.json
│ │ ├── RIA-1935-upload-addendum-evidence-ho-submit.json
│ │ ├── RIA-2010-3628-add-stateless-edit-appeal.json
│ │ ├── RIA-2010-3628-add-stateless-start-appeal.json
│ │ ├── RIA-2022-record-agreed-hearing-requirements.json
│ │ ├── RIA-2034-upload-respondent-evidence-amend-homeoffice-apc-about_to_start.json
│ │ ├── RIA-2034-upload-respondent-evidence-amend-homeoffice-apc-errors.json
│ │ ├── RIA-2034-upload-respondent-evidence-case-officer-about_to_start.json
│ │ ├── RIA-2041-list-case-without-submit-hearing-requirements.json
│ │ ├── RIA-2047-RIA-2694-direction-to-request-hearing-requirements.json
│ │ ├── RIA-2048-RIA-2694-request-hearing-requirements-legal-rep.json
│ │ ├── RIA-2048-request-hearing-requirements-legal-rep-allowed-start.json
│ │ ├── RIA-2048-request-hearing-requirements-legal-rep-not-allowed-start.json
│ │ ├── RIA-2110-out-of-country-non-sponsor-no-address.json
│ │ ├── RIA-2110-out-of-country-non-sponsor-with-address.json
│ │ ├── RIA-2122-decision-without-hearing.json
│ │ ├── RIA-2176-build-case-legal-rep-list-uploaded-files-about_to_start.json
│ │ ├── RIA-2177-add-appeal-response-case-officer-about_to_start.json
│ │ ├── RIA-2177-upload-appeal-response-amend-homeoffice-lart-about_to_start.json
│ │ ├── RIA-2177-upload-appeal-response-amend-homeoffice-lart-errors.json
│ │ ├── RIA-2208-add-case-note-to-admin-officer.json
│ │ ├── RIA-2208-add-case-note-to-judge.json
│ │ ├── RIA-2208-send-non-standard-direction_judge.json
│ │ ├── RIA-2239-judge-end-appeal.json
│ │ ├── RIA-2240-change-direction-due-date-start-judge.json
│ │ ├── RIA-2240-change-direction-due-date-submit-judge.json
│ │ ├── RIA-2243-admin-officer-list-case-error.json
│ │ ├── RIA-230-protection-grounds.json
│ │ ├── RIA-2323-edit-case-listing-docmosis-disabled-nottingham.json
│ │ ├── RIA-2323-edit-case-listing-docmosis-enabled-nottingham.json
│ │ ├── RIA-2323-hearing-notice-docmosis-disabled-coventry.json
│ │ ├── RIA-2323-hearing-notice-docmosis-enabled-coventry.json
│ │ ├── RIA-236-revocation-grounds.json
│ │ ├── RIA-2373-record-granted-update-hearing-requirements-before-prehearing.json
│ │ ├── RIA-2373-record-granted-update-hearing-requirements.json
│ │ ├── RIA-2374-update-hearing-adjustments-validation.json
│ │ ├── RIA-2374-update-hearing-adjustments.json
│ │ ├── RIA-2468-share-case-validation.json
│ │ ├── RIA-2493-RIA-2541-request-reasons-for-appeal.json
│ │ ├── RIA-2493-request-reasons-for-appeal-repped.json
│ │ ├── RIA-2513-remove-flag-confirmation.json
│ │ ├── RIA-2513-remove-flag-preparer.json
│ │ ├── RIA-2513-remove-flag.json
│ │ ├── RIA-2520-record-allocated-judge.json
│ │ ├── RIA-2527-resident-judge-record-appellant-ftpa-decision-confirmation.json
│ │ ├── RIA-2527-resident-judge-record-appellant-ftpa-decision.json
│ │ ├── RIA-2527-resident-judge-record-respondent-ftpa-decision.json
│ │ ├── RIA-2555-hearing-requirements-missing-flag .json
│ │ ├── RIA-2558-RIA-2644-RIA-2739-change-hearing-centre.json
│ │ ├── RIA-2558-RIA-2644-change-hearing-centre.json
│ │ ├── RIA-2558-change-hearing-centre.json
│ │ ├── RIA-2581-ftpa-respondent-duplicate-homeoffice-generic-submit-validation.json
│ │ ├── RIA-2581-ftpa-respondent-duplicate-homeoffice-pou-submit-validation.json
│ │ ├── RIA-2581-ftpa-respondent-homeoffice-generic-confirmation.json
│ │ ├── RIA-2581-ftpa-respondent-homeoffice-pou-confirmation.json
│ │ ├── RIA-2581-ftpa-respondent-in-time-homeoffice-generic-submit.json
│ │ ├── RIA-2581-ftpa-respondent-in-time-homeoffice-pou-submit.json
│ │ ├── RIA-2581-ftpa-respondent-out-of-time-flag-set-homeoffice-generic.json
│ │ ├── RIA-2581-ftpa-respondent-out-of-time-flag-set-homeoffice-pou.json
│ │ ├── RIA-2581-ftpa-respondent-out-of-time-homeoffice-generic-submit.json
│ │ ├── RIA-2581-ftpa-respondent-out-of-time-homeoffice-pou-submit.json
│ │ ├── RIA-2581-ftpa-respondent-out-of-time-submission-homeoffice-generic-confirmation.json
│ │ ├── RIA-2581-ftpa-respondent-out-of-time-submission-homeoffice-pou-confirmation.json
│ │ ├── RIA-2620-upload-hearing-recording-confirmation.json
│ │ ├── RIA-2634-change-hearing-centre.json
│ │ ├── RIA-2715-appeal-submitted-access-denied-exception.json
│ │ ├── RIA-2723-case-data-maintained-in-pre-hearing-state-change.json
│ │ ├── RIA-2733-start-appeal-journey-update.json
│ │ ├── RIA-2774-force-request-case-building.json
│ │ ├── RIA-2775-force-case-progression-to-case-under-review.json
│ │ ├── RIA-2776-force-case-to-submit-hearing-requirements.json
│ │ ├── RIA-2783-edit-documents.json
│ │ ├── RIA-2864-ConfirmClarifyingQuestions.json
│ │ ├── RIA-2864-HandleClarifyingQuestions.json
│ │ ├── RIA-2864-PrepairClarifyingQuestions.json
│ │ ├── RIA-2957-RIA-2959-RIA-3712-adjourn-without-a-date.json
│ │ ├── RIA-2957-RIA-3712-adjourn-without-a-date-confirmation.json
│ │ ├── RIA-2960-restore-case-state.json
│ │ ├── RIA-3017-ConfirmCmaRequirements.json
│ │ ├── RIA-3017-HandleCmaRequirements.json
│ │ ├── RIA-3017-PrepairCmaRequirements.json
│ │ ├── RIA-3021-review-cma-requirements.json
│ │ ├── RIA-3022-list-cma-confirmation.json
│ │ ├── RIA-3022-list-cma-start.json
│ │ ├── RIA-3039-end-appeal-state-saved-for-reinstate.json
│ │ ├── RIA-3039-reinstate-ended-appeal-to-previous-state.json
│ │ ├── RIA-3039-reinstate-error-if-not-ended-appeal.json
│ │ ├── RIA-3059-upload-sensitive-documents-confirmation.json
│ │ ├── RIA-3079-flag-case-as-minor-edit-appeal-after-submission.json
│ │ ├── RIA-3079-flag-case-as-minor-submit-appeal.json
│ │ ├── RIA-3079-flag-case-as-no-minor-edit-appeal-after-submission.json
│ │ ├── RIA-3079-flag-case-as-no-minor-submit-appeal.json
│ │ ├── RIA-3084-submit-appeal-with-help-with-fees.json
│ │ ├── RIA-3085-submit-appeal-with-exceptional-circumstances-remission.json
│ │ ├── RIA-3088-submit-appeal-with-remission.json
│ │ ├── RIA-3091-update-cma-appointment-admin.json
│ │ ├── RIA-3091-update-cma-appointment.json
│ │ ├── RIA-3129-create-case-summary-for-reheard.json
│ │ ├── RIA-3131-ftpa-reheard-prepare-decision-and-reasons-flag-on.json
│ │ ├── RIA-3131-ftpa-reheard-start-decision-and-reasons-flag-on.json
│ │ ├── RIA-3131-normal-case-prepare-decision-and-reasons-flag-on.json
│ │ ├── RIA-3131-normal-case-start-decision-and-reasons-flag-on.json
│ │ ├── RIA-3132-ftpa-reheard-appellant-flag-on.json
│ │ ├── RIA-3132-ftpa-reheard-respondent-flag-on.json
│ │ ├── RIA-3132-ftpa-reheard-send-decision-and-reasons-start.json
│ │ ├── RIA-3132-send-decision-and-reasons-start.json
│ │ ├── RIA-3144-SetupAppellantDocuments.json
│ │ ├── RIA-3218-apply-for-a-late-remission.json
│ │ ├── RIA-3271-3628-home-office-response-for-appeal-submitted.json
│ │ ├── RIA-3271-home-office-integration-flag-set.json
│ │ ├── RIA-3275-fixing-duplicate-directions.json
│ │ ├── RIA-3291-RIA-3295-RIA-3329-unlink-appeal.json
│ │ ├── RIA-3291-RIA-3295-unlink-appeal.json
│ │ ├── RIA-3291-link-appeal-confirmation.json
│ │ ├── RIA-3291-unlink-appeal-confirmation.json
│ │ ├── RIA-3291-unlink-appeal-preparer.json
│ │ ├── RIA-3291-unlink-appeal.json
│ │ ├── RIA-3295-RIA-3329-link-appeal.json
│ │ ├── RIA-3295-link-appeal.json
│ │ ├── RIA-3298-remove-deport-flag.json
│ │ ├── RIA-3302-end-appeal-failure-confirmation-admin.json
│ │ ├── RIA-3302-end-appeal-failure-confirmation-caseofficer.json
│ │ ├── RIA-3302-end-appeal-failure-confirmation-judge.json
│ │ ├── RIA-3302-end-appeal-success-confirmation-admin.json
│ │ ├── RIA-3302-end-appeal-success-confirmation-caseofficer.json
│ │ ├── RIA-3302-end-appeal-success-confirmation-judge.json
│ │ ├── RIA-3302-ho-notifications-for-end-appeal-with-appeal-submitted-co.json
│ │ ├── RIA-3305-ho-notifications-for-async-stitching-complete.json
│ │ ├── RIA-3306-home-office-notifications-for-case-listing.json
│ │ ├── RIA-3307-decide-ftpa-application-appellant-ftpa-decision-ho-notification-remade-allowed.json
│ │ ├── RIA-3307-decide-ftpa-application-appellant-ftpa-decision-ho-notification.json
│ │ ├── RIA-3307-decide-ftpa-application-respondent-ftpa-decision-ho-notification-remade-dismissed.json
│ │ ├── RIA-3307-decide-ftpa-application-respondent-ftpa-decision-ho-notification.json
│ │ ├── RIA-3307-leadership-judge-record-appellant-ftpa-decision-ho-notification.json
│ │ ├── RIA-3307-leadership-judge-respondent-ftpa-decision-ho-notification.json
│ │ ├── RIA-3307-resident-judge-appellant-ftpa-decision-ho-notification-remade-allowed.json
│ │ ├── RIA-3307-resident-judge-appellant-ftpa-decision-ho-notification.json
│ │ ├── RIA-3307-resident-judge-respondent-ftpa-decision-ho-notification-remade-dismissed.json
│ │ ├── RIA-3307-resident-judge-respondent-ftpa-decision-ho-notification.json
│ │ ├── RIA-3308-home-office-notifications-for-request_respondent_evidence-multiple-nationalities.json
│ │ ├── RIA-3308-home-office-notifications-for-request_respondent_evidence-stateless.json
│ │ ├── RIA-3308-home-office-notifications-for-request_respondent_evidence.json
│ │ ├── RIA-3309-ho-notifications-for-edit-case-listing-decision.json
│ │ ├── RIA-3309-ho-notifications-for-edit-case-listing-finalbundling.json
│ │ ├── RIA-3309-ho-notifications-for-edit-case-listing-prehearing.json
│ │ ├── RIA-3309-ho-notifications-for-edit-case-listing-prepareforhearing.json
│ │ ├── RIA-3313-ftpa-appellant-notification-decided.json
│ │ ├── RIA-3313-ftpa-appellant-notification-ftpa-decided.json
│ │ ├── RIA-3313-ftpa-appellant-notification-ftpa-submitted.json
│ │ ├── RIA-3313-ftpa-respondent-notification-homeoffice-generic-decided.json
│ │ ├── RIA-3313-ftpa-respondent-notification-homeoffice-generic-ftpa-decided.json
│ │ ├── RIA-3313-ftpa-respondent-notification-homeoffice-generic-ftpa-submitted.json
│ │ ├── RIA-3313-ftpa-respondent-notification-homeoffice-pou-decided.json
│ │ ├── RIA-3313-ftpa-respondent-notification-homeoffice-pou-ftpa-decided.json
│ │ ├── RIA-3313-ftpa-respondent-notification-homeoffice-pou-ftpa-submitted.json
│ │ ├── RIA-3314-send-decision-reasons-success-confirmation-judge.json
│ │ ├── RIA-3316-ho-notifications-for-edit-adjourn-no-date-decision.json
│ │ ├── RIA-3316-ho-notifications-for-edit-adjourn-no-date-finalbundling.json
│ │ ├── RIA-3316-ho-notifications-for-edit-adjourn-no-date-prehearing.json
│ │ ├── RIA-3316-ho-notifications-for-edit-adjourn-no-date-prepareforhearing.json
│ │ ├── RIA-3317-derive-hearing-center-from-postcode-newcastle.json
│ │ ├── RIA-3332-home-office-integration-flag-set-mark-appeal-paid.json
│ │ ├── RIA-3332-home-office-response-for-appeal-submitted-mark-appeal-paid.json
│ │ ├── RIA-3341-edit-documents-mid-event-error.json
│ │ ├── RIA-33411-edit-documents-mid-event.json
│ │ ├── RIA-3366-upload-addendum-evidence-admin-action-available.json
│ │ ├── RIA-3366-upload-addendum-evidence-admin-confirmation.json
│ │ ├── RIA-3366-upload-addendum-evidence-admin-submit.json
│ │ ├── RIA-3386-list-case-ftpa-reheard-without-hearing-requirements-flag-on.json
│ │ ├── RIA-3386-list-case-without-hearing-requirements-flag-off.json
│ │ ├── RIA-3386-list-case-without-hearing-requirements-flag-on.json
│ │ ├── RIA-3389-home-office-reference-formatter-letter-plus-seven-digits.json
│ │ ├── RIA-3389-home-office-reference-formatter-non-standard.json
│ │ ├── RIA-3389-home-office-reference-formatter-without-slash.json
│ │ ├── RIA-3389-home-office-reference-formatter.json
│ │ ├── RIA-3390-home-office-integration-flag-set.json
│ │ ├── RIA-3390-request-home-office-data-error-already-existing.json
│ │ ├── RIA-3390-request-home-office-data-fail.json
│ │ ├── RIA-3390-request-home-office-data-success.json
│ │ ├── RIA-3391-view-sensitive-documents.json
│ │ ├── RIA-3409-error-on-payment-when-appeal-in-paidStatus.json
│ │ ├── RIA-3451-case-officer-decide-an-application.json
│ │ ├── RIA-3451-judge-decide-an-application.json
│ │ ├── RIA-3457-legal-rep-make-an-application.json
│ │ ├── RIA-3457-respondent-make-an-application.json
│ │ ├── RIA-3473-mark-hu-appeal-as-paid.json
│ │ ├── RIA-3473-mark-pa-appeal-as-paid.json
│ │ ├── RIA-3498-error-on-submit-when-option-is-payNow-for-HU.json
│ │ ├── RIA-3498-error-on-submit-when-option-is-payNow-for-PA.json
│ │ ├── RIA-3517-record-remission-decision-approved-validation.json
│ │ ├── RIA-3517-record-remission-decision-approved.json
│ │ ├── RIA-3517-record-remission-decision-partially-approved.json
│ │ ├── RIA-3553-record-edit-appeal-after-submit-appeal-confirmation.json
│ │ ├── RIA-3555-RIA-3763-RIA-3784-submit-new-hearing-requirements.json
│ │ ├── RIA-3582-RIA-3763-RIA-3784-review-submit-hearing-adjustments-cleared-adjustments.json
│ │ ├── RIA-3582-RIA-3763-RIA-3784-review-submit-hearing-adjustments-current-adjustments-standard-appeal.json
│ │ ├── RIA-3582-RIA-3763-RIA-3784-review-submit-hearing-adjustments-current-adjustments.json
│ │ ├── RIA-3582-record-agreed-hearing-requirements-ftpa-reheard.json
│ │ ├── RIA-3582-record-agreed-hearing-requirements.json
│ │ ├── RIA-3600-home-office-notifications-for-request_respondent_review.json
│ │ ├── RIA-362-RIA-1673-edit-case-listing-docmosis-disabled.json
│ │ ├── RIA-362-RIA-1673-edit-case-listing-docmosis-enabled.json
│ │ ├── RIA-362-edit-case-listing-confirmation.json
│ │ ├── RIA-3634-customise-hearing-bundle-about-to-start.json
│ │ ├── RIA-3634-customise-hearing-bundle.json
│ │ ├── RIA-364-create-case-summary-confirmation.json
│ │ ├── RIA-364-create-case-summary.json
│ │ ├── RIA-365-notify-case-officers-of-submitted-appeal.json
│ │ ├── RIA-3651-flag-case-with-ftpa-flag.json
│ │ ├── RIA-3651-leadership-judge-appellant-reheard32-case-flag-off.json
│ │ ├── RIA-3651-leadership-judge-appellant-reheard32-case-flag.json
│ │ ├── RIA-3651-leadership-judge-appellant-reheard35-case-flag-off.json
│ │ ├── RIA-3651-leadership-judge-appellant-reheard35-case-flag.json
│ │ ├── RIA-3651-leadership-judge-respondent-reheard32-case-flag-off.json
│ │ ├── RIA-3651-leadership-judge-respondent-reheard32-case-flag.json
│ │ ├── RIA-3651-leadership-judge-respondent-reheard35-case-flag-off.json
│ │ ├── RIA-3651-leadership-judge-respondent-reheard35-case-flag.json
│ │ ├── RIA-3651-resident-judge-appellant-reheard32-case-flag-off.json
│ │ ├── RIA-3651-resident-judge-appellant-reheard35-case-flag-off.json
│ │ ├── RIA-3651-resident-judge-respondent-reheard32-case-flag-off.json
│ │ ├── RIA-3651-resident-judge-respondent-reheard35-case-flag-off.json
│ │ ├── RIA-3652-RIA-3555-request-new-hearing-requirements-case-officer.json
│ │ ├── RIA-3652-RIA-3555-request-new-hearing-requirements-judge.json
│ │ ├── RIA-3652-request-new-hearing-requirements-errors-case-officer.json
│ │ ├── RIA-3652-request-new-hearing-requirements-errors-judge.json
│ │ ├── RIA-3680-home-office-reference-formatter.json
│ │ ├── RIA-3680-home-office-reference-mid-event.json
│ │ ├── RIA-3680-home-office-reference-mid-event_edit_appeal.json
│ │ ├── RIA-3683-list-case-start-flag-on.json
│ │ ├── RIA-3683-list-case-submit-flag-off.json
│ │ ├── RIA-3683-list-case-submit-flag-on.json
│ │ ├── RIA-3683-list-reheard-case-start-flag-off.json
│ │ ├── RIA-3683-list-reheard-case-start-flag-on.json
│ │ ├── RIA-3683-list-reheard-case-submit.json
│ │ ├── RIA-3686-submit-appeal-with-legal-aid-remission.json
│ │ ├── RIA-369-appeal-submitted-in-time.json
│ │ ├── RIA-369-appeal-submitted-out-of-time.json
│ │ ├── RIA-3691-home-office-notification-failure-send-direction-confirmation.json
│ │ ├── RIA-3691-home-office-notification-success-send-direction-confirmation-legal-rep.json
│ │ ├── RIA-3691-home-office-notification-success-send-direction-confirmation.json
│ │ ├── RIA-3691-home-office-notifications-for-amend-bundle-send_direction.json
│ │ ├── RIA-3692-home-office-notification-amend-response-for-respondent-review.json
│ │ ├── RIA-3692-home-office-notification-failure-amend-response-confirmation.json
│ │ ├── RIA-3692-home-office-notification-success-amend-response-confirmation.json
│ │ ├── RIA-3693-ho-notifications-for-change-direction-due-date-awaitingRespondentEvidence.json
│ │ ├── RIA-3693-ho-notifications-for-change-direction-due-date-requestRespondentReview.json
│ │ ├── RIA-3693-ho-notifications-for-failure-confirmation-change-direction-due-date-evidence.json
│ │ ├── RIA-3693-ho-notifications-for-failure-confirmation-change-direction-due-date-review.json
│ │ ├── RIA-3693-ho-notifications-for-success-confirmation-change-direction-due-date-evidence.json
│ │ ├── RIA-3693-ho-notifications-for-success-confirmation-change-direction-due-date-review.json
│ │ ├── RIA-3731-remove-representation-cor.json
│ │ ├── RIA-3731-remove-representation.json
│ │ ├── RIA-3734-RIA-7879-case-listing-belfast-hearing-venue.json
│ │ ├── RIA-3761-no-appellant-address-default to legal-rep-address-hearing-centre.json
│ │ ├── RIA-3763-RIA-submit-hearing-requirements-single-requirements-exist.json
│ │ ├── RIA-3763-list-case-without-hearing-requirements-no-requirements-exist-flag-on.json
│ │ ├── RIA-3763-list-case-without-hearing-requirements-single-requirements-exist-flag-on.json
│ │ ├── RIA-3763-submit-reheard-hearing-requirements-multiple-requirements-exist.json
│ │ ├── RIA-3763-submit-reheard-hearing-requirements-single-requirements-exist.json
│ │ ├── RIA-3763-update-hearing-requirements-case-officer-single-requirements-exist.json
│ │ ├── RIA-3763-update-hearing-requirements-single-requirements-exist.json
│ │ ├── RIA-3763-update-reheard-hearing-requirements-multiple-requirements-exist.json
│ │ ├── RIA-3763-update-reheard-hearing-requirements-single-requirements-exist.json
│ │ ├── RIA-3783-home-office-reference-cid-padding-edit-appeal.json
│ │ ├── RIA-3783-home-office-reference-cid-padding.json
│ │ ├── RIA-3792-manage-fee-update-of-fee-update-recorded.json
│ │ ├── RIA-3792-manage-fee-update-of-refund-approved.json
│ │ ├── RIA-3795-manage-fee-update-of-additional-fee-requested.json
│ │ ├── RIA-3795-manage-fee-update-of-fee-update-not-required.json
│ │ ├── RIA-3795-manage-fee-update-of-refund-approved.json
│ │ ├── RIA-3813-manage-fee-update-of-refund-approved-not-required.json
│ │ ├── RIA-3813-manage-fee-update-of-refund-instructed.json
│ │ ├── RIA-3814-manage-fee-update-post-refund-instructed-additional-fee.json
│ │ ├── RIA-3814-manage-fee-update-post-refund-instructed-not-required.json
│ │ ├── RIA-3827-RIA-4238-add_appeal-response-ooc-appeal.json
│ │ ├── RIA-3827-RIA-4238-request-response-review-ooc-appeal.json
│ │ ├── RIA-3827-add_appeal-response-uk-appeal.json
│ │ ├── RIA-3830-record-remission-decision-for-late-remission.json
│ │ ├── RIA-3846-do-not-set-organisation-policy-start-appeal-flag-off.json
│ │ ├── RIA-3846-set-organisation-policy-start-appeal-flag-on.json
│ │ ├── RIA-3848-share-case-org-policy-validation.json
│ │ ├── RIA-385-request-hearing-requirements.json
│ │ ├── RIA-3851-ooc-no-sponsor-company-address-derive-hearing-center.json
│ │ ├── RIA-3851-ooc-no-sponsor-no-company-address-default-hearing-center.json
│ │ ├── RIA-3851-ooc-sponsor-address-derive-hearing-center.json
│ │ ├── RIA-3851-out-of-country-sponsor-start-appeal.json
│ │ ├── RIA-3861-out-of-country-non-sponsor-client-left-country.json
│ │ ├── RIA-3865-flag-case-with-s94b-out-of-country-flag.json
│ │ ├── RIA-3865-remove-flag-s94b-ooc.json
│ │ ├── RIA-3876-out-of-country-screening-no-start-appeal.json
│ │ ├── RIA-3876-out-of-country-screening-start-appeal.json
│ │ ├── RIA-3877-out-of-country-non-sponsor-removal-of-client.json
│ │ ├── RIA-3878-out-of-country-edit-appeal-to-in-country.json
│ │ ├── RIA-3878-out-of-country-edit-appeal-to-out-country.json
│ │ ├── RIA-3880-manage-fee-update-after-fee-update-not-required.json
│ │ ├── RIA-3951-remove-legal-representative-ao-cor.json
│ │ ├── RIA-3951-remove-legal-representative-ao.json
│ │ ├── RIA-3951-remove-legal-representative-tcw-cor.json
│ │ ├── RIA-3951-remove-legal-representative-tcw.json
│ │ ├── RIA-3954-ftpa-appellant-in-time-flag-off-submit-ooc.json
│ │ ├── RIA-3954-ftpa-appellant-out-of-time-flag-on-submit-ooc.json
│ │ ├── RIA-3954-ftpa-respondent-in-time-flag-set-homeoffice-generic-ooc.json
│ │ ├── RIA-3954-ftpa-respondent-out-of-time-flag-set-homeoffice-generic-ooc.json
│ │ ├── RIA-3954-out-of-country-submission-in-time-for-refusal-of-human-rights.json
│ │ ├── RIA-3954-out-of-country-submission-out-of-time-for-refusal-of-human-rights.json
│ │ ├── RIA-4026-appeal-submitted-with-belfast-postcode.json
│ │ ├── RIA-4042-record-out-of-time-decision.json
│ │ ├── RIA-4094-out-of-country-edit-appeal-after-submit-to-out-country-respondent.json
│ │ ├── RIA-4094-out-of-country-edit-appeal-after-submit-to-out-country.json
│ │ ├── RIA-4094-out-of-country-edit-appeal-to-in-country-co.json
│ │ ├── RIA-4094-out-of-country-edit-appeal-to-in-country-judge.json
│ │ ├── RIA-4116-ho-notification-eligible-flag-appeal-submitted.json
│ │ ├── RIA-4116-ho-notifications-existing-cases-response.json
│ │ ├── RIA-4116-ho-notifications-validation-fail-response.json
│ │ ├── RIA-412-RIA-1571-hearing-notice-docmosis-disabled.json
│ │ ├── RIA-412-RIA-1571-hearing-notice-docmosis-enabled.json
│ │ ├── RIA-412-RIA-1571-list-case-confirmation.json
│ │ ├── RIA-412-RIA-1571-list-case-start.json
│ │ ├── RIA-414-send-non-standard-direction.json
│ │ ├── RIA-4234-RIA-4293-previous-representative-details-after-noc.json
│ │ ├── RIA-4234-RIA-4293-previous-representative-details-no-noc.json
│ │ ├── RIA-4235-RIA-4293-update-legal-representatives-details-after-noc.json
│ │ ├── RIA-4272-change-direction-due-date-submit-co.json
│ │ ├── RIA-4272-change-direction-due-date-submit-judge.json
│ │ ├── RIA-4272-direction-publish-on-add-appeal-response.json
│ │ ├── RIA-4272-direction-publish-on-amend-response-for-respondent-review.json
│ │ ├── RIA-4272-direction-publish-on-force-request-case-building.json
│ │ ├── RIA-4272-direction-publish-on-request-case-edit-submit.json
│ │ ├── RIA-4272-direction-publish-on-request-new-hearing-requirements-case-officer.json
│ │ ├── RIA-4272-direction-publish-on-request-response-review.json
│ │ ├── RIA-4272-direction-publish-on-send-home-office-evidence-direction.json
│ │ ├── RIA-4272-direction-publish-on-upload-respondent-evidence.json
│ │ ├── RIA-4293-cleared-fields-update-representative-details.json
│ │ ├── RIA-4293-company-name-ref-data-start-appeal.json
│ │ ├── RIA-4293-persisted-fields-update-representative-details.json
│ │ ├── RIA-4336-appellant-make-an-application.json
│ │ ├── RIA-435-RIA-985-respondent-review-no-appeal-response-added.json
│ │ ├── RIA-435-request-respondent-review-confirmation.json
│ │ ├── RIA-4351-error-upper-tribunal-bundling-appellant-reheard-rule-32.json
│ │ ├── RIA-4351-error-upper-tribunal-bundling-appellant-reheard-rule-35.json
│ │ ├── RIA-4351-error-upper-tribunal-bundling-appellant-remade-rule-32.json
│ │ ├── RIA-4351-error-upper-tribunal-bundling-respondent-reheard-rule-32.json
│ │ ├── RIA-4351-error-upper-tribunal-bundling-respondent-reheard-rule-35.json
│ │ ├── RIA-4351-error-upper-tribunal-bundling-respondent-remade-rule-32.json
│ │ ├── RIA-4351-generate-upper-tribunal-bundle-confirmation.json
│ │ ├── RIA-436-RIA-2087-submit-hearing-requirements.json
│ │ ├── RIA-4437-move-to-pending-payment-about-to-start.json
│ │ ├── RIA-4473-decision-without-hearing-changes.json
│ │ ├── RIA-4540-RIA-4272-direction-publish-on-HandleClarifyingQuestions.json
│ │ ├── RIA-4540-RIA-4272-direction-publish-on-HandleCmaRequirements.json
│ │ ├── RIA-4540-RIA-4272-direction-publish-on-request-case-building.json
│ │ ├── RIA-4540-RIA-4272-direction-publish-on-request-hearing-requirements.json
│ │ ├── RIA-4540-RIA-4272-direction-publish-on-request-reasons-for-appeal.json
│ │ ├── RIA-4540-RIA-4272-direction-publish-on-send-non-standard-direction.json
│ │ ├── RIA-4540-RIA-4272-direction-publish-on-send-respondent-review-direction.json
│ │ ├── RIA-4540-direction-publish-on-request-hearing-requirements-AIP.json
│ │ ├── RIA-4540-direction-publish-on-request-respondent-evidence-direction-AIP.json
│ │ ├── RIA-4540-direction-publish-on-send-respondent-review-direction-AIP.json
│ │ ├── RIA-4540-direction-uniqueid-publish-on-send-home-office-evidence-direction-LR.json
│ │ ├── RIA-4546-edit-appeal-aip-errors.json
│ │ ├── RIA-4664-direction-to-request-hearing-requirements.json
│ │ ├── RIA-4711-add-stateless-edit-appeal-after-submit.json
│ │ ├── RIA-4719-edit-list-case-mid-event.json
│ │ ├── RIA-4719-list-case-mid-event.json
│ │ ├── RIA-4722-complete-clarifying-questions.json
│ │ ├── RIA-4722-direction-request-clarifying-questions.json
│ │ ├── RIA-4722-reinstate-preclarifying-state.json
│ │ ├── RIA-4798-flag-case-with-appeal-on-hold.json
│ │ ├── RIA-4798-remove-case-flag-appeal-on-hold.json
│ │ ├── RIA-480-RIA-600-build-case-append-feature-disabled.json
│ │ ├── RIA-480-RIA-600-build-case-append-feature-enabled.json
│ │ ├── RIA-480-RIA-600-build-case-confirmation-feature-disabled.json
│ │ ├── RIA-480-RIA-600-build-case-confirmation-feature-enabled.json
│ │ ├── RIA-480-RIA-600-build-case-initial-feature-disabled.json
│ │ ├── RIA-480-RIA-600-build-case-initial-feature-enabled.json
│ │ ├── RIA-481-appeal-skeleton-case-stitching-save-and-continue-disabled.json
│ │ ├── RIA-481-appeal-skeleton-case-stitching-save-and-continue-enabled.json
│ │ ├── RIA-481-appeal-skeleton-stitching-disabled.json
│ │ ├── RIA-4857-upload-addendum-evidence-legal-rep-submit.json
│ │ ├── RIA-4911-error-on-edit-payment-method-payment-failed-inflight-appeals-without-remissions.json
│ │ ├── RIA-4911-error-on-edit-payment-method-payment-pending-remission-approved.json
│ │ ├── RIA-4911-error-on-edit-payment-method-payment-pending-remission-part-approved.json
│ │ ├── RIA-4911-no-error-on-edit-payment-method-payment-pending-inflight-appeals-without-remissions.json
│ │ ├── RIA-4911-no-error-on-edit-payment-method-payment-pending-remission-rejected.json
│ │ ├── RIA-4938-case-officer-decide-an-application.json
│ │ ├── RIA-4938-lastModifiedApplication-created-legal-rep-make-an-application.json
│ │ ├── RIA-4973-RIA-5303-set-case-name.json
│ │ ├── RIA-4973-RIA-5303-set-incorrect-case-name.json
│ │ ├── RIA-515-lodge-appeal-confirmation.json
│ │ ├── RIA-5153-set-case-category.json
│ │ ├── RIA-5153-set-incorrect-case-category.json
│ │ ├── RIA-517-case-submitted-confirmation-feature-disabled.json
│ │ ├── RIA-517-case-submitted-confirmation-feature-enabled.json
│ │ ├── RIA-5184-RIA-7335-set-anonymity-flag-by-default-for-PA-appeal.json
│ │ ├── RIA-5184-RIA-7335-set-anonymity-flag-by-default-for-RP-appeal.json
│ │ ├── RIA-5292-add-payment-request-sent-case-note-to-admin-officer.json
│ │ ├── RIA-5303-add-case-note-to-tcw.json
│ │ ├── RIA-5445-derive-hearing-center-from-wa-dummy-postcode.json
│ │ ├── RIA-572-record-attendees-and-duration.json
│ │ ├── RIA-5727-end-appeal-confirmation.json
│ │ ├── RIA-575-add-case-note-to-existing-case-notes.json
│ │ ├── RIA-575-add-first-case-note.json
│ │ ├── RIA-581-appeal-reference-number-generation.json
│ │ ├── RIA-583-draft-appeal-reference.json
│ │ ├── RIA-587-hearing-requirements-request-docmosis-disabled.json
│ │ ├── RIA-587-hearing-requirements-request-docmosis-enabled.json
│ │ ├── RIA-588-derive-hearing-center-from-postcode.json
│ │ ├── RIA-588-derive-hearing-center-using-default.json
│ │ ├── RIA-602-RIA-723-change-direction-due-date-start.json
│ │ ├── RIA-602-RIA-723-change-direction-due-date-submit.json
│ │ ├── RIA-602-change-direction-due-date-action-available.json
│ │ ├── RIA-6049-pipActivated-event-adds-subscription-data.json
│ │ ├── RIA-6050-transform-LR-case-data-to-AIP-case-data.json
│ │ ├── RIA-610-user-details-added-to-case.json
│ │ ├── RIA-611-RIA-739-request-case-edit-submit.json
│ │ ├── RIA-611-request-case-edit-confirmation.json
│ │ ├── RIA-611-request-case-edit-start.json
│ │ ├── RIA-6335-change-state-to-caseUnderReview.json
│ │ ├── RIA-6336-change-state-to-caseBuilding.json
│ │ ├── RIA-6337-noc-complete-clarifying-questions.json
│ │ ├── RIA-635-appeal-saved-confirmation-edit.json
│ │ ├── RIA-6388-map-subscription-to-appellant-contact-details-for-aip-to-lr-noc.json
│ │ ├── RIA-6420-submit-accelerated-detained-appeal-out-of-time.json
│ │ ├── RIA-6428-age-assessment-appellant-dob-validation-fail.json
│ │ ├── RIA-6433-change-litigation-friend-age-assessment-edit-appeal.json
│ │ ├── RIA-6433-change-organisation-on-decision-letter-age-assessment-edit-appeal.json
│ │ ├── RIA-6433-edit-appeal-type-preparer.json
│ │ ├── RIA-6437-add-stateless-age-assessment-start-appeal.json
│ │ ├── RIA-6437-add-stateless-age-assessment-submit-appeal-in-time.json
│ │ ├── RIA-6437-add-stateless-age-assessment-submit-appeal-out-of-time.json
│ │ ├── RIA-6441-detained-edit-appeal-after-submit-in-time-submit.json
│ │ ├── RIA-6455-submit-accelerated-detained-appeal.json
│ │ ├── RIA-6509-change-non-detained-aaa-to-detained-aaa-edit-appeal.json
│ │ ├── RIA-6526-list-case-ada-start.json
│ │ ├── RIA-6526-request-respondent-evidence-ada-start.json
│ │ ├── RIA-6527-list-case-confirmation-ada.json
│ │ ├── RIA-6542-aip-dc-submit-appeal.json
│ │ ├── RIA-6542-aip-ea-submit-appeal.json
│ │ ├── RIA-6542-aip-pa-payLater-submit-appeal.json
│ │ ├── RIA-6542-aip-pa-payNow-submit-appeal.json
│ │ ├── RIA-6585-mark-appeal-as-ada-in-appeal-submitted-state-admin.json
│ │ ├── RIA-6585-mark-appeal-as-ada-in-appeal-submitted-state-tcw.json
│ │ ├── RIA-6586-transfer-out-of-ada-in-appeal-submitted-state.json
│ │ ├── RIA-6604-ada-suitability-confirmation-suitable.json
│ │ ├── RIA-6604-ada-suitability-confirmation-unsuitable.json
│ │ ├── RIA-6604-ada-suitability-retrigger-errors.json
│ │ ├── RIA-6644-record-remission-decision-approved-ag.json
│ │ ├── RIA-6644-record-remission-decision-partially-approved-ag.json
│ │ ├── RIA-6644-record-remission-decision-rejected-ag.json
│ │ ├── RIA-6647-ftpa-appellant-in-flight-cases-ooc-in-time-submission.json
│ │ ├── RIA-6647-ftpa-appellant-in-flight-cases-ooc-out-of-time-submission.json
│ │ ├── RIA-6647-ftpa-appellant-in-flight-cases-uk-in-time-submission.json
│ │ ├── RIA-6647-ftpa-appellant-in-flight-cases-uk-out-of-time-submission.json
│ │ ├── RIA-6647-ftpa-respondent-in-flight-cases-ooc-in-time-submission.json
│ │ ├── RIA-6647-ftpa-respondent-in-flight-cases-ooc-out-of-time-submission.json
│ │ ├── RIA-6647-ftpa-respondent-in-flight-cases-uk-in-time-submission.json
│ │ ├── RIA-6647-ftpa-respondent-in-flight-cases-uk-out-of-time-submission.json
│ │ ├── RIA-6655-detention-status-set-correctly-ada.json
│ │ ├── RIA-6655-detention-status-set-correctly-detained-non-ada.json
│ │ ├── RIA-6661-default-detention-centre-detained-appeal.json
│ │ ├── RIA-6692-internal-case-creation-ada-start-appeal.json
│ │ ├── RIA-6692-internal-case-creation-add-isAdmin-flag.json
│ │ ├── RIA-6694-submit-appeal-by-admin.json
│ │ ├── RIA-6696-ada-require-upfront-case-listing.json
│ │ ├── RIA-6733-mark-hu-appeal-as-paid-admin-officer.json
│ │ ├── RIA-6733-mark-pa-appeal-as-paid-case-officer.json
│ │ ├── RIA-6836-appellant-not-in-detention-internal-case-valitation.json
│ │ ├── RIA-6856-application-types-available-ada-internal-case-after-hearing-req.json
│ │ ├── RIA-6856-application-types-available-ada-internal-case-before-hearing-req.json
│ │ ├── RIA-6877-RIA-6913-age-assessment-feature-flag-false.json
│ │ ├── RIA-6877-RIA-6913-age-assessment-feature-flag-true.json.json
│ │ ├── RIA-6877-RIA-6913-age-assessment-visibility-ada.json
│ │ ├── RIA-6877-RIA-6913-age-assessment-visibility-detained.json
│ │ ├── RIA-6877-RIA-6913-age-assessment-visibility-non-ada.json
│ │ ├── RIA-6877-RIA-6913-age-assessment-visibility-non-detained.json
│ │ ├── RIA-6906-mark-appeal-as-detained.json
│ │ ├── RIA-6907-remove-detained-status.json
│ │ ├── RIA-694-send-direction-action-available.json
│ │ ├── RIA-694-send-direction-confirmation.json
│ │ ├── RIA-694-send-direction.json
│ │ ├── RIA-697-RIA-237-RIA-985-RIA-2694-add-appeal-response-initial.json
│ │ ├── RIA-697-RIA-237-RIA-985-RIA-2694-add-appeal-response-replace.json
│ │ ├── RIA-697-add-appeal-response-confirmation.json
│ │ ├── RIA-700-RIA-592-RIA-610-RIA-2694-upload-respondent-evidence-submit.json
│ │ ├── RIA-700-upload-respondent-evidence-confirmation.json
│ │ ├── RIA-7043-mark-appeal-as-ready-for-UT-transfer-.json
│ │ ├── RIA-706-upload-additional-evidence-action-available.json
│ │ ├── RIA-706-upload-additional-evidence-confirmation.json
│ │ ├── RIA-706-upload-additional-evidence-submit.json
│ │ ├── RIA-7105-case-officer-sends-non-standard-direction-to-appellant-aip.json
│ │ ├── RIA-7105-case-officer-sends-non-standard-direction-to-respondent-aip.json
│ │ ├── RIA-7105-judge-sends-non-standard-direction-to-appellant-aip.json
│ │ ├── RIA-7105-judge-sends-non-standard-direction-to-respondent-aip.json
│ │ ├── RIA-7117-update-detention-location-validation-mid-event.json
│ │ ├── RIA-7119_edit_appeal_ada_validation_error_when_other_detention_facility_selected.json
│ │ ├── RIA-7119_edit_appeal_ada_validation_error_when_prison_detention_facility_selected.json
│ │ ├── RIA-7119_edit_appeal_is_ada_set_to_no_when_other_detention_facility_selected.json
│ │ ├── RIA-7119_edit_appeal_is_ada_set_to_no_when_prison_detention_facility_selected.json
│ │ ├── RIA-7119_start_appeal_ada_validation_error_when_other_detention_facility_selected.json
│ │ ├── RIA-7119_start_appeal_ada_validation_error_when_prison_selected.json
│ │ ├── RIA-7119_start_appeal_is_ada_set_to_no_when_other_detention_facility_selected.json
│ │ ├── RIA-7119_start_appeal_is_ada_set_to_no_when_prison_detention_facility_selected.json
│ │ ├── RIA-7120-update-detention-location.json
│ │ ├── RIA-722-RIA-1898-send-respondent-review-direction.json
│ │ ├── RIA-723-change-direction-mid-event.json
│ │ ├── RIA-7297-review-hearing-requirements-for-retrieving-hearing-channel-type-mid-event.json
│ │ ├── RIA-730-RIA-971-home-office-truncator.json
│ │ ├── RIA-7303-update-hearing-adjustments-for-retrieving-hearing-channel-type-mid-event.json
│ │ ├── RIA-7337-RIA-7340-RIA-2031-update-hearing-requirements.json
│ │ ├── RIA-7337-RIA-7340-RIA-7507-update-hearing-requirements-with-sign-language-interpreter.json
│ │ ├── RIA-7337-RIA-7340-RIA-7507-update-hearing-requirements-with-spoken-language-interpreter.json
│ │ ├── RIA-7337-RIA-7340-review-hearing-requirements-create-hearing-loop-and-wheelchair-access-flags.json
│ │ ├── RIA-7337-RIA-7340-update-hearing-requirements-deactivate-hearing-loop-flags.json
│ │ ├── RIA-7337-RIA-7340-update-hearing-requirements-deactivate-wheelchair-access-flags.json
│ │ ├── RIA-7338-review-sign-language-appellant-flag.json
│ │ ├── RIA-7338-update-sign-language-appellant-flag.json
│ │ ├── RIA-7353-list-case-without-hearing-hequirements-for-retrieving-hearing-channel-type-mid-event.json
│ │ ├── RIA-7412-review-interpreter-language-flag.json
│ │ ├── RIA-7412-update-interpreter-language-flag.json
│ │ ├── RIA-7444-start-appeal-internal-detained-ejp-case.json
│ │ ├── RIA-7444-start-appeal-internal-detained-paper-form-case-not-ejp.json
│ │ ├── RIA-7447-submit-appeal-by-admin-detained-ejp.json
│ │ ├── RIA-7447-submit-appeal-by-admin-non-detained-ejp.json
│ │ ├── RIA-7450-submit-ejp-transfer-down-appeal-by-admin-documents.json
│ │ ├── RIA-7451-submit-ejp-transfer-down-appeal-by-admin.json
│ │ ├── RIA-7452-turn-on-notifications-by-admin.json
│ │ ├── RIA-7456-edit-appeal-detained-ejp-case.json
│ │ ├── RIA-7457-edit-appeal-non-detained-ejp-case.json
│ │ ├── RIA-7458-edit-appeal-after-submit-detained-ejp-case.json
│ │ ├── RIA-7468-case-officer-sends-direction-to-legal-rep-for-internal-case-validation-error.json
│ │ ├── RIA-7478-edit-ejp-transfer-down-documents.json
│ │ ├── RIA-7480-review-add-in-private-flag.json
│ │ ├── RIA-7480-update-add-in-private-flag.json
│ │ ├── RIA-7481-review-add-audio-video-flag.json
│ │ ├── RIA-7481-update-add-audio-video-flag.json
│ │ ├── RIA-7483-7579-appellant-witness-case-level-case-flags.json
│ │ ├── RIA-7487-review-hearing-requirements-display-decision-and-tribunal-response-in-hearing-tab.json
│ │ ├── RIA-7487-update-hearing-adjustments-display-decision-and-tribunal-response-in-hearing-tab.json
│ │ ├── RIA-7507-submit-hearing-requirements-with-interpreter-sign-language.json
│ │ ├── RIA-7507-submit-hearing-requirements-with-interpreter-spoken-language.json
│ │ ├── RIA-7509-submit-hearing-requirements-with-witness-interpreters.json
│ │ ├── RIA-7635-Update-interpreter-details-about-to-submit.json
│ │ ├── RIA-7635-Update-interpreter-details-confirmation.json
│ │ ├── RIA-7657-review-add-witness-interpreter.json
│ │ ├── RIA-7657-update-witness-interpreter.json
│ │ ├── RIA-7658-review-add-witness-interpreter.json
│ │ ├── RIA-7658-update-witness-interpreter.json
│ │ ├── RIA-769-appeal-submission-summary-docmosis-disabled.json
│ │ ├── RIA-769-appeal-submission-summary-docmosis-enabled.json
│ │ ├── RIA-7699-Update-interpreter-booking-status-about-to-start.json
│ │ ├── RIA-7699-Update-interpreter-booking-status-confirmation.json
│ │ ├── RIA-7703-map-interpreter-to-interpreter-case-flags.json
│ │ ├── RIA-7703-remove-interpreter-flags.json
│ │ ├── RIA-7713_ho_apply_for_costs.json
│ │ ├── RIA-7713_legalrep_apply_for_costs.json
│ │ ├── RIA-7714_ho_respond_to_costs.json
│ │ ├── RIA-7714_lr_respond_to_costs.json
│ │ ├── RIA-7715_ho_adds_evidence_to_costs.json
│ │ ├── RIA-7715_legalrep_adds_evidence_to_costs.json
│ │ ├── RIA-7716_judge_decide_apply_for_costs.json
│ │ ├── RIA-7717-consider-making-new-costs-confirmation.json
│ │ ├── RIA-7717-consider-making-new-costs-start.json
│ │ ├── RIA-7717-consider_making_costs_submit.json
│ │ ├── RIA-7744-end-appeal-requires-manual-hearing-cancellation-confirmation.json
│ │ ├── RIA-7750-party-id-generation-edit-appeal-out-of-country-with-sponsor.json
│ │ ├── RIA-7750-party-id-generation-edit-appeal.json
│ │ ├── RIA-7750-party-id-generation-start-appeal-out-of-country-with-sponsor.json
│ │ ├── RIA-7750-party-id-generation-start-appeal.json
│ │ ├── RIA-7751-RIA-7750-party-id-generation-draft-hearing-requirement.json
│ │ ├── RIA-7751-generate-sponsor-party-id-on-edit-appeal-after-submit-event-for-out-of-country-appeal.json
│ │ ├── RIA-7751-generate-witnesses-party-ids-on-update-hearing-requirements-mid-event.json
│ │ ├── RIA-7752-aip-party-id-generation-edit-appeal-out-of-country-with-sponsor.json
│ │ ├── RIA-7752-aip-party-id-generation-edit-appeal.json
│ │ ├── RIA-7752-aip-party-id-generation-start-appeal-out-of-country-with-sponsor.json
│ │ ├── RIA-7752-aip-party-id-generation-start-appeal.json
│ │ ├── RIA-7755-list-assist-integration-handler-set-party-ids.json
│ │ ├── RIA-7769-prepopulate-record-adjournment-details.json
│ │ ├── RIA-7771-record-adjournment-details-changes-appeal-status-to-adjourn.json
│ │ ├── RIA-7771-record-adjournment-details-confirmation.json
│ │ ├── RIA-7771-record-adjournment-details-does-not-change-appeal-status-to-adjourn.json
│ │ ├── RIA-7775-record-adjournment-details-preserve-current-adjournment-detail-and-previous-adjournment-details-history.json
│ │ ├── RIA-7775-record-adjournment-details-preserve-current-adjournment-detail.json
│ │ ├── RIA-7780-decide-an-application-change-hearing-type-error.json
│ │ ├── RIA-7781-legal-rep-make-a-change-hearing-type-application.json
│ │ ├── RIA-7803_oot_apply_for_costs_end_appeal.json
│ │ ├── RIA-7813-remove-witness-flags.json
│ │ ├── RIA-7879-case-listing-harmondsworth-hearing-venue.json
│ │ ├── RIA-7908-internal-case-request-case-edit-start.json
│ │ ├── RIA-7908-request-case-building-confirmation-ada.json
│ │ ├── RIA-7908-request-case-building-confirmation-non-ada.json
│ │ ├── RIA-7908-request-case-building-direction-to-appellant-ada.json
│ │ ├── RIA-7908-request-case-building-direction-to-appellant-non-ada.json
│ │ ├── RIA-7908-request-case-building-direction-to-legal-rep.json
│ │ ├── RIA-7908-request-response-review-confirmation-for-appellant-non-ada.json
│ │ ├── RIA-7908-request-response-review-confirmation-for-legal-rep.json
│ │ ├── RIA-7908-request-response-review-direction-to-appellant-non-ada.json
│ │ ├── RIA-7979-list-assist-integrated-location.json
│ │ ├── RIA-7979-list-assist-unintegrated-location.json
│ │ ├── RIA-7980-list-assist-integration-confirmation-no.json
│ │ ├── RIA-7980-list-assist-integration-confirmation-yes.json
│ │ ├── RIA-7980-list-assist-integration-preparer-location-enabled-for-list-assist.json
│ │ ├── RIA-7980-list-assist-integration-preparer-location-not-enabled-for-list-assist.json
│ │ ├── RIA-7983-review-hearing-requirements-about-to-start-event-auto-hearing-request-enabled.json
│ │ ├── RIA-7983-review-hearing-requirements-auto-hearing-request-enabled.json
│ │ ├── RIA-7984-list-case-without-hearing-hequirements-about-to-start-event-auto-hearing-request-enabled.json
│ │ ├── RIA-7986-list-case-without-hearing-requirements-automatically-failed.json
│ │ ├── RIA-7986-list-case-without-hearing-requirements-automatically-succeeded.json
│ │ ├── RIA-7987-RIA-7988-review-hearing-requirements-auto-request-hearing-failed.json
│ │ ├── RIA-7987-RIA-7988-review-hearing-requirements-auto-request-hearing-succeeded.json
│ │ ├── RIA-8014-record-adjournment-details-auto-hearing-request-confirmation.json
│ │ ├── RIA-8014-record-adjournment-details-hearing-cancellation-confirmation.json
│ │ ├── RIA-8014-record-adjournment-details-hearing-update-confirmation.json
│ │ ├── RIA-8070-ask-for-fee-remission-aip-without-previous-remission.json
│ │ ├── RIA-8070-ask-for-fee-remission-aip.json
│ │ ├── RIA-8074-internal-ejp-case-request-case-edit-direction.json
│ │ ├── RIA-8074-internal-ejp-force-request-case-building-direction.json
│ │ ├── RIA-8074-internal-ejp-request-case-building-direction.json
│ │ ├── RIA-8074-internal-ejp-request-new-hearing-requirements-direction.json
│ │ ├── RIA-8074-internal-ejp-request-response-review-direction.json
│ │ ├── RIA-8102-decide-ftpa-application-appellant-granted-mid-event.json
│ │ ├── RIA-8102-decide-ftpa-application-appellant-reheard-rule35-mid-event.json
│ │ ├── RIA-8102-decide-ftpa-application-respondent-granted-mid-event.json
│ │ ├── RIA-8102-decide-ftpa-application-respondent-reheard-rule35-mid-event.json
│ │ ├── RIA-8103-decide-ftpa-application-record-appellant-ftpa-decision-confirmation-reheardRule35.json
│ │ ├── RIA-8104-decide-ftpa-application-appellant-reheard-rule31-mid-event.json
│ │ ├── RIA-8104-decide-ftpa-application-appellant-reheard-rule32-mid-event.json
│ │ ├── RIA-8104-decide-ftpa-application-record-appellant-ftpa-decision-confirmation-remadeRule31.json
│ │ ├── RIA-8104-decide-ftpa-application-record-appellant-ftpa-decision-confirmation-remadeRule32.json
│ │ ├── RIA-8110-decide-ftpa-application-record-appellant-reheardRule35.json
│ │ ├── RIA-8110-decide-ftpa-application-record-respondent-reheardRule35.json
│ │ ├── RIA-8115-set-float-suitability-on-case-when-adjourning-on-day-of-hearing.json
│ │ ├── RIA-8116-applyForFTPAAppellant-ftpa-appellant-ftpa-list.json
│ │ ├── RIA-8116-applyForFTPARespondent-ftpa-respondent-ftpa-list.json
│ │ ├── RIA-8116-decide-ftpa-application-record-appellant-granted.json
│ │ ├── RIA-8116-decide-ftpa-application-record-appellant-reheardRule35.json
│ │ ├── RIA-8116-decide-ftpa-application-record-appellant-remadeRule31.json
│ │ ├── RIA-8116-decide-ftpa-application-record-appellant-remadeRule32.json
│ │ ├── RIA-8116-decide-ftpa-application-record-respondent-granted.json
│ │ ├── RIA-8116-decide-ftpa-application-record-respondent-reheardRule35.json
│ │ ├── RIA-8116-decide-ftpa-application-record-respondent-remadeRule31.json
│ │ ├── RIA-8116-decide-ftpa-application-record-respondent-remadeRule32.json
│ │ ├── RIA-8116-migration-applyForFTPAAppellant-with-legacy-ftpa-respondent-decided.json
│ │ ├── RIA-8116-migration-applyForFTPAAppellant-with-legacy-ftpa-respondent-started.json
│ │ ├── RIA-8116-migration-applyForFTPARespondent-with-legacy-ftpa-appellant-decided.json
│ │ ├── RIA-8116-migration-applyForFTPARespondent-with-legacy-ftpa-appellant-started.json
│ │ ├── RIA-8116-migration-decideFtpaApplication-appellant-with-legacy-started-and-older-decision-reheardRule35.json
│ │ ├── RIA-8116-migration-decideFtpaApplication-appellant-with-legacy-started-remadeRule3132.json
│ │ ├── RIA-8116-migration-decideFtpaApplication-respondent-with-legacy-started-and-older-decision-reheardRule35.json
│ │ ├── RIA-8116-migration-decideFtpaApplication-respondent-with-legacy-started-remadeRule3132.json
│ │ ├── RIA-815-appeal-saved-confirmation-start.json
│ │ ├── RIA-8157-updateTribunalDecision-rule-31-allowed.json
│ │ ├── RIA-8157-updateTribunalDecision-rule-31-confirmation.json
│ │ ├── RIA-8157-updateTribunalDecision-rule-31-dismissed.json
│ │ ├── RIA-8157-updateTribunalDecision-rule-31-updateDecisionAllowed.json
│ │ ├── RIA-8157-updateTribunalDecision-rule-31-updatedDecisionDismissed.json
│ │ ├── RIA-8157-updateTribunalDecisionDocument-rule-31-error.json
│ │ ├── RIA-8157-updateTribunalDecisionDocument-rule-31-normal.json
│ │ ├── RIA-8158-8219-updateTribunalDecision-rule-32.json
│ │ ├── RIA-8220-8219-update-tribunal-decision-rule32.json
│ │ ├── RIA-823-end-appeal.json
│ │ ├── RIA-8230-dlrm-manage-fee-additional-payment-tribunal-action-confirmation-screen.json
│ │ ├── RIA-8230-dlrm-manage-fee-no-action-tribunal-action-confirmation-screen.json
│ │ ├── RIA-8230-dlrm-manage-fee-refund-tribunal-action-confirmation-screen.json
│ │ ├── RIA-8231-list-case-without-hearing-requirements-automatically-panel-required.json
│ │ ├── RIA-8231-review-hearing-requirements-auto-request-hearing-panel-required.json
│ │ ├── RIA-8239-updateTribunalDecision-rule-31-list.json
│ │ ├── RIA-8253-mark-appeal-as-remitted.json
│ │ ├── RIA-8256-clear-mark-appeal-as-remitted-about-to-start.json
│ │ ├── RIA-8291-generate-reheard-hearing-bundle-remitted.json
│ │ ├── RIA-837-RIA-2694-send-legal-rep-review-direction.json
│ │ ├── RIA-8449-restore-state-from-adjourn-auto-request-hearing-failed.json
│ │ ├── RIA-8449-restore-state-from-adjourn-auto-request-hearing-succeeded.json
│ │ ├── RIA-8677-aip-remission-error-validation-when-no-remission-present.json
│ │ ├── RIA-8677-aip-remission-record-remission-decision-approved.json
│ │ ├── RIA-8677-aip-remission-record-remission-decision-partially-approved.json
│ │ ├── RIA-8677-aip-remission-record-remission-decision-rejected.json
│ │ ├── RIA-8721-updateTribunalDecision-rule-31-updated-decision-allowed.json
│ │ ├── RIA-8721-updateTribunalDecision-rule-31-updated-decision-dismissed.json
│ │ ├── RIA-8772-create-case-summary-for-reheard-remitted.json
│ │ ├── RIA-8782-list-case-about-to-start-listing-location-from-ref-data.json
│ │ ├── RIA-8782-list-case-submit-with-listing-location-from-ref-data.json
│ │ ├── RIA-8783-edit-case-listing-about-to-start-listing-location-from-ref-data.json
│ │ ├── RIA-8783-edit-case-listing-submit-with-listing-location-from-ref-data.json
│ │ ├── RIA-8787-derive-hearing-center-from-postcode-ref-data-enabled.json
│ │ ├── RIA-8787-derive-hearing-center-using-default-ref-data-enabled.json
│ │ ├── RIA-8839-decision-without-hearing-with-hearing-location-from-ref-data.json
│ │ ├── RIA-892-RIA-2694-request-respondent-evidence-start.json
│ │ ├── RIA-892-request-respondent-evidence-confirmation.json
│ │ ├── RIA-892-request-respondent-evidence-submit.json
│ │ ├── RIA-8921-set-next-hearing-date-on-list-case-event-integrated.json
│ │ ├── RIA-8922-set-next-hearing-date-on-edit-case-listing-event-integrated.json
│ │ ├── RIA-893-RIA-1897-send-home-office-evidence-direction.json
│ │ ├── RIA-8958-set-next-hearing-date-on-edit-case-listing-event-non-integrated.json
│ │ ├── RIA-8958-set-next-hearing-date-on-list-case-event-non-integrated.json
│ │ ├── RIA-8969-progress-migrated-case-desired-state.json
│ │ ├── RIA-8975-add-is-aria-migrated-no.json
│ │ ├── RIA-8983-Hearings-update-hearing-request-confirmation-update-hearing-failed.json
│ │ ├── RIA-8983-Update-interpreter-booking-status-confirmation_update_hearing_failed.json
│ │ ├── RIA-8983-Update-interpreter-details-confirmation-update-hearing-failed.json
│ │ ├── RIA-9041-adjourn-without-a-date-clear-current-and-next-hearing-date-and-time.json
│ │ ├── RIA-910-RIA-911-RIA-912-RIA-1360-current-case-state-example1.json
│ │ ├── RIA-910-RIA-911-RIA-912-RIA-1360-current-case-state-example2.json
│ │ ├── RIA-910-RIA-911-RIA-912-appellant-name-formatted-for-display.json
│ │ ├── RIA-910-RIA-911-RIA-912-case-building-not-ready-for-submission.json
│ │ ├── RIA-910-RIA-911-RIA-912-case-building-ready-for-submission.json
│ │ ├── RIA-9152-aria-create-case-about-to-submit.json
│ │ ├── RIA-9191-list-assist-integration-handler-update-witness-names.json
│ │ ├── RIA-9193-progress-migrated-case-HMC-mid-event.json
│ │ ├── RIA-9193-progress-migrated-case-MoveIt-mid-event.json
│ │ ├── RIA-9193-progress-migrated-case-VHH-mid-event.json
│ │ ├── RIA-9193-progress-migrated-case-VHHToCCD-mid-event.json
│ │ ├── RIA-921-automatic-direction.json
│ │ ├── RIA-9238-refundConfirmation-confirmation.json
│ │ ├── RIA-9239-aria-notice-of-change-error.json
│ │ ├── RIA-941-RIA-942-RIA-3116-generate-hearing-ready-bundle-stitching-enabled.json
│ │ ├── RIA-941-RIA-942-generate-hearing-ready-bundle-stitching-disabled.json
│ │ ├── RIA-941-generate-hearing-bundle-confirmation.json
│ │ ├── RIA-9458-aria-create-case-about-to-submit-missing-due-days-error.json
│ │ ├── RWA-137-Allocate-a-case-to-me.json
│ │ ├── RWA-318-Allocate-a-case-to-caseworker-about-to-submit.json
│ │ ├── RWA-318-Allocate-a-case-to-caseworker-confirmation-page.json
│ │ ├── RWA-318-Allocate-a-case-to-caseworker-midevent.json
│ │ ├── RWA-318-Allocate-a-case-to-me-about-to-submit.json
│ │ ├── RWA-340-Allocate-a-case-to-caseworker-negative-scenario-midevent.json
│ │ ├── RWA-340-Allocate-a-case-to-caseworker-negative-scenario2-midevent.json
│ │ ├── RWA-492-Allocate-a-case-reset-options-scenario-about-to-start.json
│ │ ├── RWA-497-case-base-location-data-fix-scenario1.json
│ │ ├── RWA-497-case-base-location-data-fix-scenario2.json
│ │ ├── RWA-497-case-base-location-data-fix-scenario3.json
│ │ ├── RWA-584-add-case-management-category-edit-appeal-after-submit.json
│ │ ├── RWA-584-add-case-management-category-edit-appeal.json
│ │ ├── RWA-584-add-case-management-category-start-appeal-appellant.json
│ │ └── RWA-584-add-case-management-category-start-appeal.json
│ │ └── templates
│ │ ├── minimal-ada-appeal-submitted.json
│ │ ├── minimal-age-assessment-appeal-started.json
│ │ ├── minimal-aip-appeal-started.json
│ │ ├── minimal-aip-appeal-submitted.json
│ │ ├── minimal-appeal-started.json
│ │ ├── minimal-appeal-submitted-ooc.json
│ │ ├── minimal-appeal-submitted.json
│ │ ├── minimal-ejp-appeal-started.json
│ │ ├── minimal-ejp-appeal-submitted.json
│ │ ├── start-appeal-aip.json
│ │ └── start-appeal-legalrep.json
├── integrationTest
│ ├── java
│ │ └── uk
│ │ │ └── gov
│ │ │ └── hmcts
│ │ │ └── reform
│ │ │ └── iacaseapi
│ │ │ ├── BadRequestsTest.java
│ │ │ ├── component
│ │ │ ├── AddCaseNoteTest.java
│ │ │ ├── GenerateDecisionAndReasonsTest.java
│ │ │ ├── NewShareACaseCcdIntegrationTest.java
│ │ │ ├── RecordAttendeesAndDurationTest.java
│ │ │ ├── ShareACaseCcdIntegrationTest.java
│ │ │ ├── ShareACaseRefDataIntegrationTest.java
│ │ │ └── testutils
│ │ │ │ ├── IaCaseApiClient.java
│ │ │ │ ├── SpringBootIntegrationTest.java
│ │ │ │ ├── TestClassOrderer.java
│ │ │ │ ├── TestConfiguration.java
│ │ │ │ ├── WithAcaAssignmentsStub.java
│ │ │ │ ├── WithCcdAssignmentsStub.java
│ │ │ │ ├── WithDocumentApiStub.java
│ │ │ │ ├── WithNotificationsApiStub.java
│ │ │ │ ├── WithReferenceDataStub.java
│ │ │ │ ├── WithServiceAuthStub.java
│ │ │ │ ├── WithTimedEventServiceStub.java
│ │ │ │ ├── WithUserDetailsStub.java
│ │ │ │ ├── fixtures
│ │ │ │ ├── AsylumCaseForTest.java
│ │ │ │ ├── Builder.java
│ │ │ │ ├── CallbackForTest.java
│ │ │ │ ├── CaseDetailsForTest.java
│ │ │ │ ├── PostSubmitCallbackResponseForTest.java
│ │ │ │ ├── PreSubmitCallbackResponseForTest.java
│ │ │ │ └── UserDetailsForTest.java
│ │ │ │ └── wiremock
│ │ │ │ ├── CallbackTransformer.java
│ │ │ │ ├── DocumentsApiCallbackTransformer.java
│ │ │ │ └── NotificationsApiCallbackTransformer.java
│ │ │ ├── config
│ │ │ └── OpenApiPublisher.java
│ │ │ ├── domain
│ │ │ └── handlers
│ │ │ │ └── presubmit
│ │ │ │ ├── AutomaticDirectionHandlerTest.java
│ │ │ │ ├── EditDocsCaseNoteServiceTest.java
│ │ │ │ ├── HearingCentreTest.java
│ │ │ │ └── allocatethecase
│ │ │ │ ├── CaseWorkerRefDataMock.java
│ │ │ │ └── CaseWorkerServiceTest.java
│ │ │ ├── entities
│ │ │ └── AssignmentTest.java
│ │ │ └── infrastructure
│ │ │ ├── DbAppealReferenceNumberGeneratorIntegrationTest.java
│ │ │ └── UserDetailsRequestScopeTest.java
│ └── resources
│ │ ├── application-integration.yaml
│ │ ├── case-worker-ref-data-response.json
│ │ ├── junit-platform.properties
│ │ ├── prd-org-users-no-org-id-response.json
│ │ └── prd-org-users-response.json
├── main
│ ├── java
│ │ └── uk
│ │ │ └── gov
│ │ │ └── hmcts
│ │ │ └── reform
│ │ │ └── iacaseapi
│ │ │ ├── Application.java
│ │ │ ├── domain
│ │ │ ├── DateProvider.java
│ │ │ ├── RequiredFieldMissingException.java
│ │ │ ├── UserDetailsHelper.java
│ │ │ ├── UserDetailsProvider.java
│ │ │ ├── entities
│ │ │ │ ├── AdaSuitabilityReviewDecision.java
│ │ │ │ ├── AdjournmentDetail.java
│ │ │ │ ├── AppealDecision.java
│ │ │ │ ├── AppealReviewOutcome.java
│ │ │ │ ├── AppealStatus.java
│ │ │ │ ├── AppealType.java
│ │ │ │ ├── AppealTypeForDisplay.java
│ │ │ │ ├── Application.java
│ │ │ │ ├── ApplicationDecision.java
│ │ │ │ ├── ApplicationType.java
│ │ │ │ ├── ApplyForCosts.java
│ │ │ │ ├── AsylumCase.java
│ │ │ │ ├── AsylumCaseFieldDefinition.java
│ │ │ │ ├── BaseLocation.java
│ │ │ │ ├── CaseFlagDetail.java
│ │ │ │ ├── CaseFlagType.java
│ │ │ │ ├── CaseFlagValue.java
│ │ │ │ ├── CaseManagementLocation.java
│ │ │ │ ├── CaseManagementLocationRefData.java
│ │ │ │ ├── CaseNote.java
│ │ │ │ ├── CaseNoteMigration.java
│ │ │ │ ├── ClarifyingQuestion.java
│ │ │ │ ├── ClarifyingQuestionAnswer.java
│ │ │ │ ├── ContactPreference.java
│ │ │ │ ├── ContactPreferenceUnrep.java
│ │ │ │ ├── CostsDecision.java
│ │ │ │ ├── CostsDecisionType.java
│ │ │ │ ├── CustodialSentenceDate.java
│ │ │ │ ├── DatesToAvoid.java
│ │ │ │ ├── DecisionAndReasons.java
│ │ │ │ ├── DetentionFacility.java
│ │ │ │ ├── DetentionStatus.java
│ │ │ │ ├── Direction.java
│ │ │ │ ├── DirectionTag.java
│ │ │ │ ├── DocumentTag.java
│ │ │ │ ├── DocumentWithDescription.java
│ │ │ │ ├── DocumentWithMetadata.java
│ │ │ │ ├── DynamicList.java
│ │ │ │ ├── DynamicMultiSelectList.java
│ │ │ │ ├── EditableDirection.java
│ │ │ │ ├── FeeTribunalAction.java
│ │ │ │ ├── FeeUpdateReason.java
│ │ │ │ ├── FlagDetail.java
│ │ │ │ ├── FtpaApplications.java
│ │ │ │ ├── FtpaDecisionOutcomeType.java
│ │ │ │ ├── FtpaResidentJudgeDecisionOutcomeType.java
│ │ │ │ ├── HearingAdjournmentDay.java
│ │ │ │ ├── HearingCentre.java
│ │ │ │ ├── HearingConductionOptions.java
│ │ │ │ ├── HearingDecision.java
│ │ │ │ ├── HearingLength.java
│ │ │ │ ├── HearingRecordingDocument.java
│ │ │ │ ├── HelpWithFeesOption.java
│ │ │ │ ├── InterpreterBookingStatus.java
│ │ │ │ ├── InterpreterDetails.java
│ │ │ │ ├── InterpreterLanguage.java
│ │ │ │ ├── InterpreterLanguageCategory.java
│ │ │ │ ├── InterpreterLanguageRefData.java
│ │ │ │ ├── Language.java
│ │ │ │ ├── LegRepAddressUk.java
│ │ │ │ ├── LegacyCaseFlag.java
│ │ │ │ ├── Location.java
│ │ │ │ ├── MakeAnApplication.java
│ │ │ │ ├── MakeAnApplicationDecision.java
│ │ │ │ ├── MakeAnApplicationTypes.java
│ │ │ │ ├── NextHearingDetails.java
│ │ │ │ ├── OrganisationOnDecisionLetter.java
│ │ │ │ ├── OtherDetentionFacilityName.java
│ │ │ │ ├── OutOfCountryCircumstances.java
│ │ │ │ ├── OutOfCountryDecisionType.java
│ │ │ │ ├── OutOfTimeDecisionDetails.java
│ │ │ │ ├── OutOfTimeDecisionType.java
│ │ │ │ ├── Parties.java
│ │ │ │ ├── PartyFlagIdValue.java
│ │ │ │ ├── PinInPostDetails.java
│ │ │ │ ├── PreviousDates.java
│ │ │ │ ├── PreviousHearing.java
│ │ │ │ ├── PreviousRepresentation.java
│ │ │ │ ├── PrisonNomsNumber.java
│ │ │ │ ├── ProfessionalUser.java
│ │ │ │ ├── ProfessionalUsersResponse.java
│ │ │ │ ├── ReasonForLinkAppealOptions.java
│ │ │ │ ├── Region.java
│ │ │ │ ├── ReheardHearingDocuments.java
│ │ │ │ ├── RemissionDecision.java
│ │ │ │ ├── RemissionDetails.java
│ │ │ │ ├── RemissionOption.java
│ │ │ │ ├── RemissionType.java
│ │ │ │ ├── RemittalDocument.java
│ │ │ │ ├── SourceOfAppeal.java
│ │ │ │ ├── SourceOfRemittal.java
│ │ │ │ ├── StoredNotification.java
│ │ │ │ ├── StrategicCaseFlag.java
│ │ │ │ ├── StrategicCaseFlagType.java
│ │ │ │ ├── Subscriber.java
│ │ │ │ ├── SubscriberType.java
│ │ │ │ ├── TimeExtension.java
│ │ │ │ ├── TimeExtensionDecision.java
│ │ │ │ ├── TimeExtensionStatus.java
│ │ │ │ ├── TypesOfAppliedCosts.java
│ │ │ │ ├── UpdateTribunalRules.java
│ │ │ │ ├── UserDetails.java
│ │ │ │ ├── UserRole.java
│ │ │ │ ├── UserRoleLabel.java
│ │ │ │ ├── Value.java
│ │ │ │ ├── WitnessDetails.java
│ │ │ │ ├── ccd
│ │ │ │ │ ├── CaseData.java
│ │ │ │ │ ├── CaseDetails.java
│ │ │ │ │ ├── CheckValues.java
│ │ │ │ │ ├── Event.java
│ │ │ │ │ ├── FtpaDecisionCheckValues.java
│ │ │ │ │ ├── HoursAndMinutes.java
│ │ │ │ │ ├── HoursMinutes.java
│ │ │ │ │ ├── Nationality.java
│ │ │ │ │ ├── NationalityFieldValue.java
│ │ │ │ │ ├── State.java
│ │ │ │ │ ├── callback
│ │ │ │ │ │ ├── Callback.java
│ │ │ │ │ │ ├── DispatchPriority.java
│ │ │ │ │ │ ├── PostSubmitCallbackResponse.java
│ │ │ │ │ │ ├── PreSubmitCallbackResponse.java
│ │ │ │ │ │ └── PreSubmitCallbackStage.java
│ │ │ │ │ └── field
│ │ │ │ │ │ ├── AddressUk.java
│ │ │ │ │ │ ├── BailApplicationStatus.java
│ │ │ │ │ │ ├── ChangeOrganisationRequest.java
│ │ │ │ │ │ ├── Document.java
│ │ │ │ │ │ ├── HasDocument.java
│ │ │ │ │ │ ├── HearingType.java
│ │ │ │ │ │ ├── IdValue.java
│ │ │ │ │ │ ├── JourneyType.java
│ │ │ │ │ │ ├── PaymentStatus.java
│ │ │ │ │ │ └── YesOrNo.java
│ │ │ │ ├── em
│ │ │ │ │ ├── Bundle.java
│ │ │ │ │ └── BundleDocument.java
│ │ │ │ ├── fee
│ │ │ │ │ ├── Fee.java
│ │ │ │ │ ├── FeeResponse.java
│ │ │ │ │ └── FeeType.java
│ │ │ │ ├── homeoffice
│ │ │ │ │ ├── ApplicationStatus.java
│ │ │ │ │ ├── CodeWithDescription.java
│ │ │ │ │ ├── DecisionCommunication.java
│ │ │ │ │ ├── HomeOfficeCaseStatus.java
│ │ │ │ │ ├── HomeOfficeError.java
│ │ │ │ │ ├── HomeOfficeMetadata.java
│ │ │ │ │ ├── HomeOfficeSearchResponse.java
│ │ │ │ │ ├── MessageHeader.java
│ │ │ │ │ ├── Person.java
│ │ │ │ │ └── RejectionReason.java
│ │ │ │ ├── ref
│ │ │ │ │ ├── OrganisationEntityResponse.java
│ │ │ │ │ └── OrganisationResponse.java
│ │ │ │ └── roleassignment
│ │ │ │ │ ├── ActorIdType.java
│ │ │ │ │ ├── Assignment.java
│ │ │ │ │ ├── Attributes.java
│ │ │ │ │ ├── Classification.java
│ │ │ │ │ ├── GrantType.java
│ │ │ │ │ ├── Jurisdiction.java
│ │ │ │ │ ├── QueryRequest.java
│ │ │ │ │ ├── RequestedRoles.java
│ │ │ │ │ ├── RoleAssignment.java
│ │ │ │ │ ├── RoleAssignmentResource.java
│ │ │ │ │ ├── RoleCategory.java
│ │ │ │ │ ├── RoleName.java
│ │ │ │ │ ├── RoleRequest.java
│ │ │ │ │ └── RoleType.java
│ │ │ ├── handlers
│ │ │ │ ├── HandlerUtils.java
│ │ │ │ ├── InterpreterLanguagesUtils.java
│ │ │ │ ├── PostSubmitCallbackHandler.java
│ │ │ │ ├── PreSubmitCallbackHandler.java
│ │ │ │ ├── PreSubmitCallbackStateHandler.java
│ │ │ │ ├── postsubmit
│ │ │ │ │ ├── AdaSuitabilityReviewConfirmation.java
│ │ │ │ │ ├── AddCaseNoteConfirmation.java
│ │ │ │ │ ├── AdjournWithoutDateConfirmation.java
│ │ │ │ │ ├── AllocateTheCaseConfirmation.java
│ │ │ │ │ ├── AppealPaymentConfirmationProvider.java
│ │ │ │ │ ├── AppealResponseAddedConfirmation.java
│ │ │ │ │ ├── AppealSavedConfirmation.java
│ │ │ │ │ ├── AppealSubmittedConfirmation.java
│ │ │ │ │ ├── BuildCaseConfirmation.java
│ │ │ │ │ ├── CancelAutomaticEndAppealPaidConfirmation.java
│ │ │ │ │ ├── CaseSubmittedConfirmation.java
│ │ │ │ │ ├── ChangeDirectionDueDateConfirmation.java
│ │ │ │ │ ├── ChangeHearingCentreConfirmation.java
│ │ │ │ │ ├── ChangeRepresentationConfirmation.java
│ │ │ │ │ ├── CreateCaseSummaryConfirmation.java
│ │ │ │ │ ├── CustomiseHearingBundleConfirmation.java
│ │ │ │ │ ├── DecideAnApplicationConfirmation.java
│ │ │ │ │ ├── DecisionAndReasonsStartedConfirmation.java
│ │ │ │ │ ├── EditAppealAfterSubmitConfirmation.java
│ │ │ │ │ ├── EditCaseListingConfirmation.java
│ │ │ │ │ ├── EjpTurnOnNotificationConfirmation.java
│ │ │ │ │ ├── EndAppealAutomaticallyConfirmation.java
│ │ │ │ │ ├── EndAppealConfirmation.java
│ │ │ │ │ ├── ForceCaseProgressionToCaseUnderReviewConfirmation.java
│ │ │ │ │ ├── ForceCaseToSubmitHearingRequirementsConfirmation.java
│ │ │ │ │ ├── FtpaAppellantConfirmation.java
│ │ │ │ │ ├── FtpaRespondentConfirmation.java
│ │ │ │ │ ├── GenerateDecisionAndReasonsConfirmation.java
│ │ │ │ │ ├── GenerateHearingBundleConfirmation.java
│ │ │ │ │ ├── GenerateServiceRequestMakeAPaymentConfirmation.java
│ │ │ │ │ ├── GenerateUpdatedHearingBundleConfirmation.java
│ │ │ │ │ ├── GenerateUpperTribunalBundleConfirmation.java
│ │ │ │ │ ├── HearingAttendeesAndDurationRecordedConfirmation.java
│ │ │ │ │ ├── HearingsUpdateHearingRequestConfirmation.java
│ │ │ │ │ ├── LeadershipJudgeFtpaDecisionConfirmation.java
│ │ │ │ │ ├── LegalRepresentativeUpdateDetailsConfirmation.java
│ │ │ │ │ ├── ListAssistIntegrationConfirmation.java
│ │ │ │ │ ├── ListCaseConfirmation.java
│ │ │ │ │ ├── ListCaseWithoutHearingRequirementsConfirmation.java
│ │ │ │ │ ├── ListCmaConfirmation.java
│ │ │ │ │ ├── MakeAnApplicationConfirmation.java
│ │ │ │ │ ├── ManageFeeUpdateConfirmation.java
│ │ │ │ │ ├── MarkAppealAsAdaConfirmation.java
│ │ │ │ │ ├── MarkAppealAsDetainedConfirmation.java
│ │ │ │ │ ├── MarkAppealAsRemittedConfirmation.java
│ │ │ │ │ ├── MarkAppealPaidConfirmation.java
│ │ │ │ │ ├── MarkAsReadyForUtTransferConfirmation.java
│ │ │ │ │ ├── MarkPaymentRequestSentConfirmation.java
│ │ │ │ │ ├── MigrateAriaCasesDocumentUploaderConfirmation.java
│ │ │ │ │ ├── RecordAdjournmentDetailsConfirmation.java
│ │ │ │ │ ├── RecordAllocatedJudgeConfirmation.java
│ │ │ │ │ ├── RecordApplicationConfirmation.java
│ │ │ │ │ ├── RecordOutOfTimeDecisionConfirmation.java
│ │ │ │ │ ├── RecordRemissionDecisionConfirmation.java
│ │ │ │ │ ├── RefundConfirmationConfirmation.java
│ │ │ │ │ ├── ReinstateAppealConfirmation.java
│ │ │ │ │ ├── RemoveAppealFromOnlineConfirmation.java
│ │ │ │ │ ├── RemoveDetainedStatusConfirmation.java
│ │ │ │ │ ├── RequestCaseBuildingConfirmation.java
│ │ │ │ │ ├── RequestCaseEditConfirmation.java
│ │ │ │ │ ├── RequestCmaRequirementsConfirmation.java
│ │ │ │ │ ├── RequestFeeRemissionConfirmation.java
│ │ │ │ │ ├── RequestHomeOfficeDataConfirmation.java
│ │ │ │ │ ├── RequestReasonsForAppealConfirmation.java
│ │ │ │ │ ├── RequestRespondentEvidenceConfirmation.java
│ │ │ │ │ ├── RequestRespondentReviewConfirmation.java
│ │ │ │ │ ├── RequestResponseAmendConfirmation.java
│ │ │ │ │ ├── RequestResponseReviewConfirmation.java
│ │ │ │ │ ├── ResidentJudgeFtpaDecisionConfirmation.java
│ │ │ │ │ ├── RespondToCostsConfirmation.java
│ │ │ │ │ ├── RestoreStateFromAdjournConfirmation.java
│ │ │ │ │ ├── RetriggerWaTasksConfirmation.java
│ │ │ │ │ ├── RetriggerWaTasksForFixedCaseIdHandler.java
│ │ │ │ │ ├── ReviewCmaRequirementsConfirmation.java
│ │ │ │ │ ├── ReviewHearingRequirementsConfirmation.java
│ │ │ │ │ ├── ReviewUpdateHearingRequirementsConfirmation.java
│ │ │ │ │ ├── RevokeCaseAccessConfirmation.java
│ │ │ │ │ ├── SendDecisionAndReasonsConfirmation.java
│ │ │ │ │ ├── SendDirectionConfirmation.java
│ │ │ │ │ ├── SendDirectionWithQuestionsConfirmation.java
│ │ │ │ │ ├── SubmitHearingRequirementsConfirmation.java
│ │ │ │ │ ├── TransferOutOfAdaConfirmation.java
│ │ │ │ │ ├── UpdateAppointmentAfterCmaConfirmation.java
│ │ │ │ │ ├── UpdateDetentionLocationConfirmation.java
│ │ │ │ │ ├── UpdateHearingAdjustmentsConfirmation.java
│ │ │ │ │ ├── UpdateHearingRequirementsConfirmation.java
│ │ │ │ │ ├── UpdateInterpreterBookingStatusConfirmation.java
│ │ │ │ │ ├── UpdateInterpreterDetailsConfirmation.java
│ │ │ │ │ ├── UpdateTribunalDecisionConfirmation.java
│ │ │ │ │ ├── UploadAddendumEvidenceConfirmation.java
│ │ │ │ │ ├── UploadAdditionalEvidenceConfirmation.java
│ │ │ │ │ ├── UploadAdditionalEvidenceHomeOfficeConfirmation.java
│ │ │ │ │ ├── UploadHearingRecordingConfirmation.java
│ │ │ │ │ ├── UploadHomeOfficeAppealResponseConfirmation.java
│ │ │ │ │ ├── UploadHomeOfficeBundleConfirmation.java
│ │ │ │ │ ├── UploadRespondentEvidenceConfirmation.java
│ │ │ │ │ ├── UploadSensitiveDocsConfirmation.java
│ │ │ │ │ ├── applyforcosts
│ │ │ │ │ │ ├── AdditionalEvidenceForCostsConfirmation.java
│ │ │ │ │ │ ├── ApplyForCostsConfirmation.java
│ │ │ │ │ │ ├── ConsiderMakingCostsOrderConfirmation.java
│ │ │ │ │ │ └── DecideCostsConfirmation.java
│ │ │ │ │ ├── editdocs
│ │ │ │ │ │ ├── AuditDetails.java
│ │ │ │ │ │ ├── EditDocsAuditLogHandler.java
│ │ │ │ │ │ ├── EditDocsAuditLogService.java
│ │ │ │ │ │ └── EditDocsAuditService.java
│ │ │ │ │ ├── flagcase
│ │ │ │ │ │ ├── FlagCaseConfirmation.java
│ │ │ │ │ │ └── RemoveFlagConfirmation.java
│ │ │ │ │ ├── linkappeal
│ │ │ │ │ │ ├── LinkAppealConfirmation.java
│ │ │ │ │ │ └── UnlinkAppealConfirmation.java
│ │ │ │ │ └── payment
│ │ │ │ │ │ └── PayAndSubmitConfirmation.java
│ │ │ │ └── presubmit
│ │ │ │ │ ├── AcceleratedDetainedAppealValidationHandler.java
│ │ │ │ │ ├── AdaCaseBuildingPreventer.java
│ │ │ │ │ ├── AdaSuitabilityReviewPreparer.java
│ │ │ │ │ ├── AddAppealResponseHandler.java
│ │ │ │ │ ├── AddAppellantDocumentsHandler.java
│ │ │ │ │ ├── AddBaseLocationFromHearingCentreForOldCasesFixHandler.java
│ │ │ │ │ ├── AddCaseNoteHandler.java
│ │ │ │ │ ├── AddPaymentRequestCaseNoteHandler.java
│ │ │ │ │ ├── AdditionalInstructionsHandler.java
│ │ │ │ │ ├── AdjournWithoutDateHandler.java
│ │ │ │ │ ├── AdvancedFinalBundlingStateHandler.java
│ │ │ │ │ ├── AdvancedFinalBundlingStitchingCallbackHandler.java
│ │ │ │ │ ├── AgeAssessmentAppealPreparer.java
│ │ │ │ │ ├── AgeAssessmentDataEditAppealHandler.java
│ │ │ │ │ ├── AgeAssessmentVisibilityHandler.java
│ │ │ │ │ ├── AipEditAppealPreparer.java
│ │ │ │ │ ├── AipToLegalRepJourneyHandler.java
│ │ │ │ │ ├── AnonymousByDefaultHandler.java
│ │ │ │ │ ├── AppealGroundsForDisplayFormatter.java
│ │ │ │ │ ├── AppealOutOfCountryEditAppealAipHandler.java
│ │ │ │ │ ├── AppealOutOfCountryEditAppealHandler.java
│ │ │ │ │ ├── AppealOutOfCountryHandler.java
│ │ │ │ │ ├── AppealReferenceNumberCcdHandler.java
│ │ │ │ │ ├── AppealReferenceNumberHandler.java
│ │ │ │ │ ├── AppealSubmitHandler.java
│ │ │ │ │ ├── AppealTypeHandler.java
│ │ │ │ │ ├── AppealUserRoleAppender.java
│ │ │ │ │ ├── AppealWasNotSubmittedSupportingDocumentsHandler.java
│ │ │ │ │ ├── AppellantInterpreterLanguageFlagsHandler.java
│ │ │ │ │ ├── AppellantInterpreterLanguagesDynamicListUpdater.java
│ │ │ │ │ ├── AppellantNameForDisplayFormatter.java
│ │ │ │ │ ├── AppellantPhoneNumberValidator.java
│ │ │ │ │ ├── AriaNoticeOfChangePreventer.java
│ │ │ │ │ ├── AsylumCaseCcdReferenceNumberHandler.java
│ │ │ │ │ ├── AsylumCaseDataFixingHandler.java
│ │ │ │ │ ├── AsylumSupplementaryDataFixingHandler.java
│ │ │ │ │ ├── AutoBuildCaseDirectionHandler.java
│ │ │ │ │ ├── AutoLegalRepresentativeReviewDirectionHandler.java
│ │ │ │ │ ├── AutomaticDirectionRequestingHearingRequirementsHandler.java
│ │ │ │ │ ├── AutomaticEndAppealForNonPaymentEaHuTrigger.java
│ │ │ │ │ ├── AutomaticEndAppealForRemissionRejectedTrigger.java
│ │ │ │ │ ├── AutomaticInternalSendPaymentReminderTrigger.java
│ │ │ │ │ ├── AutomaticPaymentReminderRemissionLegalRepTrigger.java
│ │ │ │ │ ├── BailApplicationNumberHandler.java
│ │ │ │ │ ├── BuildCaseHandler.java
│ │ │ │ │ ├── BuildCasePreparer.java
│ │ │ │ │ ├── CancelAutomaticDirectionRequestingHearingRequirementsHandler.java
│ │ │ │ │ ├── CancelAutomaticPaymentReminderRemissionLegalRepTrigger.java
│ │ │ │ │ ├── CaseBuildingReadyForSubmissionUpdater.java
│ │ │ │ │ ├── CaseManagementCategoryAppender.java
│ │ │ │ │ ├── CaseManagementLocationService.java
│ │ │ │ │ ├── ChangeDirectionDueDateActionAvailableUpdater.java
│ │ │ │ │ ├── ChangeDirectionDueDateHandler.java
│ │ │ │ │ ├── ChangeDirectionDueDatePreparer.java
│ │ │ │ │ ├── ChangeDirectionDueMidEvent.java
│ │ │ │ │ ├── ChangeHearingCentreHandler.java
│ │ │ │ │ ├── CompleteClarifyingQuestionsHandler.java
│ │ │ │ │ ├── CreateCaseSummaryHandler.java
│ │ │ │ │ ├── CreateCaseSummaryPreparer.java
│ │ │ │ │ ├── CreateFlagHandler.java
│ │ │ │ │ ├── CurrentCaseStateUpdater.java
│ │ │ │ │ ├── CustodialDateValidator.java
│ │ │ │ │ ├── CustomiseHearingBundlePreparer.java
│ │ │ │ │ ├── DateOfBirthValidationHandler.java
│ │ │ │ │ ├── DecideAnApplicationHandler.java
│ │ │ │ │ ├── DecideAnApplicationMidEvent.java
│ │ │ │ │ ├── DecideAnApplicationPreparer.java
│ │ │ │ │ ├── DecideFtpaApplicationMidEvent.java
│ │ │ │ │ ├── DecisionAndReasonsGeneratedPreparer.java
│ │ │ │ │ ├── DecisionAndReasonsGeneratedSubStateProgression.java
│ │ │ │ │ ├── DecisionAndReasonsPreparer.java
│ │ │ │ │ ├── DecisionAndReasonsStartedPreparer.java
│ │ │ │ │ ├── DecisionAndReasonsStartedSubStateProgression.java
│ │ │ │ │ ├── DecisionLetterDateValidator.java
│ │ │ │ │ ├── DecisionWithoutHearingHandler.java
│ │ │ │ │ ├── DeriveHearingCentreHandler.java
│ │ │ │ │ ├── DerivePostcodeHandler.java
│ │ │ │ │ ├── DetainedEditAppealHandler.java
│ │ │ │ │ ├── DetentionFacilityEditAppealHandler.java
│ │ │ │ │ ├── DetentionStatusHandler.java
│ │ │ │ │ ├── DetentionValidator.java
│ │ │ │ │ ├── DirectionHandler.java
│ │ │ │ │ ├── DocumentServiceResponseException.java
│ │ │ │ │ ├── DraftHearingRequirementsHandler.java
│ │ │ │ │ ├── DraftHearingRequirementsPreparer.java
│ │ │ │ │ ├── EditAppealAfterSubmitHandler.java
│ │ │ │ │ ├── EditAppealTypePreparer.java
│ │ │ │ │ ├── EditCaseListingPreparer.java
│ │ │ │ │ ├── EjpAppellantLegalPracticeAddressMidEventHandler.java
│ │ │ │ │ ├── EjpContactPreferenceFieldMidEventHandler.java
│ │ │ │ │ ├── EjpContactPreferenceFieldsHandler.java
│ │ │ │ │ ├── EjpEditAppealHandler.java
│ │ │ │ │ ├── EjpTransferDownTurnOffNotificationHandler.java
│ │ │ │ │ ├── EjpTransferDownTurnOnNotificationsHandler.java
│ │ │ │ │ ├── EndAppealHandler.java
│ │ │ │ │ ├── ForceCaseProgressionToCaseUnderReviewHandler.java
│ │ │ │ │ ├── ForceCaseToSubmitHearingRequirementsHandler.java
│ │ │ │ │ ├── FtpaAppealDecisionStateHandler.java
│ │ │ │ │ ├── FtpaAppealStateHandler.java
│ │ │ │ │ ├── FtpaAppellantHandler.java
│ │ │ │ │ ├── FtpaAppellantPreparer.java
│ │ │ │ │ ├── FtpaDecisionMidEvent.java
│ │ │ │ │ ├── FtpaMigrateLegacyDataHandler.java
│ │ │ │ │ ├── FtpaRespondentHandler.java
│ │ │ │ │ ├── FtpaRespondentPreparer.java
│ │ │ │ │ ├── GenerateDocumentHandler.java
│ │ │ │ │ ├── GenerateServiceRequestPreparer.java
│ │ │ │ │ ├── GenerateUpdatedHearingBundleHandler.java
│ │ │ │ │ ├── GenerateUpdatedHearingBundlePreparer.java
│ │ │ │ │ ├── HasServiceRequestAlreadyValueHandler.java
│ │ │ │ │ ├── HearingChannelsDynamicListUpdater.java
│ │ │ │ │ ├── HearingIdListProcessor.java
│ │ │ │ │ ├── HearingRequirementsAppellantFlagsHandler.java
│ │ │ │ │ ├── HearingTypeHandler.java
│ │ │ │ │ ├── HearingsUpdateHearingRequestMidEventHandler.java
│ │ │ │ │ ├── HearingsUpdateHearingRequestPreparer.java
│ │ │ │ │ ├── HearingsUpdateHearingRequestSubmit.java
│ │ │ │ │ ├── HomeOfficeAppealTypeChecker.java
│ │ │ │ │ ├── HomeOfficeCaseNotificationsHandler.java
│ │ │ │ │ ├── HomeOfficeCaseValidateHandler.java
│ │ │ │ │ ├── HomeOfficeCaseValidatePreparer.java
│ │ │ │ │ ├── HomeOfficeDecisionDateChecker.java
│ │ │ │ │ ├── HomeOfficeReferenceFormatter.java
│ │ │ │ │ ├── HomeOfficeReferenceNumberTruncator.java
│ │ │ │ │ ├── HomeOfficeRequestHomeOfficeDataPreparer.java
│ │ │ │ │ ├── InCountryToOutOfCountryHandler.java
│ │ │ │ │ ├── InternalCaseCreationContactDetailsAppender.java
│ │ │ │ │ ├── InternalCaseToLegallyRepresentedHandler.java
│ │ │ │ │ ├── IsEjpHandler.java
│ │ │ │ │ ├── LeadershipJudgeFtpaDecisionHandler.java
│ │ │ │ │ ├── LegalRepOrganisationFormatter.java
│ │ │ │ │ ├── LegalRepresentativeCompanyNamePreparer.java
│ │ │ │ │ ├── LegalRepresentativeDetailsHandler.java
│ │ │ │ │ ├── LegalRepresentativeHearingRequirementsDirectionHandler.java
│ │ │ │ │ ├── LegalRepresentativeUpdateDetailsHandler.java
│ │ │ │ │ ├── LegalRepresentativeUpdateDetailsPreparer.java
│ │ │ │ │ ├── LetterSentOrReceivedHandler.java
│ │ │ │ │ ├── ListAssistIntegratedHandler.java
│ │ │ │ │ ├── ListAssistIntegrationHandler.java
│ │ │ │ │ ├── ListAssistIntegrationPreparer.java
│ │ │ │ │ ├── ListCaseMidEvent.java
│ │ │ │ │ ├── ListCasePreparer.java
│ │ │ │ │ ├── ListCaseWithoutHearingRequirementsHandler.java
│ │ │ │ │ ├── ListCaseWithoutHearingRequirementsPreparer.java
│ │ │ │ │ ├── ListCmaPreparer.java
│ │ │ │ │ ├── ListEditCaseHandler.java
│ │ │ │ │ ├── LocationRefDataEnabler.java
│ │ │ │ │ ├── MakeAnApplicationHandler.java
│ │ │ │ │ ├── MakeAnApplicationMidEvent.java
│ │ │ │ │ ├── MakeAnApplicationPreparer.java
│ │ │ │ │ ├── ManageFeeUpdateHandler.java
│ │ │ │ │ ├── ManageFeeUpdateMidEvent.java
│ │ │ │ │ ├── ManageFeeUpdatePreparer.java
│ │ │ │ │ ├── MarkAppealAsAdaHandler.java
│ │ │ │ │ ├── MarkAppealAsDetainedHandler.java
│ │ │ │ │ ├── MarkAppealAsRemittedPreparer.java
│ │ │ │ │ ├── MarkAppealAsRemittedUploadDecisionHandler.java
│ │ │ │ │ ├── MarkAsReadyForUtTransferHandler.java
│ │ │ │ │ ├── MarkEvidenceAsReviewedActionAvailableUpdater.java
│ │ │ │ │ ├── MigrateAriaCasesDocumentUploaderMidEvent.java
│ │ │ │ │ ├── MinorTagHandler.java
│ │ │ │ │ ├── NabaFeatureTogglePreparer.java
│ │ │ │ │ ├── NoticeOfChangeSetOrganisationToRemove.java
│ │ │ │ │ ├── PartyIdHandler.java
│ │ │ │ │ ├── PinInPostActivated.java
│ │ │ │ │ ├── PinInPostGenerator.java
│ │ │ │ │ ├── ProgressBarAdaSuffixAppender.java
│ │ │ │ │ ├── RecordAdjournmentDetailsHandler.java
│ │ │ │ │ ├── RecordAdjournmentDetailsMidEventHandler.java
│ │ │ │ │ ├── RecordAdjournmentDetailsPreparer.java
│ │ │ │ │ ├── RecordAdjournmentDetailsStateHandler.java
│ │ │ │ │ ├── RecordAllocatedJudgeHandler.java
│ │ │ │ │ ├── RecordApplicationHandler.java
│ │ │ │ │ ├── RecordAttendeesAndDurationHandler.java
│ │ │ │ │ ├── RecordOutOfTimeDecisionHandler.java
│ │ │ │ │ ├── RecordOutOfTimeDecisionPreparer.java
│ │ │ │ │ ├── RecordRemissionDecisionMidEvent.java
│ │ │ │ │ ├── RecordRemissionDecisionPreparer.java
│ │ │ │ │ ├── RecordRemissionDecisionStateHandler.java
│ │ │ │ │ ├── RefundConfirmationHandler.java
│ │ │ │ │ ├── ReinstateAppealPreparer.java
│ │ │ │ │ ├── ReinstateAppealStateHandler.java
│ │ │ │ │ ├── ReinstateCaseStateToPreClarifyingStateHandler.java
│ │ │ │ │ ├── RemoveAppealFromOnlineHandler.java
│ │ │ │ │ ├── RemoveCaseFlagHandler.java
│ │ │ │ │ ├── RemoveDetainedStatusHandler.java
│ │ │ │ │ ├── RemoveRepresentationPreparer.java
│ │ │ │ │ ├── RemoveWitnessCaseFlagsHandler.java
│ │ │ │ │ ├── RequestCaseBuildingHandler.java
│ │ │ │ │ ├── RequestCaseBuildingPreparer.java
│ │ │ │ │ ├── RequestCaseEditPreparer.java
│ │ │ │ │ ├── RequestCmaRequirementsHandler.java
│ │ │ │ │ ├── RequestCmaRequirementsPreparer.java
│ │ │ │ │ ├── RequestFeeRemissionAipPreparer.java
│ │ │ │ │ ├── RequestFeeRemissionHandler.java
│ │ │ │ │ ├── RequestFeeRemissionPreparer.java
│ │ │ │ │ ├── RequestHearingRequirementsDirectionHandler.java
│ │ │ │ │ ├── RequestHearingRequirementsPreparer.java
│ │ │ │ │ ├── RequestNewHearingRequirementsDirectionHandler.java
│ │ │ │ │ ├── RequestNewHearingRequirementsDirectionPreparer.java
│ │ │ │ │ ├── RequestReasonsForAppealPreparer.java
│ │ │ │ │ ├── RequestRespondentEvidenceAmendHandler.java
│ │ │ │ │ ├── RequestRespondentEvidenceHandler.java
│ │ │ │ │ ├── RequestRespondentEvidencePreparer.java
│ │ │ │ │ ├── RequestRespondentReviewHandler.java
│ │ │ │ │ ├── RequestRespondentReviewPreparer.java
│ │ │ │ │ ├── RequestResponseAmendHandler.java
│ │ │ │ │ ├── RequestResponseAmendPreparer.java
│ │ │ │ │ ├── RequestResponseReviewHandler.java
│ │ │ │ │ ├── ResidentJudgeFtpaDecisionHandler.java
│ │ │ │ │ ├── RespondentReviewAppealResponseAddedUpdater.java
│ │ │ │ │ ├── RestoreFromAdjournHandler.java
│ │ │ │ │ ├── RestoreFromAdjournStateHandler.java
│ │ │ │ │ ├── ReviewAmendDirectionHandler.java
│ │ │ │ │ ├── ReviewCmaRequirementsHandler.java
│ │ │ │ │ ├── ReviewCmaRequirementsPreparer.java
│ │ │ │ │ ├── ReviewDraftHearingRequirementsHandler.java
│ │ │ │ │ ├── ReviewDraftHearingRequirementsPreparer.java
│ │ │ │ │ ├── ReviewUpdateHearingRequirementsHandler.java
│ │ │ │ │ ├── ReviewUpdateHearingRequirementsPreparer.java
│ │ │ │ │ ├── RevokeCaseAccessHandler.java
│ │ │ │ │ ├── S94bStatusHandler.java
│ │ │ │ │ ├── SaveNotificationsToDataHandler.java
│ │ │ │ │ ├── SendDecisionAndReasonsHandler.java
│ │ │ │ │ ├── SendDecisionAndReasonsMidEventHandler.java
│ │ │ │ │ ├── SendDecisionAndReasonsPreparer.java
│ │ │ │ │ ├── SendDecisionAndReasonsPreventer.java
│ │ │ │ │ ├── SendDirectionActionAvailableUpdater.java
│ │ │ │ │ ├── SendDirectionWithQuestionsHandler.java
│ │ │ │ │ ├── SendDirectionWithQuestionsPreparer.java
│ │ │ │ │ ├── SendNotificationHandler.java
│ │ │ │ │ ├── ServiceRequestHandler.java
│ │ │ │ │ ├── SetCaseAsUnrepresentedHandler.java
│ │ │ │ │ ├── ShareACasePermissionsHandler.java
│ │ │ │ │ ├── ShareACaseUserListPreparer.java
│ │ │ │ │ ├── StartAppealMidEvent.java
│ │ │ │ │ ├── StatelessHandler.java
│ │ │ │ │ ├── SubmitAppealHandler.java
│ │ │ │ │ ├── SubmitAppealPreparer.java
│ │ │ │ │ ├── SubmitCasePreparer.java
│ │ │ │ │ ├── SubmitCmaRequirementsHandler.java
│ │ │ │ │ ├── TimeExtensionHandler.java
│ │ │ │ │ ├── TransferOutOfAdaHandler.java
│ │ │ │ │ ├── UpdateAppointmentAfterCmaHandler.java
│ │ │ │ │ ├── UpdateDetentionLocationCaseNoteHandler.java
│ │ │ │ │ ├── UpdateHearingRequirementsHandler.java
│ │ │ │ │ ├── UpdateInterpreterBookingStatusHandler.java
│ │ │ │ │ ├── UpdateInterpreterBookingStatusPreparer.java
│ │ │ │ │ ├── UpdateInterpreterDetailsHandler.java
│ │ │ │ │ ├── UpdateTribunalDecisionDocumentUploadRule31MidEvent.java
│ │ │ │ │ ├── UpdateTribunalDecisionHandler.java
│ │ │ │ │ ├── UpdateTribunalDecisionRule31MidEvent.java
│ │ │ │ │ ├── UploadAddendumEvidenceActionAvailableUpdater.java
│ │ │ │ │ ├── UploadAddendumEvidenceHandler.java
│ │ │ │ │ ├── UploadAddendumEvidenceLegalRepHomeOfficeAdminOfficerHandler.java
│ │ │ │ │ ├── UploadAdditionalEvidenceActionAvailableUpdater.java
│ │ │ │ │ ├── UploadAdditionalEvidenceHandler.java
│ │ │ │ │ ├── UploadAdditionalEvidenceHomeOfficeActionAvailableUpdater.java
│ │ │ │ │ ├── UploadAdditionalEvidenceHomeOfficeHandler.java
│ │ │ │ │ ├── UploadAppealFormHandler.java
│ │ │ │ │ ├── UploadDecisionLetterHandler.java
│ │ │ │ │ ├── UploadEjpDocumentsHandler.java
│ │ │ │ │ ├── UploadHomeOfficeAppealResponseHandler.java
│ │ │ │ │ ├── UploadHomeOfficeAppealResponsePreparer.java
│ │ │ │ │ ├── UploadHomeOfficeBundleHandler.java
│ │ │ │ │ ├── UploadHomeOfficeBundlePreparer.java
│ │ │ │ │ ├── UploadRespondentEvidenceHandler.java
│ │ │ │ │ ├── UploadSensitiveDocsAboutToSubmitHandler.java
│ │ │ │ │ ├── UpperTribunalBundlePreparer.java
│ │ │ │ │ ├── UpperTribunalStitchingCallbackHandler.java
│ │ │ │ │ ├── UtAppealReferenceChecker.java
│ │ │ │ │ ├── WitnessCaseFlagsHandler.java
│ │ │ │ │ ├── WitnessHandler.java
│ │ │ │ │ ├── WitnessInterpreterLanguageFlagsHandler.java
│ │ │ │ │ ├── WitnessInterpreterLanguagesDynamicListUpdater.java
│ │ │ │ │ ├── WitnessesDraftMidEventHandler.java
│ │ │ │ │ ├── WitnessesUpdateMidEventHandler.java
│ │ │ │ │ ├── allocatecase
│ │ │ │ │ ├── AllocateTheCaseResetOptionsHandler.java
│ │ │ │ │ ├── AllocateTheCaseService.java
│ │ │ │ │ ├── AllocateTheCaseToCaseWorkerHandler.java
│ │ │ │ │ ├── AllocateTheCaseToCaseWorkerMidEventHandler.java
│ │ │ │ │ ├── AllocateTheCaseToMeHandler.java
│ │ │ │ │ ├── CaseWorkerName.java
│ │ │ │ │ └── DisableAllocateTheCaseHandler.java
│ │ │ │ │ ├── applyforcosts
│ │ │ │ │ ├── AdditionalEvidenceForCostsHandler.java
│ │ │ │ │ ├── AdditionalEvidenceForCostsPreparer.java
│ │ │ │ │ ├── ApplyForCostsFeatureTogglerPreparer.java
│ │ │ │ │ ├── ApplyForCostsHandler.java
│ │ │ │ │ ├── ApplyForCostsMidEvent.java
│ │ │ │ │ ├── ConsiderMakingCostsOrderHandler.java
│ │ │ │ │ ├── ConsiderMakingCostsOrderPreparer.java
│ │ │ │ │ ├── DecideCostsHandler.java
│ │ │ │ │ ├── DecideCostsPreparer.java
│ │ │ │ │ ├── RespondToCostsHandler.java
│ │ │ │ │ └── RespondToCostsPreparer.java
│ │ │ │ │ ├── editdocs
│ │ │ │ │ ├── EditDocsAboutToSubmitHandler.java
│ │ │ │ │ ├── EditDocsCaseNoteService.java
│ │ │ │ │ ├── EditDocsMidEventHandler.java
│ │ │ │ │ └── EditDocsService.java
│ │ │ │ │ ├── flagcase
│ │ │ │ │ ├── FlagCaseHandler.java
│ │ │ │ │ ├── FlagCaseMidEventHandler.java
│ │ │ │ │ ├── RemoveFlagHandler.java
│ │ │ │ │ └── RemoveFlagPreparer.java
│ │ │ │ │ ├── migratedcase
│ │ │ │ │ ├── AriaCreateCaseHandler.java
│ │ │ │ │ ├── ProgressMigratedCaseHandler.java
│ │ │ │ │ └── StartAppealCreateCaseHandler.java
│ │ │ │ │ ├── payment
│ │ │ │ │ ├── AddedValidationPreparer.java
│ │ │ │ │ ├── AiPFeesHandler.java
│ │ │ │ │ ├── FeesAndStatusCheckPreparer.java
│ │ │ │ │ ├── FeesHandler.java
│ │ │ │ │ ├── FeesHelper.java
│ │ │ │ │ ├── MarkPaymentPaidPreparer.java
│ │ │ │ │ ├── MarkPaymentPaidStateHandler.java
│ │ │ │ │ ├── PayOfflineMigrationHandler.java
│ │ │ │ │ ├── PaymentHandler.java
│ │ │ │ │ ├── PaymentStateHandler.java
│ │ │ │ │ ├── RollbackPaymentHandler.java
│ │ │ │ │ └── RollbackPaymentPreparer.java
│ │ │ │ │ └── unlinkappeal
│ │ │ │ │ ├── UnlinkAppealHandler.java
│ │ │ │ │ └── UnlinkAppealPreparerHandler.java
│ │ │ └── service
│ │ │ │ ├── AccessCodeGenerator.java
│ │ │ │ ├── AppealReferenceNumberGenerator.java
│ │ │ │ ├── Appender.java
│ │ │ │ ├── ApplyForCostsAppender.java
│ │ │ │ ├── ApplyForCostsProvider.java
│ │ │ │ ├── AsylumCaseFeePaymentService.java
│ │ │ │ ├── AsylumCasePostFeePaymentService.java
│ │ │ │ ├── AsylumCaseValueInitializerFixer.java
│ │ │ │ ├── AsylumFieldCaseCategoryFixer.java
│ │ │ │ ├── AsylumFieldCaseNameFixer.java
│ │ │ │ ├── AsylumFieldLegalRepNameFixer.java
│ │ │ │ ├── AsylumFieldNameFixer.java
│ │ │ │ ├── AutoRequestHearingService.java
│ │ │ │ ├── CaseFlagAppender.java
│ │ │ │ ├── CaseWorkerService.java
│ │ │ │ ├── CommonRefDataDynamicListProvider.java
│ │ │ │ ├── CompanyNameProvider.java
│ │ │ │ ├── DataFixer.java
│ │ │ │ ├── DateAppender.java
│ │ │ │ ├── DirectionAppender.java
│ │ │ │ ├── DirectionPartiesResolver.java
│ │ │ │ ├── DirectionTagResolver.java
│ │ │ │ ├── DocumentGenerator.java
│ │ │ │ ├── DocumentReceiver.java
│ │ │ │ ├── DocumentsAppender.java
│ │ │ │ ├── DueDateService.java
│ │ │ │ ├── FeatureToggler.java
│ │ │ │ ├── FeePayment.java
│ │ │ │ ├── FeeService.java
│ │ │ │ ├── FtpaDisplayService.java
│ │ │ │ ├── HearingCentreFinder.java
│ │ │ │ ├── HearingDecisionProcessor.java
│ │ │ │ ├── HearingPartyIdGenerator.java
│ │ │ │ ├── HomeOfficeApi.java
│ │ │ │ ├── HomeOfficeApiService.java
│ │ │ │ ├── IaHearingsApiService.java
│ │ │ │ ├── IdamService.java
│ │ │ │ ├── LocationBasedFeatureToggler.java
│ │ │ │ ├── LocationRefDataService.java
│ │ │ │ ├── MakeAnApplicationAppender.java
│ │ │ │ ├── MakeAnApplicationTypesProvider.java
│ │ │ │ ├── NextHearingDateService.java
│ │ │ │ ├── NotificationSender.java
│ │ │ │ ├── OutOfTimeDecisionDetailsAppender.java
│ │ │ │ ├── PartyIdService.java
│ │ │ │ ├── PostFeePayment.java
│ │ │ │ ├── PostNotificationSender.java
│ │ │ │ ├── PreviousHearingAppender.java
│ │ │ │ ├── PreviousRepresentationAppender.java
│ │ │ │ ├── PreviousRequirementsAndRequestsAppender.java
│ │ │ │ ├── RefDataUserService.java
│ │ │ │ ├── RemissionDetailsAppender.java
│ │ │ │ ├── RoleAssignmentService.java
│ │ │ │ ├── Scheduler.java
│ │ │ │ ├── StrategicCaseFlagService.java
│ │ │ │ ├── TimeExtensionAppender.java
│ │ │ │ ├── WaFieldsPublisher.java
│ │ │ │ ├── WitnessNamesUpdateService.java
│ │ │ │ └── holidaydates
│ │ │ │ ├── CountryHolidayDates.java
│ │ │ │ ├── GovUkHolidayDatesClient.java
│ │ │ │ ├── HolidayDate.java
│ │ │ │ ├── HolidayLoader.java
│ │ │ │ ├── HolidayService.java
│ │ │ │ └── UkHolidayDates.java
│ │ │ └── infrastructure
│ │ │ ├── DbAppealReferenceNumberGenerator.java
│ │ │ ├── PostSubmitCallbackDispatcher.java
│ │ │ ├── PreSubmitCallbackDispatcher.java
│ │ │ ├── SystemDateProvider.java
│ │ │ ├── clients
│ │ │ ├── AsylumCaseCallbackApiDelegator.java
│ │ │ ├── AsylumCaseDocumentApiGenerator.java
│ │ │ ├── AsylumCaseNotificationApiSender.java
│ │ │ ├── AsylumCasePostNotificationApiSender.java
│ │ │ ├── AsylumCaseServiceResponseException.java
│ │ │ ├── BundleRequestExecutor.java
│ │ │ ├── CcdCaseAssignment.java
│ │ │ ├── CcdDataIntegrationException.java
│ │ │ ├── CcdSupplementaryUpdater.java
│ │ │ ├── CcdUpdater.java
│ │ │ ├── FeesRegisterApi.java
│ │ │ ├── IdamApi.java
│ │ │ ├── LaunchDarklyFeatureToggler.java
│ │ │ ├── ProfessionalOrganisationRetriever.java
│ │ │ ├── ProfessionalUsersRetriever.java
│ │ │ ├── ReferenceDataIntegrationException.java
│ │ │ ├── TimedEventMessageConverterCustomizer.java
│ │ │ ├── TimedEventServiceApi.java
│ │ │ ├── TimedEventServiceScheduler.java
│ │ │ ├── model
│ │ │ │ ├── TimedEvent.java
│ │ │ │ ├── ccd
│ │ │ │ │ ├── Organisation.java
│ │ │ │ │ └── OrganisationPolicy.java
│ │ │ │ ├── dto
│ │ │ │ │ └── hearingdetails
│ │ │ │ │ │ ├── CategorySubValues.java
│ │ │ │ │ │ ├── CategoryValues.java
│ │ │ │ │ │ └── CommonDataResponse.java
│ │ │ │ ├── idam
│ │ │ │ │ ├── Token.java
│ │ │ │ │ └── UserInfo.java
│ │ │ │ └── refdata
│ │ │ │ │ ├── CaseWorkerProfile.java
│ │ │ │ │ ├── CourtLocationCategory.java
│ │ │ │ │ ├── CourtVenue.java
│ │ │ │ │ └── UserIds.java
│ │ │ ├── refdata
│ │ │ │ ├── CommonDataRefApi.java
│ │ │ │ ├── HystrixRefDataCaseWorkerFallback.java
│ │ │ │ ├── LocationRefDataApi.java
│ │ │ │ └── RefDataCaseWorkerApi.java
│ │ │ └── roleassignment
│ │ │ │ └── RoleAssignmentApi.java
│ │ │ ├── config
│ │ │ ├── AsylumCaseDataConfiguration.java
│ │ │ ├── AuthCheckerConfiguration.java
│ │ │ ├── CacheConfiguration.java
│ │ │ ├── DisableHystrixFeignConfiguration.java
│ │ │ ├── FeatureToggleConfiguration.java
│ │ │ ├── FeesConfiguration.java
│ │ │ ├── FeignConfiguration.java
│ │ │ ├── GovNotifyConfiguration.java
│ │ │ ├── HealthCheckConfiguration.java
│ │ │ ├── HearingCentreFinderConfiguration.java
│ │ │ ├── JacksonConfiguration.java
│ │ │ ├── OpenApiConfiguration.java
│ │ │ ├── RestTemplateConfiguration.java
│ │ │ ├── SecurityConfiguration.java
│ │ │ ├── ServiceTokenGeneratorConfiguration.java
│ │ │ └── UserDetailsProviderConfiguration.java
│ │ │ ├── controllers
│ │ │ ├── PostSubmitCallbackController.java
│ │ │ ├── PreSubmitCallbackController.java
│ │ │ ├── WelcomeController.java
│ │ │ └── advice
│ │ │ │ ├── AsylumCaseRequestAdapter.java
│ │ │ │ ├── CallbackControllerAdvice.java
│ │ │ │ └── ErrorResponseLogger.java
│ │ │ ├── eventvalidation
│ │ │ ├── AsylumCaseEventValidForJourneyTypeChecker.java
│ │ │ ├── AsylumCaseSendDirectionEventValidForJourneyTypeChecker.java
│ │ │ ├── EventValid.java
│ │ │ ├── EventValidChecker.java
│ │ │ └── EventValidCheckers.java
│ │ │ ├── health
│ │ │ ├── DownStreamHealthIndicator.java
│ │ │ └── ServiceHealthIndicator.java
│ │ │ ├── security
│ │ │ ├── AccessTokenProvider.java
│ │ │ ├── AuthorizedRolesProvider.java
│ │ │ ├── CcdEventAuthorizor.java
│ │ │ ├── RequestUserAccessTokenProvider.java
│ │ │ ├── SpringAuthorizedRolesProvider.java
│ │ │ └── idam
│ │ │ │ ├── IdamAuthoritiesConverter.java
│ │ │ │ ├── IdamAuthorizor.java
│ │ │ │ ├── IdamUserDetails.java
│ │ │ │ ├── IdamUserDetailsHelper.java
│ │ │ │ ├── IdamUserDetailsProvider.java
│ │ │ │ └── IdentityManagerResponseException.java
│ │ │ ├── serialization
│ │ │ ├── AsylumCaseCallbackDeserializer.java
│ │ │ ├── Deserializer.java
│ │ │ ├── Serializer.java
│ │ │ └── StdSerializer.java
│ │ │ └── utils
│ │ │ ├── DirectionFinder.java
│ │ │ ├── ResourceLoader.java
│ │ │ └── StaffLocation.java
│ └── resources
│ │ ├── application-hc-mapping.yaml
│ │ ├── application-local.yaml
│ │ ├── application-postcodes.yaml
│ │ ├── application-wa-local.yaml
│ │ ├── application.yaml
│ │ ├── caseIdForRetrigger.json
│ │ ├── config.properties
│ │ └── db
│ │ └── migration
│ │ ├── V1.0.1__init_tables.sql
│ │ ├── V1.0.2__case_id_bigint.sql
│ │ └── V1.0.3__inital_sequence.sql
├── smokeTest
│ └── java
│ │ └── uk
│ │ └── gov
│ │ └── hmcts
│ │ └── reform
│ │ └── iacaseapi
│ │ └── SmokeTest.java
└── test
│ ├── java
│ └── uk
│ │ └── gov
│ │ └── hmcts
│ │ └── reform
│ │ └── iacaseapi
│ │ ├── domain
│ │ ├── entities
│ │ │ ├── AppealDecisionTest.java
│ │ │ ├── AppealStatusTest.java
│ │ │ ├── AppealTypeForDisplayTest.java
│ │ │ ├── AppealTypeTest.java
│ │ │ ├── ApplyForCostsTest.java
│ │ │ ├── AsylumCaseFieldDefinitionTest.java
│ │ │ ├── BaseLocationTest.java
│ │ │ ├── CaseFlagTypeTest.java
│ │ │ ├── CaseNoteMigrationTest.java
│ │ │ ├── CaseNoteTest.java
│ │ │ ├── ContactPreferenceTest.java
│ │ │ ├── ContactPreferenceUnrepTest.java
│ │ │ ├── CustodialSentenceDateTest.java
│ │ │ ├── DatesToAvoidTest.java
│ │ │ ├── DecisionAndReasonsTest.java
│ │ │ ├── DetentionFacilityTest.java
│ │ │ ├── DetentionStatusTest.java
│ │ │ ├── DirectionTagTest.java
│ │ │ ├── DirectionTest.java
│ │ │ ├── DocumentTagTest.java
│ │ │ ├── DocumentWithDescriptionTest.java
│ │ │ ├── DocumentWithMetadataTest.java
│ │ │ ├── EditableDirectionTest.java
│ │ │ ├── FeeTribunalActionTest.java
│ │ │ ├── FeeUpdateReasonTest.java
│ │ │ ├── HearingCentreTest.java
│ │ │ ├── HearingConductionOptionsTest.java
│ │ │ ├── HearingLengthTest.java
│ │ │ ├── InterpreterDetailsTest.java
│ │ │ ├── InterpreterLanguageRefDataTest.java
│ │ │ ├── LanguageTest.java
│ │ │ ├── LegRepAddressUkTest.java
│ │ │ ├── LegacyCaseFlagTest.java
│ │ │ ├── MakeAnApplicationTest.java
│ │ │ ├── MakeAnApplicationTypesTest.java
│ │ │ ├── OrganisationOnDecisionLetterTest.java
│ │ │ ├── OutOfCountryDecisionTypeTest.java
│ │ │ ├── OutOfTimeDecisionDetailsTest.java
│ │ │ ├── OutOfTimeDecisionTypeTest.java
│ │ │ ├── PartiesTest.java
│ │ │ ├── PreviousDatesTest.java
│ │ │ ├── PreviousHearingTest.java
│ │ │ ├── PreviousRepresentationTest.java
│ │ │ ├── ReheardHearingDocumentsTest.java
│ │ │ ├── RemissionDetailsTest.java
│ │ │ ├── RemissionTypeTest.java
│ │ │ ├── SourceOfAppealTest.java
│ │ │ ├── StoredNotificationTest.java
│ │ │ ├── StrategicCaseFlagTest.java
│ │ │ ├── SubscriberTest.java
│ │ │ ├── SubscriberTypeTest.java
│ │ │ ├── UpdatedTribunalRulesTest.java
│ │ │ ├── UserRoleLabelTest.java
│ │ │ ├── UserRoleTest.java
│ │ │ ├── WitnessDetailsTest.java
│ │ │ ├── ccd
│ │ │ │ ├── CaseDetailsTest.java
│ │ │ │ ├── CheckValuesTest.java
│ │ │ │ ├── EventTest.java
│ │ │ │ ├── HoursAndMinutesTest.java
│ │ │ │ ├── HoursMinutesTest.java
│ │ │ │ ├── NationalityFieldValueTest.java
│ │ │ │ ├── NationalityTest.java
│ │ │ │ ├── StateTest.java
│ │ │ │ ├── callback
│ │ │ │ │ ├── CallbackTest.java
│ │ │ │ │ ├── DispatchPriorityTest.java
│ │ │ │ │ ├── PostSubmitCallbackResponseTest.java
│ │ │ │ │ ├── PreSubmitCallbackResponseTest.java
│ │ │ │ │ └── PreSubmitCallbackStageTest.java
│ │ │ │ └── field
│ │ │ │ │ ├── AddressUkTest.java
│ │ │ │ │ ├── DocumentTest.java
│ │ │ │ │ ├── IdValueTest.java
│ │ │ │ │ ├── PaymentStatusTest.java
│ │ │ │ │ └── YesOrNoTest.java
│ │ │ ├── em
│ │ │ │ ├── BundleDocumentTest.java
│ │ │ │ └── BundleTest.java
│ │ │ ├── homeoffice
│ │ │ │ ├── ApplicationStatusTest.java
│ │ │ │ ├── CodeWithDescriptionTest.java
│ │ │ │ ├── DecisionCommunicationTest.java
│ │ │ │ ├── HomeOfficeCaseStatusTest.java
│ │ │ │ ├── HomeOfficeErrorTest.java
│ │ │ │ ├── HomeOfficeMetadataTest.java
│ │ │ │ ├── HomeOfficeSearchResponseTest.java
│ │ │ │ ├── MessageHeaderTest.java
│ │ │ │ ├── PersonTest.java
│ │ │ │ └── RejectionReasonTest.java
│ │ │ └── roleassignment
│ │ │ │ ├── AssignmentTest.java
│ │ │ │ ├── RequestedRolesTest.java
│ │ │ │ ├── RoleNameTest.java
│ │ │ │ └── RoleRequestTest.java
│ │ ├── handlers
│ │ │ ├── HandlerUtilsTest.java
│ │ │ ├── InterpreterLanguageRefDataTest.java
│ │ │ ├── InterpreterLanguagesUtilsTest.java
│ │ │ ├── PreSubmitCallbackHandlerTest.java
│ │ │ ├── postsubmit
│ │ │ │ ├── AdaSuitabilityReviewConfirmationTest.java
│ │ │ │ ├── AddCaseNoteConfirmationTest.java
│ │ │ │ ├── AdjournWithoutDateConfirmationTest.java
│ │ │ │ ├── AllocateTheCaseConfirmationTest.java
│ │ │ │ ├── AppealPaymentConfirmationProviderTest.java
│ │ │ │ ├── AppealResponseAddedConfirmationTest.java
│ │ │ │ ├── AppealSavedConfirmationTest.java
│ │ │ │ ├── AppealSubmittedConfirmationTest.java
│ │ │ │ ├── BuildCaseConfirmationTest.java
│ │ │ │ ├── CancelAutomaticEndAppealPaidConfirmationTest.java
│ │ │ │ ├── CaseSubmittedConfirmationTest.java
│ │ │ │ ├── ChangeDirectionDueDateConfirmationTest.java
│ │ │ │ ├── ChangeHearingCentreConfirmationTest.java
│ │ │ │ ├── ChangeRepresentationConfirmationTest.java
│ │ │ │ ├── CreateCaseSummaryConfirmationTest.java
│ │ │ │ ├── CustomiseHearingBundleConfirmationTest.java
│ │ │ │ ├── DecideAnApplicationConfirmationTest.java
│ │ │ │ ├── DecisionAndReasonsStartedConfirmationTest.java
│ │ │ │ ├── EditAppealAfterSubmitConfirmationTest.java
│ │ │ │ ├── EditCaseListingConfirmationTest.java
│ │ │ │ ├── EjpTurnOnNotificationConfirmationTest.java
│ │ │ │ ├── EndAppealAutomaticallyConfirmationTest.java
│ │ │ │ ├── EndAppealConfirmationTest.java
│ │ │ │ ├── ForceCaseProgressionToCaseUnderReviewConfirmationTest.java
│ │ │ │ ├── ForceCaseToSubmitHearingRequirementsConfirmationTest.java
│ │ │ │ ├── FtpaAppellantConfirmationTest.java
│ │ │ │ ├── FtpaRespondentConfirmationTest.java
│ │ │ │ ├── GenerateDecisionAndReasonsConfirmationTest.java
│ │ │ │ ├── GenerateHearingBundleConfirmationTest.java
│ │ │ │ ├── GenerateServiceRequestMakeAPaymentConfirmationTest.java
│ │ │ │ ├── GenerateUpdatedHearingBundleConfirmationTest.java
│ │ │ │ ├── GenerateUpperTribunalBundleConfirmationTest.java
│ │ │ │ ├── HearingAttendeesAndDurationRecordedConfirmationTest.java
│ │ │ │ ├── HearingsUpdateHearingRequestConfirmationTest.java
│ │ │ │ ├── LeadershipJudgeFtpaDecisionConfirmationTest.java
│ │ │ │ ├── LegalRepresentativeUpdateDetailsConfirmationTest.java
│ │ │ │ ├── ListAssistIntegrationConfirmationTest.java
│ │ │ │ ├── ListCaseConfirmationTest.java
│ │ │ │ ├── ListCaseWithoutHearingRequirementsConfirmationTest.java
│ │ │ │ ├── ListCmaConfirmationTest.java
│ │ │ │ ├── MakeAnApplicationConfirmationTest.java
│ │ │ │ ├── ManageFeeUpdateConfirmationTest.java
│ │ │ │ ├── MarkAppealAsAdaConfirmationTest.java
│ │ │ │ ├── MarkAppealAsDetainedConfirmationTest.java
│ │ │ │ ├── MarkAppealAsReadyForUtTransferConfirmationTest.java
│ │ │ │ ├── MarkAppealAsRemittedConfirmationTest.java
│ │ │ │ ├── MarkAppealPaidConfirmationTest.java
│ │ │ │ ├── MigrateAriaCasesDocumentUploaderConfirmationTest.java
│ │ │ │ ├── PayAndSubmitConfirmationTest.java
│ │ │ │ ├── RecordAdjournmentDetailsConfirmationTest.java
│ │ │ │ ├── RecordAllocatedJudgeConfirmationTest.java
│ │ │ │ ├── RecordApplicationConfirmationTest.java
│ │ │ │ ├── RecordOutOfTimeDecisionConfirmationTest.java
│ │ │ │ ├── RecordRemissionDecisionConfirmationTest.java
│ │ │ │ ├── RefundConfirmationConfirmationTest.java
│ │ │ │ ├── ReinstateAppealConfirmationTest.java
│ │ │ │ ├── RemoveAppealFromOnlineConfirmationTest.java
│ │ │ │ ├── RemoveDetainedStatusConfirmationTest.java
│ │ │ │ ├── RequestCaseBuildingConfirmationTest.java
│ │ │ │ ├── RequestCaseEditConfirmationTest.java
│ │ │ │ ├── RequestCmaRequirementsConfirmationTest.java
│ │ │ │ ├── RequestFeeRemissionConfirmationTest.java
│ │ │ │ ├── RequestHomeOfficeDataConfirmationTest.java
│ │ │ │ ├── RequestReasonsForAppealConfirmationTest.java
│ │ │ │ ├── RequestRespondentEvidenceConfirmationTest.java
│ │ │ │ ├── RequestRespondentReviewConfirmationTest.java
│ │ │ │ ├── RequestResponseAmendConfirmationTest.java
│ │ │ │ ├── RequestResponseReviewConfirmationTest.java
│ │ │ │ ├── ResidentJudgeFtpaDecisionConfirmationTest.java
│ │ │ │ ├── RestoreStateFromAdjournConfirmationTest.java
│ │ │ │ ├── RetriggerWaTasksConfirmationTest.java
│ │ │ │ ├── RetriggerWaTasksForFixedCaseIdHandlerTest.java
│ │ │ │ ├── ReviewCmaRequirementsConfirmationTest.java
│ │ │ │ ├── ReviewHearingRequirementsConfirmationTest.java
│ │ │ │ ├── ReviewUpdateHearingRequirementsConfirmationTest.java
│ │ │ │ ├── RevokeCaseAccessConfirmationTest.java
│ │ │ │ ├── SendDecisionAndReasonsConfirmationTest.java
│ │ │ │ ├── SendDirectionConfirmationTest.java
│ │ │ │ ├── SendDirectionWithQuestionsConfirmationTest.java
│ │ │ │ ├── SubmitHearingRequirementsConfirmationTest.java
│ │ │ │ ├── TransferOutOfAdaConfirmationTest.java
│ │ │ │ ├── UpdateAppointmentAfterCmaConfirmationTest.java
│ │ │ │ ├── UpdateDetentionLocationConfirmationTest.java
│ │ │ │ ├── UpdateHearingAdjustmentsConfirmationTest.java
│ │ │ │ ├── UpdateHearingRequirementsConfirmationTest.java
│ │ │ │ ├── UpdateInterpreterBookingStatusConfirmationTest.java
│ │ │ │ ├── UpdateInterpreterDetailsConfirmationTest.java
│ │ │ │ ├── UpdateTribunalDecisionConfirmationTest.java
│ │ │ │ ├── UploadAddendumEvidenceConfirmationTest.java
│ │ │ │ ├── UploadAdditionalEvidenceConfirmationTest.java
│ │ │ │ ├── UploadAdditionalEvidenceHomeOfficeConfirmationTest.java
│ │ │ │ ├── UploadHearingRecordingConfirmationTest.java
│ │ │ │ ├── UploadHomeOfficeAppealResponseConfirmationTest.java
│ │ │ │ ├── UploadHomeOfficeBundleConfirmationTest.java
│ │ │ │ ├── UploadRespondentEvidenceConfirmationTest.java
│ │ │ │ ├── UploadSensitiveDocsConfirmationTest.java
│ │ │ │ ├── applyForCosts
│ │ │ │ │ ├── AdditionalEvidenceForCostsConfirmationTest.java
│ │ │ │ │ ├── ApplyForCostsConfirmationTest.java
│ │ │ │ │ ├── ConsiderMakingCostsOrderConfirmationTest.java
│ │ │ │ │ ├── DecideCostsConfirmationTest.java
│ │ │ │ │ └── RespondToCostsConfirmationTest.java
│ │ │ │ ├── editdocs
│ │ │ │ │ ├── EditDocsAuditLogHandlerTest.java
│ │ │ │ │ ├── EditDocsAuditLogServiceTest.java
│ │ │ │ │ └── EditDocsAuditServiceTest.java
│ │ │ │ ├── flagcase
│ │ │ │ │ ├── FlagCaseConfirmationTest.java
│ │ │ │ │ └── RemoveFlagConfirmationTest.java
│ │ │ │ └── linkappeal
│ │ │ │ │ ├── LinkAppealConfirmationTest.java
│ │ │ │ │ └── UnlinkAppealConfirmationTest.java
│ │ │ └── presubmit
│ │ │ │ ├── AcceleratedDetainedAppealValidationHandlerTest.java
│ │ │ │ ├── AdaCaseBuildingPreventerTest.java
│ │ │ │ ├── AdaSuitabilityReviewPreparerTest.java
│ │ │ │ ├── AddAppealResponseHandlerTest.java
│ │ │ │ ├── AddAppellantDocumentsHandlerTest.java
│ │ │ │ ├── AddBaseLocationFromHearingCentreForOldCasesFixHandlerTest.java
│ │ │ │ ├── AddCaseNoteHandlerTest.java
│ │ │ │ ├── AddPaymentRequestCaseNoteHandlerTest.java
│ │ │ │ ├── AddedValidationPreparerTest.java
│ │ │ │ ├── AdditionalInstructionsHandlerTest.java
│ │ │ │ ├── AdjournWithoutDateHandlerTest.java
│ │ │ │ ├── AdvancedFinalBundlingStateHandlerTest.java
│ │ │ │ ├── AdvancedFinalBundlingStitchingCallbackHandlerTest.java
│ │ │ │ ├── AgeAssessmentAppealPreparerTest.java
│ │ │ │ ├── AgeAssessmentDataEditAppealHandlerTest.java
│ │ │ │ ├── AgeAssessmentVisibilityHandlerTest.java
│ │ │ │ ├── AipEditAppealPreparerTest.java
│ │ │ │ ├── AipToLegalRepJourneyHandlerTest.java
│ │ │ │ ├── AnonymousByDefaultHandlerTest.java
│ │ │ │ ├── AppealGroundsForDisplayFormatterTest.java
│ │ │ │ ├── AppealOutOfCountryEditAppealAipHandlerTest.java
│ │ │ │ ├── AppealOutOfCountryEditAppealHandlerTest.java
│ │ │ │ ├── AppealOutOfCountryHandlerTest.java
│ │ │ │ ├── AppealReferenceNumberCcdHandlerTest.java
│ │ │ │ ├── AppealReferenceNumberHandlerTest.java
│ │ │ │ ├── AppealSubmitHandlerTest.java
│ │ │ │ ├── AppealTypeHandlerTest.java
│ │ │ │ ├── AppealUserRoleAppenderTest.java
│ │ │ │ ├── AppealWasNotSubmittedSupportingDocumentsHandlerTest.java
│ │ │ │ ├── AppellantInterpreterLanguageFlagsHandlerTest.java
│ │ │ │ ├── AppellantInterpreterLanguagesDynamicListUpdaterTest.java
│ │ │ │ ├── AppellantNameForDisplayFormatterTest.java
│ │ │ │ ├── AppellantPhoneNumberValidatorTest.java
│ │ │ │ ├── AriaNoticeOfChangePreventerTest.java
│ │ │ │ ├── AsylumCaseCcdReferenceNumberHandlerTest.java
│ │ │ │ ├── AsylumCaseDataFixingHandlerTest.java
│ │ │ │ ├── AsylumSupplementaryDataFixingHandlerTest.java
│ │ │ │ ├── AutoBuildCaseDirectionHandlerTest.java
│ │ │ │ ├── AutoLegalRepresentativeReviewDirectionHandlerTest.java
│ │ │ │ ├── AutomaticDirectionRequestingHearingRequirementsHandlerTest.java
│ │ │ │ ├── AutomaticEndAppealForNonPaymentEaHuTriggerTest.java
│ │ │ │ ├── AutomaticEndAppealForRemissionRejectedTriggerTest.java
│ │ │ │ ├── AutomaticInternalSendPaymentReminderTriggerTest.java
│ │ │ │ ├── AutomaticPaymentReminderRemissionLegalRepTriggerTest.java
│ │ │ │ ├── BailApplicationNumberHandlerTest.java
│ │ │ │ ├── BuildCaseHandlerTest.java
│ │ │ │ ├── BuildCasePreparerTest.java
│ │ │ │ ├── CancelAutomaticDirectionRequestingHearingRequirementsHandlerTest.java
│ │ │ │ ├── CancelAutomaticPaymentReminderRemissionLegalRepTriggerTest.java
│ │ │ │ ├── CaseBuildingReadyForSubmissionUpdaterTest.java
│ │ │ │ ├── CaseManagementCategoryAppenderTest.java
│ │ │ │ ├── CaseManagementLocationServiceTest.java
│ │ │ │ ├── ChangeDirectionDueDateActionAvailableUpdaterTest.java
│ │ │ │ ├── ChangeDirectionDueDateHandlerTest.java
│ │ │ │ ├── ChangeDirectionDueDatePreparerTest.java
│ │ │ │ ├── ChangeDirectionDueMidEventTest.java
│ │ │ │ ├── ChangeHearingCentreHandlerTest.java
│ │ │ │ ├── CompleteClarifyingQuestionsHandlerTest.java
│ │ │ │ ├── CreateCaseSummaryHandlerTest.java
│ │ │ │ ├── CreateCaseSummaryPreparerTest.java
│ │ │ │ ├── CreateFlagHandlerTest.java
│ │ │ │ ├── CurrentCaseStateUpdaterTest.java
│ │ │ │ ├── CustodialDateValidatorTest.java
│ │ │ │ ├── CustomiseHearingBundlePreparerTest.java
│ │ │ │ ├── DateOfBirthValidationHandlerTest.java
│ │ │ │ ├── DecideAnApplicationHandlerTest.java
│ │ │ │ ├── DecideAnApplicationMidEventTest.java
│ │ │ │ ├── DecideAnApplicationPreparerTest.java
│ │ │ │ ├── DecideFtpaApplicationMidEventTest.java
│ │ │ │ ├── DecisionAndReasonsGeneratedPreparerTest.java
│ │ │ │ ├── DecisionAndReasonsGeneratedSubStateProgressionTest.java
│ │ │ │ ├── DecisionAndReasonsPreparerTest.java
│ │ │ │ ├── DecisionAndReasonsStartedPreparerTest.java
│ │ │ │ ├── DecisionAndReasonsStartedSubStateProgressionTest.java
│ │ │ │ ├── DecisionLetterDateValidatorTest.java
│ │ │ │ ├── DecisionWithoutHearingHandlerTest.java
│ │ │ │ ├── DeriveHearingCentreHandlerTest.java
│ │ │ │ ├── DerivePostcodeHandlerTest.java
│ │ │ │ ├── DetainedEditAppealHandlerTest.java
│ │ │ │ ├── DetentionFacilityEditAppealHandlerTest.java
│ │ │ │ ├── DetentionStatusHandlerTest.java
│ │ │ │ ├── DetentionValidatorTest.java
│ │ │ │ ├── DirectionHandlerTest.java
│ │ │ │ ├── DraftHearingRequirementsHandlerTest.java
│ │ │ │ ├── DraftHearingRequirementsPreparerTest.java
│ │ │ │ ├── EditAppealAfterSubmitHandlerTest.java
│ │ │ │ ├── EditAppealTypePreparerTest.java
│ │ │ │ ├── EditCaseListingPreparerTest.java
│ │ │ │ ├── EjpAppellantLegalPracticeAddressMidEventHandlerTest.java
│ │ │ │ ├── EjpContactPreferenceFieldMidEventHandlerTest.java
│ │ │ │ ├── EjpContactPreferenceFieldsHandlerTest.java
│ │ │ │ ├── EjpEditAppealHandlerTest.java
│ │ │ │ ├── EjpTransferDownTurnOffNotificationHandlerTest.java
│ │ │ │ ├── EjpTransferDownTurnOnNotificationHandlerTest.java
│ │ │ │ ├── EndAppealHandlerTest.java
│ │ │ │ ├── FeePaymentDisplayProviderTest.java
│ │ │ │ ├── FeesHandlerTest.java
│ │ │ │ ├── ForceCaseProgressionToCaseUnderReviewHandlerTest.java
│ │ │ │ ├── ForceCaseToSubmitHearingRequirementsHandlerTest.java
│ │ │ │ ├── FtpaAppealDecisionStateHandlerTest.java
│ │ │ │ ├── FtpaAppealStateHandlerTest.java
│ │ │ │ ├── FtpaAppellantHandlerTest.java
│ │ │ │ ├── FtpaAppellantPreparerTest.java
│ │ │ │ ├── FtpaDecisionMidEventTest.java
│ │ │ │ ├── FtpaMigrateLegacyDataHandlerTest.java
│ │ │ │ ├── FtpaRespondentHandlerTest.java
│ │ │ │ ├── FtpaRespondentPreparerTest.java
│ │ │ │ ├── GenerateDocumentHandlerTest.java
│ │ │ │ ├── GenerateServiceRequestPreparerTest.java
│ │ │ │ ├── GenerateUpdatedHearingBundleHandlerTest.java
│ │ │ │ ├── GenerateUpdatedHearingBundlePreparerTest.java
│ │ │ │ ├── HasServiceRequestAlreadyValueHandlerTest.java
│ │ │ │ ├── HearingChannelsDynamicListUpdaterTest.java
│ │ │ │ ├── HearingIdListProcessorTest.java
│ │ │ │ ├── HearingRequirementsAppellantFlagsHandlerTest.java
│ │ │ │ ├── HearingTypeHandlerTest.java
│ │ │ │ ├── HearingsUpdateHearingRequestMidEventHandlerTest.java
│ │ │ │ ├── HearingsUpdateHearingRequestPreparerTest.java
│ │ │ │ ├── HearingsUpdateHearingRequestSubmitTest.java
│ │ │ │ ├── HomeOfficeAppealTypeCheckerTest.java
│ │ │ │ ├── HomeOfficeCaseNotificationsHandlerTest.java
│ │ │ │ ├── HomeOfficeCaseValidateHandlerTest.java
│ │ │ │ ├── HomeOfficeCaseValidatePreparerTest.java
│ │ │ │ ├── HomeOfficeDecisionDateCheckerTest.java
│ │ │ │ ├── HomeOfficeReferenceFormatterTest.java
│ │ │ │ ├── HomeOfficeReferenceNumberTruncatorTest.java
│ │ │ │ ├── HomeOfficeRequestHomeOfficeDataPreparerTest.java
│ │ │ │ ├── InCountryToOutOfCountryHandlerTest.java
│ │ │ │ ├── InternalCaseCreationContactDetailsAppenderTest.java
│ │ │ │ ├── InternalCaseToLegallyRepresentedHandlerTest.java
│ │ │ │ ├── IsEjpHandlerTest.java
│ │ │ │ ├── LeadershipJudgeFtpaDecisionHandlerTest.java
│ │ │ │ ├── LegalRepOrganisationFormatterTest.java
│ │ │ │ ├── LegalRepresentativeCompanyNamePreparerTest.java
│ │ │ │ ├── LegalRepresentativeDetailsHandlerTest.java
│ │ │ │ ├── LegalRepresentativeHearingRequirementsDirectionHandlerTest.java
│ │ │ │ ├── LegalRepresentativeUpdateDetailsHandlerTest.java
│ │ │ │ ├── LegalRepresentativeUpdateDetailsPreparerTest.java
│ │ │ │ ├── LetterSentOrReceivedHandlerTest.java
│ │ │ │ ├── ListAssistIntegratedHandlerTest.java
│ │ │ │ ├── ListAssistIntegrationHandlerTest.java
│ │ │ │ ├── ListAssistIntegrationPreparerTest.java
│ │ │ │ ├── ListCaseMidEventTest.java
│ │ │ │ ├── ListCasePreparerTest.java
│ │ │ │ ├── ListCaseWithoutHearingRequirementsHandlerTest.java
│ │ │ │ ├── ListCaseWithoutHearingRequirementsPreparerTest.java
│ │ │ │ ├── ListCmaPreparerTest.java
│ │ │ │ ├── ListEditCaseHandlerTest.java
│ │ │ │ ├── LocationRefDataEnablerTest.java
│ │ │ │ ├── MakeAnApplicationHandlerTest.java
│ │ │ │ ├── MakeAnApplicationMidEventTest.java
│ │ │ │ ├── MakeAnApplicationPreparerTest.java
│ │ │ │ ├── ManageFeeUpdateHandlerTest.java
│ │ │ │ ├── ManageFeeUpdateMidEventTest.java
│ │ │ │ ├── ManageFeeUpdatePreparerTest.java
│ │ │ │ ├── MarkAppealAsAdaHandlerTest.java
│ │ │ │ ├── MarkAppealAsDetainedHandlerTest.java
│ │ │ │ ├── MarkAppealAsRemittedPreparerTest.java
│ │ │ │ ├── MarkAppealAsRemittedUploadDecisionHandlerTest.java
│ │ │ │ ├── MarkAsReadyForUtTransferHandlerTest.java
│ │ │ │ ├── MarkEvidenceAsReviewedActionAvailableUpdaterTest.java
│ │ │ │ ├── MigrateAriaCasesDocumentUploaderMidEventTest.java
│ │ │ │ ├── MinorTagHandlerTest.java
│ │ │ │ ├── NabaFeatureTogglePreparerTest.java
│ │ │ │ ├── NoticeOfChangeSetOrganisationToRemoveTest.java
│ │ │ │ ├── PartyIdHandlerTest.java
│ │ │ │ ├── PartyIdServiceTest.java
│ │ │ │ ├── PinInPostActivatedTest.java
│ │ │ │ ├── PinInPostGeneratorTest.java
│ │ │ │ ├── ProgressBarAdaSuffixAppenderTest.java
│ │ │ │ ├── RecordAdjournmentDetailsHandlerTest.java
│ │ │ │ ├── RecordAdjournmentDetailsMidEventHandlerTest.java
│ │ │ │ ├── RecordAdjournmentDetailsPreparerTest.java
│ │ │ │ ├── RecordAdjournmentDetailsStateHandlerTest.java
│ │ │ │ ├── RecordAllocatedJudgeHandlerTest.java
│ │ │ │ ├── RecordApplicationHandlerTest.java
│ │ │ │ ├── RecordAttendeesAndDurationHandlerTest.java
│ │ │ │ ├── RecordOutOfTimeDecisionHandlerTest.java
│ │ │ │ ├── RecordOutOfTimeDecisionPreparerTest.java
│ │ │ │ ├── RecordRemissionDecisionMidEventTest.java
│ │ │ │ ├── RecordRemissionDecisionPreparerTest.java
│ │ │ │ ├── RecordRemissionDecisionStateHandlerTest.java
│ │ │ │ ├── RefundConfirmationHandlerTest.java
│ │ │ │ ├── ReinstateAppealPreparerTest.java
│ │ │ │ ├── ReinstateAppealStateHandlerTest.java
│ │ │ │ ├── ReinstateCaseStateToPreClarifyingStateHandlerTest.java
│ │ │ │ ├── RemoveAppealFromOnlineHandlerTest.java
│ │ │ │ ├── RemoveCaseFlagHandlerTest.java
│ │ │ │ ├── RemoveDetainedStatusHandlerTest.java
│ │ │ │ ├── RemoveRepresentationPreparerTest.java
│ │ │ │ ├── RemoveWitnessCaseFlagsHandlerTest.java
│ │ │ │ ├── RequestCaseBuildingHandlerTest.java
│ │ │ │ ├── RequestCaseBuildingPreparerTest.java
│ │ │ │ ├── RequestCaseEditPreparerTest.java
│ │ │ │ ├── RequestCmaRequirementsHandlerTest.java
│ │ │ │ ├── RequestCmaRequirementsPreparerTest.java
│ │ │ │ ├── RequestFeeRemissionAipPreparerTest.java
│ │ │ │ ├── RequestFeeRemissionHandlerTest.java
│ │ │ │ ├── RequestFeeRemissionPreparerTest.java
│ │ │ │ ├── RequestHearingRequirementsDirectionTest.java
│ │ │ │ ├── RequestHearingRequirementsPreparerTest.java
│ │ │ │ ├── RequestNewHearingRequirementsDirectionHandlerTest.java
│ │ │ │ ├── RequestNewHearingRequirementsDirectionPreparerTest.java
│ │ │ │ ├── RequestReasonsForAppealPreparerTest.java
│ │ │ │ ├── RequestRespondentEvidenceAmendHandlerTest.java
│ │ │ │ ├── RequestRespondentEvidenceHandlerTest.java
│ │ │ │ ├── RequestRespondentEvidencePreparerTest.java
│ │ │ │ ├── RequestRespondentReviewHandlerTest.java
│ │ │ │ ├── RequestRespondentReviewPreparerTest.java
│ │ │ │ ├── RequestResponseAmendHandlerTest.java
│ │ │ │ ├── RequestResponseAmendPreparerTest.java
│ │ │ │ ├── RequestResponseReviewHandlerTest.java
│ │ │ │ ├── ResidentJudgeFtpaDecisionHandlerTest.java
│ │ │ │ ├── RespondToCostsPreparerTest.java
│ │ │ │ ├── RespondentReviewAppealResponseAddedUpdaterTest.java
│ │ │ │ ├── RestoreFromAdjournHandlerTest.java
│ │ │ │ ├── RestoreFromAdjournStateHandlerTest.java
│ │ │ │ ├── ReviewAmendDirectionHandlerTest.java
│ │ │ │ ├── ReviewCmaRequirementsHandlerTest.java
│ │ │ │ ├── ReviewCmaRequirementsPreparerTest.java
│ │ │ │ ├── ReviewDraftHearingRequirementsHandlerTest.java
│ │ │ │ ├── ReviewDraftHearingRequirementsPreparerTest.java
│ │ │ │ ├── ReviewUpdateHearingRequirementsHandlerTest.java
│ │ │ │ ├── ReviewUpdateHearingRequirementsPreparerTest.java
│ │ │ │ ├── RevokeCaseAccessHandlerTest.java
│ │ │ │ ├── S94bStatusHandlerTest.java
│ │ │ │ ├── SaveNotificationsToDataHandlerTest.java
│ │ │ │ ├── SendDecisionAndReasonsHandlerTest.java
│ │ │ │ ├── SendDecisionAndReasonsMidEventHandlerTest.java
│ │ │ │ ├── SendDecisionAndReasonsPreparerTest.java
│ │ │ │ ├── SendDecisionAndReasonsPreventerTest.java
│ │ │ │ ├── SendDirectionActionAvailableUpdaterTest.java
│ │ │ │ ├── SendDirectionWithQuestionsHandlerTest.java
│ │ │ │ ├── SendDirectionWithQuestionsPreparerTest.java
│ │ │ │ ├── SendNotificationHandlerTest.java
│ │ │ │ ├── ServiceRequestHandlerTest.java
│ │ │ │ ├── SetCaseAsUnrepresentedHandlerTest.java
│ │ │ │ ├── ShareACasePermissionsHandlerTest.java
│ │ │ │ ├── ShareACaseUserListPreparerTest.java
│ │ │ │ ├── StartAppealMidEventTest.java
│ │ │ │ ├── StatelessHandlerTest.java
│ │ │ │ ├── SubmitAppealHandlerTest.java
│ │ │ │ ├── SubmitAppealPreparerTest.java
│ │ │ │ ├── SubmitCasePreparerTest.java
│ │ │ │ ├── SubmitCmaRequirementsHandlerTest.java
│ │ │ │ ├── TimeExtensionHandlerTest.java
│ │ │ │ ├── TransferOutOfAdaHandlerTest.java
│ │ │ │ ├── UpdateAppointmentAfterCmaHandlerTest.java
│ │ │ │ ├── UpdateDetentionLocationCaseNoteHandlerTest.java
│ │ │ │ ├── UpdateHearingRequirementsHandlerTest.java
│ │ │ │ ├── UpdateInterpreterBookingStatusHandlerTest.java
│ │ │ │ ├── UpdateInterpreterBookingStatusPreparerTest.java
│ │ │ │ ├── UpdateInterpreterDetailsHandlerTest.java
│ │ │ │ ├── UpdateTribunalDecisionDocumentUploadRule31MidEventTest.java
│ │ │ │ ├── UpdateTribunalDecisionHandlerTest.java
│ │ │ │ ├── UpdateTribunalDecisionRule31MidEventTest.java
│ │ │ │ ├── UploadAddendumEvidenceActionAvailableUpdaterTest.java
│ │ │ │ ├── UploadAddendumEvidenceHandlerTest.java
│ │ │ │ ├── UploadAddendumEvidenceLegalRepHomeOfficeAdminOfficerHandlerTest.java
│ │ │ │ ├── UploadAdditionalEvidenceActionAvailableUpdaterTest.java
│ │ │ │ ├── UploadAdditionalEvidenceHandlerTest.java
│ │ │ │ ├── UploadAdditionalEvidenceHomeOfficeActionAvailableUpdaterTest.java
│ │ │ │ ├── UploadAdditionalEvidenceHomeOfficeHandlerTest.java
│ │ │ │ ├── UploadAppealFormHandlerTest.java
│ │ │ │ ├── UploadDecisionLetterHandlerTest.java
│ │ │ │ ├── UploadEjpDocumentsHandlerTest.java
│ │ │ │ ├── UploadHomeOfficeAppealResponseHandlerTest.java
│ │ │ │ ├── UploadHomeOfficeAppealResponsePreparerTest.java
│ │ │ │ ├── UploadHomeOfficeBundleHandlerTest.java
│ │ │ │ ├── UploadHomeOfficeBundlePreparerTest.java
│ │ │ │ ├── UploadRespondentEvidenceHandlerTest.java
│ │ │ │ ├── UploadSensitiveDocsAboutToSubmitHandlerTest.java
│ │ │ │ ├── UpperTribunalBundlePreparerTest.java
│ │ │ │ ├── UpperTribunalStitchingCallbackHandlerTest.java
│ │ │ │ ├── UtAppealReferenceCheckerTest.java
│ │ │ │ ├── WitnessCaseFlagsHandlerTest.java
│ │ │ │ ├── WitnessInterpreterLanguageFlagsHandlerTest.java
│ │ │ │ ├── WitnessInterpreterLanguagesDynamicListUpdaterTest.java
│ │ │ │ ├── WitnessesDraftMidEventHandlerTest.java
│ │ │ │ ├── WitnessesUpdateMidEventHandlerTest.java
│ │ │ │ ├── allocatecase
│ │ │ │ ├── AllocateTheCaseResetOptionsHandlerTest.java
│ │ │ │ ├── AllocateTheCaseServiceTest.java
│ │ │ │ ├── AllocateTheCaseToCaseWorkerHandlerTest.java
│ │ │ │ ├── AllocateTheCaseToCaseWorkerMidEventHandlerTest.java
│ │ │ │ ├── AllocateTheCaseToMeHandlerTest.java
│ │ │ │ └── DisableAllocateTheCaseToCaseWorkerHandlerTest.java
│ │ │ │ ├── applyforcosts
│ │ │ │ ├── AdditionalEvidenceForCostsHandlerTest.java
│ │ │ │ ├── AdditionalEvidenceForCostsPreparerTest.java
│ │ │ │ ├── ApplyForCostsFeatureTogglerPreparerTest.java
│ │ │ │ ├── ApplyForCostsHandlerTest.java
│ │ │ │ ├── ApplyForCostsMidEventTest.java
│ │ │ │ ├── ConsiderMakingCostsOrderHandlerTest.java
│ │ │ │ ├── ConsiderMakingCostsOrderPreparerTest.java
│ │ │ │ ├── DecideCostsHandlerTest.java
│ │ │ │ ├── DecideCostsPreparerTest.java
│ │ │ │ └── RespondToCostsHandlerTest.java
│ │ │ │ ├── editdocs
│ │ │ │ ├── EditDocsAboutToSubmitHandlerTest.java
│ │ │ │ ├── EditDocsMidEventHandlerTest.java
│ │ │ │ └── EditDocsServiceTest.java
│ │ │ │ ├── flagcase
│ │ │ │ ├── FlagCaseHandlerTest.java
│ │ │ │ ├── FlagCaseMidEventHandlerTest.java
│ │ │ │ ├── RemoveFlagHandlerTest.java
│ │ │ │ └── RemoveFlagPreparerTest.java
│ │ │ │ ├── migratedcase
│ │ │ │ ├── AriaCreateCaseHandlerTest.java
│ │ │ │ ├── ProgressMigratedCaseHandlerTest.java
│ │ │ │ └── StartAppealCreateCaseHandlerTest.java
│ │ │ │ ├── payment
│ │ │ │ ├── AiPFeesHandlerTest.java
│ │ │ │ ├── FeesAndStatusCheckPreparerTest.java
│ │ │ │ ├── FeesHelperTest.java
│ │ │ │ ├── MarkPaymentPaidPreparerTest.java
│ │ │ │ ├── MarkPaymentPaidStateHandlerTest.java
│ │ │ │ ├── PayOfflineMigrationHandlerTest.java
│ │ │ │ ├── PaymentHandlerTest.java
│ │ │ │ ├── PaymentStateHandlerTest.java
│ │ │ │ ├── RollbackPaymentHandlerTest.java
│ │ │ │ └── RollbackPaymentPreparerTest.java
│ │ │ │ └── unlinkappeal
│ │ │ │ ├── UnlinkAppealHandlerTest.java
│ │ │ │ └── UnlinkAppealPreparerHandlerTest.java
│ │ └── service
│ │ │ ├── AccessCodeGeneratorTest.java
│ │ │ ├── ApplyForCostsAppenderTest.java
│ │ │ ├── ApplyForCostsProviderTest.java
│ │ │ ├── AsylumCaseFeePaymentServiceTest.java
│ │ │ ├── AsylumFieldCaseCategoryFixerTest.java
│ │ │ ├── AsylumFieldCaseNameFixerTest.java
│ │ │ ├── AsylumFieldLegalRepNameFixerTest.java
│ │ │ ├── AsylumFieldNameFixerTest.java
│ │ │ ├── AutoRequestHearingServiceTest.java
│ │ │ ├── CaseFlagAppenderTest.java
│ │ │ ├── CaseNoteAppenderTest.java
│ │ │ ├── CaseWorkerServiceTest.java
│ │ │ ├── CommonRefDataDynamicListProviderTest.java
│ │ │ ├── CompanyNameProviderTest.java
│ │ │ ├── DirectionAppenderTest.java
│ │ │ ├── DirectionPartiesResolverTest.java
│ │ │ ├── DirectionTagResolverTest.java
│ │ │ ├── DocumentReceiverTest.java
│ │ │ ├── DocumentsAppenderTest.java
│ │ │ ├── DueDateServiceTest.java
│ │ │ ├── FeeServiceTest.java
│ │ │ ├── FtpaDisplayServiceTest.java
│ │ │ ├── HearingCentreFinderTest.java
│ │ │ ├── HearingDecisionProcessorTest.java
│ │ │ ├── HearingPartyIdGeneratorTest.java
│ │ │ ├── HomeOfficeApiServiceTest.java
│ │ │ ├── IaHearingsApiServiceTest.java
│ │ │ ├── IdamServiceTest.java
│ │ │ ├── LocationBasedFeatureTogglerTest.java
│ │ │ ├── LocationRefDataServiceTest.java
│ │ │ ├── MakeAnApplicationAppenderTest.java
│ │ │ ├── MakeAnApplicationTypesProviderTest.java
│ │ │ ├── NextHearingDateServiceTest.java
│ │ │ ├── PreviousHearingAppenderTest.java
│ │ │ ├── PreviousRepresentationAppenderTest.java
│ │ │ ├── PreviousRequirementsAndRequestsAppenderTest.java
│ │ │ ├── RefDataUserServiceTest.java
│ │ │ ├── RemissionDetailsAppenderTest.java
│ │ │ ├── StrategicCaseFlagServiceTest.java
│ │ │ ├── TimeExtensionAppenderTest.java
│ │ │ ├── WaFieldsPublisherTest.java
│ │ │ ├── WitnessNamesUpdateServiceTest.java
│ │ │ └── holidaydates
│ │ │ ├── HolidayLoaderTest.java
│ │ │ └── HolidayServiceTest.java
│ │ ├── infrastructure
│ │ ├── DbAppealReferenceNumberGeneratorTest.java
│ │ ├── PostSubmitCallbackDispatcherTest.java
│ │ ├── PreSubmitCallbackDispatcherTest.java
│ │ ├── SystemDateProviderTest.java
│ │ ├── clients
│ │ │ ├── AsylumCaseCallbackApiDelegatorTest.java
│ │ │ ├── AsylumCaseDocumentApiGeneratorTest.java
│ │ │ ├── AsylumCaseNotificationApiSenderTest.java
│ │ │ ├── AsylumCasePostNotificationApiSenderTest.java
│ │ │ ├── BundleRequestExecutorTest.java
│ │ │ ├── CcdCaseAssignmentTest.java
│ │ │ ├── CcdSupplementaryUpdaterTest.java
│ │ │ ├── CcdUpdaterTest.java
│ │ │ ├── LaunchDarklyFeatureTogglerTest.java
│ │ │ ├── ProfessionalOrganisationRetrieverTest.java
│ │ │ ├── ProfessionalUsersRetrieverTest.java
│ │ │ ├── RoleAssignmentServiceTest.java
│ │ │ ├── TimedEventMessageConverterCustomizerTest.java
│ │ │ ├── TimedEventServiceSchedulerTest.java
│ │ │ └── refdata
│ │ │ │ └── HystrixRefDataCaseWorkerFallbackTest.java
│ │ ├── controllers
│ │ │ ├── AsylumCaseTest.java
│ │ │ ├── PostSubmitCallbackControllerTest.java
│ │ │ ├── PreSubmitCallbackControllerTest.java
│ │ │ ├── WelcomeControllerTest.java
│ │ │ └── advice
│ │ │ │ ├── CallbackControllerAdviceTest.java
│ │ │ │ └── ErrorResponseLoggerTest.java
│ │ ├── eventvalidation
│ │ │ ├── AsylumCaseEventValidForJourneyTypeCheckerTest.java
│ │ │ ├── AsylumCaseSendDirectionEventValidForJourneyTypeCheckerTest.java
│ │ │ └── EventValidCheckersTest.java
│ │ ├── health
│ │ │ ├── DownStreamHealthIndicatorTest.java
│ │ │ └── ServiceHealthIndicatorTest.java
│ │ ├── security
│ │ │ ├── CcdEventAuthorizorTest.java
│ │ │ ├── RequestUserAccessTokenProviderTest.java
│ │ │ ├── SpringAuthorizedRolesProviderTest.java
│ │ │ └── idam
│ │ │ │ ├── IdamAuthoritiesConverterTest.java
│ │ │ │ ├── IdamUserDetailsHelperTest.java
│ │ │ │ ├── IdamUserDetailsProviderTest.java
│ │ │ │ └── IdamUserDetailsTest.java
│ │ ├── serialization
│ │ │ ├── AsylumCaseCallbackDeserializerTest.java
│ │ │ └── StdSerializerTest.java
│ │ └── util
│ │ │ ├── LoggerUtil.java
│ │ │ └── ResourceLoaderTest.java
│ │ └── utils
│ │ └── StaffLocationTest.java
│ └── resources
│ ├── logback-test.xml
│ ├── readJsonEmptyList.json
│ ├── readJsonList.json
│ ├── readJsonNonArray.json
│ ├── retriggerWaTasksCaseList.json
│ ├── retriggerWaTasksEmptyCaseList.json
│ └── testFile.txt
└── web.config
/.dependabot/config.yml:
--------------------------------------------------------------------------------
1 | version: 1
2 | update_configs:
3 | - package_manager: "java:gradle"
4 | directory: "/"
5 | update_schedule: "daily"
6 |
--------------------------------------------------------------------------------
/.github/workflows/pr-title-validation.yml:
--------------------------------------------------------------------------------
1 | name: Does PR title match RIA-nnnn or SNI-nnnn?
2 | on:
3 | pull_request:
4 | types:
5 | - opened
6 | - reopened
7 | - edited
8 | - synchronize
9 |
10 | jobs:
11 | lint:
12 | if: "!contains(github.event.pull_request.head.ref, 'renovate') && !contains(github.event.pull_request.head.ref, 'dependabot')"
13 | runs-on: ubuntu-latest
14 | steps:
15 | - uses: deepakputhraya/action-pr-title@master
16 | with:
17 | regex: '^(DIAC-[0-9]{2,4} [a-zA-Z0-9._\- ]+)|(RIA-[0-9]{3,4} [a-zA-Z0-9._\- ]+)|(SNI-[0-9]{3,4} [a-zA-Z0-9._\- ]+)|(RIA-TASK [a-zA-Z0-9._\- ]+)|(\[Snyk\].+)$' # Regex the title should match.
18 | prefix_case_sensitive: true # title prefix are case insensitive:
19 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .gradle
2 | /build/
3 | /target/
4 | !gradle/wrapper/gradle-wrapper.jar
5 | /node_modules
6 | /infrastructure/.terraform/
7 | bin/contractTest/
8 | bin/functionalTest/
9 | bin/integrationTest/
10 | bin/main/
11 | bin/smokeTest/
12 | bin/test/
13 |
14 | ### STS ###
15 | .apt_generated
16 | .classpath
17 | .factorypath
18 | .project
19 | .settings
20 | .springBeans
21 | .sts4-cache
22 | yarn.lock
23 | .DS_Store
24 |
25 | ### IntelliJ IDEA ###
26 | .idea
27 | *.iws
28 | *.iml
29 | *.ipr
30 | .editorconfig
31 | /out/
32 |
33 | ### NetBeans ###
34 | /nbproject/private/
35 | /nbbuild/
36 | /dist/
37 | /nbdist/
38 | /.nb-gradle/
39 | /pacts/
40 |
41 | ### Python Scripts output dirs ###
42 | bin/utils/python_scripts/input_csv_files/
43 | bin/utils/python_scripts/output_csv_files/
44 | bin/utils/python_scripts/output_jsons/
45 | bin/utils/python_scripts/__pycache__/
46 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: java
2 |
3 | jdk:
4 | - openjdk17
5 |
6 | script:
7 | - ./gradlew integration
8 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | # renovate: datasource=github-releases depName=microsoft/ApplicationInsights-Java
2 | ARG APP_INSIGHTS_AGENT_VERSION=3.4.13
3 | # Application image
4 | FROM hmctspublic.azurecr.io/base/java:17-distroless
5 |
6 | # Change to non-root privilege
7 | USER hmcts
8 |
9 | COPY lib/applicationinsights.json /opt/app/
10 | COPY build/libs/ia-case-api.jar /opt/app/
11 |
12 | EXPOSE 8090
13 |
14 | CMD [ "ia-case-api.jar" ]
15 |
--------------------------------------------------------------------------------
/bin/pull-latest-camunda-wa-files.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | branchName=$1
4 |
5 | #Checkout specific branch camunda bpmn definition
6 | git clone https://github.com/hmcts/wa-standalone-task-bpmn.git
7 | cd wa-standalone-task-bpmn
8 |
9 | echo "Switch to ${branchName} branch on wa-standalone-task-bpmn"
10 | git checkout ${branchName}
11 | cd ..
12 |
13 | #Copy camunda folder which contains bpmn files
14 | cp -r ./wa-standalone-task-bpmn/src/main/resources .
15 | rm -rf ./wa-standalone-task-bpmn
16 |
17 | #upload bpmn files to environment
18 | ./bin/import-wa-bpmn-diagram.sh .
19 |
--------------------------------------------------------------------------------
/bin/pull-latest-dmn-files.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | branchName=$1
4 |
5 | #Checkout specific branch pf camunda bpmn definition
6 | git clone https://github.com/hmcts/ia-task-configuration.git
7 | cd ia-task-configuration
8 |
9 | echo "Switch to ${branchName} branch on ia-task-configuration"
10 | git checkout ${branchName}
11 | cd ..
12 |
13 | #Copy camunda folder which contains dmn files
14 | cp -r ./ia-task-configuration/src/main/resources .
15 | rm -rf ./ia-task-configuration
16 |
17 | ./bin/import-dmn-diagram.sh . ia ia
18 |
--------------------------------------------------------------------------------
/bin/setup-devuser-preview-env.sh:
--------------------------------------------------------------------------------
1 | camundaBranch=${1:-master}
2 | dmnBranch=${2:-master}
3 | waStandaloneBranch=${3:-master}
4 |
5 | echo "Loading Environment Variables"
6 | source ./bin/variables/load-dev-user-preview-environment-variables.sh
7 |
8 | echo "Importing Roles to the pod"
9 | ./bin/add-roles.sh
10 |
11 | echo "Importing Org Roles to the pod"
12 | ./bin/add-org-roles-to-users.sh
13 |
14 | echo "Importing Camunda definitions"
15 | ./bin/pull-latest-camunda-wa-files.sh ${waStandaloneBranch}
16 | ./bin/pull-latest-dmn-files.sh ${dmnBranch}
17 |
18 | echo "ENV variables set for devuser-preview environment."
19 | echo "XUI_URL: $XUI_WEBAPP_URL"
20 |
--------------------------------------------------------------------------------
/bin/utils/ccd-add-role.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -ex
4 |
5 | dir=$(dirname ${0})
6 |
7 | role=${1}
8 |
9 | userToken=$(sh ${dir}/idam-user-token-aat.sh)
10 | serviceToken=$(sh ${dir}/idam-service-token-aat.sh)
11 |
12 | echo "Creating CCD role: ${role} using ${CCD_DEFINITION_STORE_API_BASE_URL}"
13 |
14 | curl --insecure --fail --show-error --silent -X PUT \
15 | ${CCD_DEFINITION_STORE_API_BASE_URL}/api/user-role \
16 | -H "Authorization: Bearer ${userToken}" \
17 | -H "ServiceAuthorization: Bearer ${serviceToken}" \
18 | -H "Content-Type: application/json" \
19 | -d '{
20 | "role": "'${role}'",
21 | "security_classification": "PUBLIC"
22 | }'
23 |
--------------------------------------------------------------------------------
/bin/utils/idam-lease-service-token.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -eu
4 |
5 | microservice=${1}
6 | oneTimePassword=${2}
7 |
8 | EVALUATED_SERVICE_AUTH_PROVIDER_API_BASE_URL="${SERVICE_AUTH_PROVIDER_API_BASE_URL:-http://localhost:4502}"
9 |
10 | curl -v --insecure --fail --show-error --silent -X POST \
11 | ${EVALUATED_SERVICE_AUTH_PROVIDER_API_BASE_URL}/lease \
12 | -H "Content-Type: application/json" \
13 | -d '{
14 | "microservice": "'${microservice}'",
15 | "oneTimePassword": "'${oneTimePassword}'"
16 | }'
17 |
--------------------------------------------------------------------------------
/bin/utils/idam-service-token-aat.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | ## Usage: ./idam-service-token.sh [microservice_name]
3 | ##
4 | ## Options:
5 | ## - microservice_name: Name of the microservice. Default to `ccd_gw`.
6 | ##
7 | ## Returns a valid IDAM service token for the given microservice.
8 |
9 | microservice=ccd_gw
10 |
11 | curl --silent --show-error -X POST \
12 | -H "Content-Type: application/json" \
13 | -d '{"microservice":"'${microservice}'"}' \
14 | ${SERVICE_AUTH_PROVIDER_API_BASE_URL}/testing-support/lease
15 |
--------------------------------------------------------------------------------
/bin/utils/idam-user-id.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | ## Usage: ./idam-user-id.sh [usertoken]
3 | ##
4 | ## Options:
5 | ## - usertoken: Token to get the user id for. Can be generated with ./idam-user-token.sh.
6 | ##
7 | ## Returns a valid IDAM user id for the given token.
8 |
9 | USER_TOKEN=${1}
10 |
11 | curl --silent -v --show-error -X GET "${IDAM_API_URL}/details" -H "accept: application/json" -H "authorization: Bearer ${USER_TOKEN}" | jq -r .id
12 |
--------------------------------------------------------------------------------
/bin/utils/python_scripts/convert_json_to_txt.py:
--------------------------------------------------------------------------------
1 | import json
2 |
3 |
4 | def convert_json_to_txt(file_path):
5 | # Read JSON data from the input file
6 | with open(file_path, "r") as json_file:
7 | json_data = json.load(json_file)
8 |
9 | # Convert JSON data to a compact text representation
10 | text_data = json.dumps(json_data, separators=(',', ':'))
11 |
12 | output_file = file_path.split(".")[0] + ".txt"
13 |
14 | # Write the compact text data to a text file
15 | with open(output_file, "w") as text_file:
16 | text_file.write(text_data)
17 | print(f'file converted {output_file}')
18 |
19 |
20 | convert_json_to_txt("importing.json")
21 |
--------------------------------------------------------------------------------
/bin/utils/python_scripts/init.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/bin/utils/python_scripts/init.py
--------------------------------------------------------------------------------
/bin/utils/python_scripts/input_csv_files/dummy.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/bin/utils/python_scripts/input_csv_files/dummy.txt
--------------------------------------------------------------------------------
/bin/utils/python_scripts/output_csv_files/dummy.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/bin/utils/python_scripts/output_csv_files/dummy.txt
--------------------------------------------------------------------------------
/bin/utils/python_scripts/output_jsons/dummy.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/bin/utils/python_scripts/output_jsons/dummy.txt
--------------------------------------------------------------------------------
/bin/variables/load-preview-environment-variables.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -eu
4 |
5 | pr=${1}
6 |
7 | echo 'export ENVIRONMENT=preview'
8 |
9 | # urls
10 | echo "export SERVICE_AUTH_PROVIDER_API_BASE_URL=http://rpe-service-auth-provider-aat.service.core-compute-aat.internal"
11 | echo "export IDAM_API_BASE_URL=https://idam-api.aat.platform.hmcts.net"
12 | echo "export CCD_IDAM_REDIRECT_URL=https://ccd-case-management-web-aat.service.core-compute-aat.internal/oauth2redirect"
13 | echo "export CCD_DEFINITION_STORE_API_BASE_URL=https://ccd-definition-store-ia-case-api-pr-${pr}.preview.platform.hmcts.net"
--------------------------------------------------------------------------------
/catalog-info.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: backstage.io/v1alpha1
2 | kind: Component
3 | metadata:
4 | name: "ia-case-api"
5 | annotations:
6 | # This must match folder-name/job-name in Jenkins.
7 | jenkins.io/job-full-name: cft:HMCTS_d_to_i/ia-case-api
8 | github.com/project-slug: hmcts/ia-case-api
9 | tags:
10 | - java
11 | links:
12 | - url: https://hmcts-reform.slack.com/app_redirect?channel=ia-tech
13 | title: "#ia-tech on Slack"
14 | icon: chat
15 | spec:
16 | type: service
17 | lifecycle: production
18 | owner: dcd_ia
19 |
--------------------------------------------------------------------------------
/charts/ia-case-api/values.aat.template.yaml:
--------------------------------------------------------------------------------
1 | java:
2 | # Don't modify below here
3 | image: ${IMAGE_NAME}
4 | ingressHost: ${SERVICE_FQDN}
--------------------------------------------------------------------------------
/config/fortify-client.properties:
--------------------------------------------------------------------------------
1 | fortify.client.releaseId=65421
2 |
--------------------------------------------------------------------------------
/config/owasp/suppressions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | CVE-2024-38286
5 | CVE-2024-38820
6 | CVE-2025-24813
7 |
8 |
9 |
--------------------------------------------------------------------------------
/docker-pactbroker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "3"
2 |
3 | services:
4 | postgres:
5 | image: postgres
6 | healthcheck:
7 | test: psql postgres --command "select 1" -U postgres
8 | ports:
9 | - "5432:5432"
10 | environment:
11 | POSTGRES_USER: postgres
12 | POSTGRES_PASSWORD: ${GENERIC_DOCKER_PACT_BROKER_YAML_PASS}
13 | POSTGRES_DB: postgres
14 |
15 | broker_app:
16 | image: dius/pact-broker
17 | links:
18 | - postgres
19 | ports:
20 | - "80:80"
21 | environment:
22 | PACT_BROKER_DATABASE_USERNAME: postgres
23 | PACT_BROKER_DATABASE_PASSWORD: ${GENERIC_DOCKER_PACT_BROKER_YAML_PASS}
24 | PACT_BROKER_DATABASE_HOST: postgres
25 | PACT_BROKER_DATABASE_NAME: postgres
26 | PACT_BROKER_WEBHOOK_SCHEME_WHITELIST: http
--------------------------------------------------------------------------------
/functional-output/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/functional-output/.gitignore
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip
4 | networkTimeout=10000
5 | validateDistributionUrl=true
6 | zipStoreBase=GRADLE_USER_HOME
7 | zipStorePath=wrapper/dists
--------------------------------------------------------------------------------
/infrastructure/.terraform-version:
--------------------------------------------------------------------------------
1 | 1.10.4
2 |
--------------------------------------------------------------------------------
/infrastructure/aat.tfvars:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/infrastructure/aat.tfvars
--------------------------------------------------------------------------------
/infrastructure/demo.tfvars:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/infrastructure/demo.tfvars
--------------------------------------------------------------------------------
/infrastructure/ithc.tfvars:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/infrastructure/output.tf:
--------------------------------------------------------------------------------
1 | output "microserviceName" {
2 | value = var.component
3 | }
4 |
5 | output "resourceGroup" {
6 | value = azurerm_resource_group.rg.name
7 | }
8 |
9 | output "appServicePlan" {
10 | value = local.app_service_plan
11 | }
12 |
13 | output "vaultName" {
14 | value = local.key_vault_name
15 | }
16 |
17 | output "vaultUri" {
18 | value = data.azurerm_key_vault.ia_key_vault.vault_uri
19 | }
20 |
--------------------------------------------------------------------------------
/infrastructure/preview.tfvars:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/infrastructure/preview.tfvars
--------------------------------------------------------------------------------
/infrastructure/prod.tfvars:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/infrastructure/prod.tfvars
--------------------------------------------------------------------------------
/infrastructure/sprod.tfvars:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/infrastructure/sprod.tfvars
--------------------------------------------------------------------------------
/infrastructure/state.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "azurerm" {}
3 |
4 | required_providers {
5 | azurerm = {
6 | source = "hashicorp/azurerm"
7 | version = "~> 4.14.0"
8 | }
9 | azuread = {
10 | source = "hashicorp/azuread"
11 | version = "3.0.2"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/infrastructure/test_config.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/infrastructure/test_config.tf
--------------------------------------------------------------------------------
/lib/applicationinsights.json:
--------------------------------------------------------------------------------
1 | {
2 | "connectionString": "${file:/mnt/secrets/ia/app-insights-connection-string}",
3 | "role": {
4 | "name": "ia-case-api"
5 | }
6 | }
--------------------------------------------------------------------------------
/lombok.config:
--------------------------------------------------------------------------------
1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin
2 | config.stopBubbling = true
3 | config.stopbubbling = true
4 | lombok.addLombokGeneratedAnnotation = true
5 | lombok.anyConstructor.addConstructorProperties = true
6 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ia-case-api",
3 | "version": "0.1",
4 | "scripts": {
5 | "validate": "node bin/validate_case_api"
6 | },
7 | "dependencies": {
8 | "request": "2.88.2",
9 | "walk-sync": "2.0.2",
10 | "process": "0.11.10"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/contractTest/java/uk/gov/hmcts/reform/iacaseapi/consumer/fee/FeeApiConsumerApplication.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.consumer.fee;
2 |
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.boot.test.mock.mockito.MockBean;
5 | import org.springframework.cloud.openfeign.EnableFeignClients;
6 | import org.springframework.web.client.RestTemplate;
7 | import uk.gov.hmcts.reform.iacaseapi.infrastructure.clients.FeesRegisterApi;
8 |
9 |
10 | @SpringBootApplication
11 | @EnableFeignClients(clients = {
12 | FeesRegisterApi.class
13 | })
14 | public class FeeApiConsumerApplication {
15 |
16 | @MockBean
17 | RestTemplate restTemplate;
18 | }
19 |
--------------------------------------------------------------------------------
/src/contractTest/java/uk/gov/hmcts/reform/iacaseapi/consumer/idam/IdamConsumerApplication.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.consumer.idam;
2 |
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.boot.test.mock.mockito.MockBean;
5 | import org.springframework.cloud.openfeign.EnableFeignClients;
6 | import org.springframework.web.client.RestTemplate;
7 | import uk.gov.hmcts.reform.authorisation.generators.AuthTokenGenerator;
8 | import uk.gov.hmcts.reform.iacaseapi.infrastructure.clients.IdamApi;
9 |
10 | @SpringBootApplication
11 | @EnableFeignClients(clients = {
12 | IdamApi.class
13 | })
14 | public class IdamConsumerApplication {
15 |
16 | @MockBean
17 | AuthTokenGenerator authTokenGenerator;
18 |
19 | @MockBean
20 | RestTemplate restTemplate;
21 |
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/src/contractTest/java/uk/gov/hmcts/reform/iacaseapi/consumer/roleassignment/RoleAssignmentConsumerApplication.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.consumer.roleassignment;
2 |
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.boot.test.mock.mockito.MockBean;
5 | import org.springframework.cloud.openfeign.EnableFeignClients;
6 | import org.springframework.web.client.RestTemplate;
7 | import uk.gov.hmcts.reform.iacaseapi.infrastructure.clients.roleassignment.RoleAssignmentApi;
8 |
9 |
10 | @SpringBootApplication
11 | @EnableFeignClients(clients = {
12 | RoleAssignmentApi.class
13 | })
14 | public class RoleAssignmentConsumerApplication {
15 |
16 | @MockBean
17 | RestTemplate restTemplate;
18 | }
19 |
--------------------------------------------------------------------------------
/src/contractTest/resources/logback-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/functionalTest/java/uk/gov/hmcts/reform/iacaseapi/fixtures/Fixture.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.fixtures;
2 |
3 | import java.io.IOException;
4 | import java.util.Collections;
5 | import java.util.Map;
6 |
7 | public interface Fixture {
8 |
9 | void prepare() throws IOException;
10 |
11 | default Map getProperties() {
12 | return Collections.emptyMap();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/functionalTest/java/uk/gov/hmcts/reform/iacaseapi/fixtures/documents/DocumentUploader.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.fixtures.documents;
2 |
3 | import org.springframework.core.io.Resource;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field.Document;
5 |
6 | public interface DocumentUploader {
7 |
8 | Document upload(
9 | Resource resource,
10 | String contentType
11 | );
12 | }
13 |
--------------------------------------------------------------------------------
/src/functionalTest/java/uk/gov/hmcts/reform/iacaseapi/verifiers/CaseDataVerifier.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.verifiers;
2 |
3 | import java.util.Map;
4 | import org.springframework.stereotype.Component;
5 | import uk.gov.hmcts.reform.iacaseapi.util.MapFieldAssertor;
6 | import uk.gov.hmcts.reform.iacaseapi.util.MapValueExtractor;
7 |
8 | @Component
9 | @SuppressWarnings("unchecked")
10 | public class CaseDataVerifier implements Verifier {
11 |
12 | public void verify(
13 | long testCaseId,
14 | Map scenario,
15 | Map expectedResponse,
16 | Map actualResponse
17 | ) {
18 | String description = MapValueExtractor.extract(scenario, "description");
19 |
20 | MapFieldAssertor.assertFields(expectedResponse, actualResponse, (description + ": "));
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/functionalTest/java/uk/gov/hmcts/reform/iacaseapi/verifiers/Verifier.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.verifiers;
2 |
3 | import java.util.Map;
4 |
5 | public interface Verifier {
6 |
7 | void verify(
8 | long testCaseId,
9 | Map scenario,
10 | Map expectedResponse,
11 | Map actualResponse
12 | );
13 | }
14 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/documents/doc1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/src/functionalTest/resources/documents/doc1.pdf
--------------------------------------------------------------------------------
/src/functionalTest/resources/documents/doc2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/src/functionalTest/resources/documents/doc2.pdf
--------------------------------------------------------------------------------
/src/functionalTest/resources/documents/doc3.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/src/functionalTest/resources/documents/doc3.pdf
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-1278-upload-additional-evidence-ho-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-1278 Upload additional Home Office evidence confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "HomeOfficeLart",
6 | "input": {
7 | "eventId": "uploadAdditionalEvidenceHomeOffice",
8 | "state": "caseBuilding",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have uploaded\n# additional evidence",
19 | "body": "#### What happens next\n\nThe evidence is now available in the documents tab."
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-1293-ftpa-appellant-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-1293 FTPA Appellant application confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "LegalRepresentative",
6 | "input": {
7 | "eventId": "applyForFTPAAppellant",
8 | "state": "decided",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "ftpaAppellantSubmissionOutOfTime": "No"
14 | }
15 |
16 | }
17 | }
18 | },
19 | "expectation": {
20 | "status": 200,
21 | "confirmation": {
22 | "header": "# You've applied for permission to appeal to the Upper Tribunal",
23 | "body": "#### What happens next\n\nThe First-tier Tribunal will review your application and decide shortly.
"
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-1603-upload-addendum-evidence-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-1603 Upload addendum evidence confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "uploadAddendumEvidence",
8 | "state": "preHearing",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have uploaded\n# additional evidence",
19 | "body": "#### What happens next\n\nThe evidence is now available in the documents tab. This is not included in the hearing bundle, it is added as an addendum."
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-1742-flag-case-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-1742 Flag case confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "flagCase",
8 | "state": "awaitingRespondentEvidence",
9 | "id": 1001,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You've flagged this case",
19 | "body": "#### What happens next\r\n\r\nThis flag will only be visible to the Tribunal. The case will proceed as usual."
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-1845-upload-addendum-evidence-legal-rep-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-1845 Upload addendum evidence Legal Rep confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "LegalRepresentative",
6 | "input": {
7 | "eventId": "uploadAddendumEvidenceLegalRep",
8 | "state": "preHearing",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have uploaded\n# additional evidence",
19 | "body": "#### What happens next\n\nThe evidence is now available in the documents tab. This is not included in the hearing bundle, it is added as an addendum."
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-1935-upload-addendum-evidence-ho-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-1935 Upload addendum evidence Home Office confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "HomeOfficeGeneric",
6 | "input": {
7 | "eventId": "uploadAddendumEvidenceHomeOffice",
8 | "state": "preHearing",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have uploaded\n# additional evidence",
19 | "body": "#### What happens next\n\nThe evidence is now available in the documents tab. This is not included in the hearing bundle, it is added as an addendum."
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-2468-share-case-validation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-2468 Share a case User Id validation - invalid User",
3 | "enabled": false,
4 | "request": {
5 | "uri": "/asylum/ccdAboutToSubmit",
6 | "credentials": "LegalRepresentativeOrgA",
7 | "input": {
8 | "eventId": "shareACase",
9 | "state": "appealStarted",
10 | "caseData": {
11 | "template": "minimal-appeal-started.json",
12 | "replacements": {
13 | "orgListOfUsers": "some-user-id"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [
21 | "You can share a case only with Active Users in your Organization."
22 | ],
23 | "caseData": {
24 | "template": "minimal-appeal-started.json",
25 | "replacements": {
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-2513-remove-flag-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-2513 Remove flag from case confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "removeFlag",
8 | "state": "awaitingRespondentEvidence",
9 | "id": 1001,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You've removed the flag from this case",
19 | "body": "#### What happens next\r\n\r\nThis flag has been removed from the case. The case will proceed as usual."
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-2555-hearing-requirements-missing-flag .json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-2555 hearing requirements missing flag exceptions handled",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "reviewHearingRequirements",
8 | "state": "listing",
9 | "caseData": {
10 | "template": "minimal-appeal-submitted.json"
11 | }
12 | }
13 | },
14 | "expectation": {
15 | "status": 200,
16 | "errors": ["The case is already listed, you can't request hearing requirements"],
17 | "caseData": {
18 | "template": "minimal-appeal-submitted.json"
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-2581-ftpa-respondent-homeoffice-generic-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-2581 FTPA Respondent (Generic) application confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "HomeOfficeGeneric",
6 | "input": {
7 | "eventId": "applyForFTPARespondent",
8 | "state": "decided",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "ftpaRespondentSubmissionOutOfTime": "No"
14 | }
15 |
16 | }
17 | }
18 | },
19 | "expectation": {
20 | "status": 200,
21 | "confirmation": {
22 | "header": "# You've applied for permission to appeal to the Upper Tribunal",
23 | "body": "#### What happens next\n\nThe First-tier Tribunal will review your application and decide shortly.
"
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-2581-ftpa-respondent-homeoffice-pou-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-2581 FTPA Respondent (POU) application confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "HomeOfficePou",
6 | "input": {
7 | "eventId": "applyForFTPARespondent",
8 | "state": "decided",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "ftpaRespondentSubmissionOutOfTime": "No"
14 | }
15 |
16 | }
17 | }
18 | },
19 | "expectation": {
20 | "status": 200,
21 | "confirmation": {
22 | "header": "# You've applied for permission to appeal to the Upper Tribunal",
23 | "body": "#### What happens next\n\nThe First-tier Tribunal will review your application and decide shortly.
"
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-2620-upload-hearing-recording-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-2620 Upload hearing recording confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "uploadHearingRecording",
8 | "state": "decision",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You’ve uploaded the hearing recording",
19 | "body": "#### What happens next\n\nThis file is now available in the Documents tab and the Hearing tab."
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-2715-appeal-submitted-access-denied-exception.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-2715 Throws an Access Denied Exception for appeal submitted for incorrect user role",
3 | "enabled": "false",
4 | "request": {
5 | "uri": "/asylum/ccdAboutToStart",
6 | "credentials": "CaseOfficer",
7 | "input": {
8 | "eventId": "submitAppeal",
9 | "state": "appealStarted",
10 | "caseData": {
11 | "template": "minimal-appeal-started.json",
12 | "replacements": {
13 | "homeOfficeDecisionDate": "{$TODAY-14}"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 403
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-2864-ConfirmClarifyingQuestions.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-2864: Case officer can ask clarifying questions",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "id": 1122,
8 | "eventId": "sendDirectionWithQuestions",
9 | "state": "reasonsForAppealSubmitted",
10 | "caseData": {
11 | "template": "minimal-aip-appeal-submitted.json",
12 | "replacements": {}
13 | }
14 | }
15 | },
16 | "expectation": {
17 | "status": 200,
18 | "confirmation": {
19 | "header": "# Your direction has been sent",
20 | "body": "#### What happens next\n\nThe appellant will be directed to answer the questions. You will be notified when they are ready to review."
21 | }
22 | }
23 | }
24 |
25 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-2864-PrepairClarifyingQuestions.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-2864: Case officer can ask clarifying questions",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "id": 1122,
8 | "eventId": "sendDirectionWithQuestions",
9 | "state": "reasonsForAppealSubmitted",
10 | "caseData": {
11 | "template": "minimal-aip-appeal-submitted.json",
12 | "replacements": {}
13 | }
14 | }
15 | },
16 | "expectation": {
17 | "status": 200,
18 | "errors": [],
19 | "caseData": {
20 | "template": "minimal-aip-appeal-submitted.json",
21 | "replacements": {
22 | "sendDirectionQuestions": [],
23 | "sendDirectionDateDue": "{$TODAY+28}"
24 | }
25 | }
26 | }
27 | }
28 |
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-2957-RIA-3712-adjourn-without-a-date-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-2957 RIA-3712 Adjourn without a date confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "adjournHearingWithoutDate",
8 | "state": "decision",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | },
13 | "caseDataBefore": {
14 | "template": "minimal-appeal-submitted.json",
15 | "replacements": {
16 | "state": "pre-hearing"
17 | }
18 | }
19 | }
20 | },
21 | "expectation": {
22 | "status": 200,
23 | "confirmation": {
24 | "header": "# The hearing has been adjourned",
25 | "body": "#### What happens next\n\nA new Notice of Hearing has been generated."
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3017-ConfirmCmaRequirements.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3017: Case officer can ask appellant to provide CMA requirements (confirmation)",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "id": 1122,
8 | "eventId": "requestCmaRequirements",
9 | "state": "reasonsForAppealSubmitted",
10 | "caseData": {
11 | "template": "minimal-aip-appeal-submitted.json",
12 | "replacements": {}
13 | }
14 | }
15 | },
16 | "expectation": {
17 | "status": 200,
18 | "confirmation": {
19 | "header": "# Your direction has been sent",
20 | "body": "#### What happens next\n\nThe appellant will be directed to submit requirements for a case management appointment. You will be notified when they are ready to review."
21 | }
22 | }
23 | }
24 |
25 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3017-PrepairCmaRequirements.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3017: Case officer can ask appellant to provide CMA requirements (prepare)",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "id": 1122,
8 | "eventId": "requestCmaRequirements",
9 | "state": "reasonsForAppealSubmitted",
10 | "caseData": {
11 | "template": "minimal-aip-appeal-submitted.json",
12 | "replacements": {}
13 | }
14 | }
15 | },
16 | "expectation": {
17 | "status": 200,
18 | "errors": [],
19 | "caseData": {
20 | "template": "minimal-aip-appeal-submitted.json",
21 | "replacements": {
22 | "requestCmaRequirementsReasons": "",
23 | "sendDirectionDateDue": "{$TODAY+7}"
24 | }
25 | }
26 | }
27 | }
28 |
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3022-list-cma-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3022 List cma confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "AdminOfficer",
6 | "input": {
7 | "eventId": "listCma",
8 | "state": "cmaAdjustmentsAgreed",
9 | "caseData": {
10 | "template": "minimal-aip-appeal-submitted.json"
11 | }
12 | }
13 | },
14 | "expectation": {
15 | "status": 200,
16 | "confirmation": {
17 | "header": "# You have listed the case management appointment",
18 | "body": "#### What happens next\n\nThe Notice of Case Management Appointment will be sent to all parties."
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3022-list-cma-start.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3022 List cma - pre-fill hearing centre",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "AdminOfficer",
6 | "input": {
7 | "eventId": "listCma",
8 | "state": "listing",
9 | "caseData": {
10 | "template": "minimal-aip-appeal-submitted.json",
11 | "replacements": {
12 | "hearingCentre": "manchester"
13 | }
14 | }
15 | }
16 | },
17 | "expectation": {
18 | "status": 200,
19 | "errors": [],
20 | "caseData": {
21 | "template": "minimal-aip-appeal-submitted.json",
22 | "replacements": {
23 | "hearingCentre": "manchester",
24 | "listCaseHearingCentre": "manchester"
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3039-reinstate-error-if-not-ended-appeal.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3039 Reinstate event error if state before end appeal is unknown",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "reinstateAppeal",
8 | "state": "appealSubmitted",
9 | "caseData": {
10 | "template": "minimal-appeal-submitted.json",
11 | "replacements": {
12 | "stateBeforeEndAppeal": null
13 | }
14 | }
15 | }
16 | },
17 | "expectation": {
18 | "status": 200,
19 | "errors": ["The appeal cannot be reinstated"],
20 | "caseData": {
21 | "template": "minimal-appeal-submitted.json"
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3059-upload-sensitive-documents-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3059 Upload sensitive documents confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "uploadSensitiveDocuments",
8 | "state": "decision",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have uploaded sensitive documentation",
19 | "body": "#### What happens next\r\n\r\nYou can see the documentation in the [documents tab](/cases/case-details/1234#Documents). Select Edit documents from the Next step dropdown if you need to remove a document."
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3291-link-appeal-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3291 Link appeal confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "linkAppeal",
8 | "state": "awaitingRespondentEvidence",
9 | "id": 1001,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have linked this appeal",
19 | "body": "#### What happens next\r\n\r\nThe appeal will now be considered as part of a set of linked appeals. You must update the linked appeal spreadsheet to reflect this change."
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3291-unlink-appeal-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3291 Link appeal confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "unlinkAppeal",
8 | "state": "awaitingRespondentEvidence",
9 | "id": 1001,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have unlinked this appeal",
19 | "body": "#### What happens next\r\n\r\nThis appeal is now unlinked and will proceed as usual. You must update the linked appeal spreadsheet to reflect this change."
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3291-unlink-appeal-preparer.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3291: Unlink appeal preparer",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "id": 1122,
8 | "eventId": "unlinkAppeal",
9 | "state": "awaitingRespondentEvidence",
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "reasonForLinkAppeal": null
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": ["This appeal is not linked and so cannot be unlinked"],
21 | "caseData": {
22 | "template": "minimal-appeal-submitted.json",
23 | "replacements": {
24 | "reasonForLinkAppeal": null
25 | }
26 | }
27 | }
28 | }
29 |
30 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3291-unlink-appeal.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3291: Unlink appeal",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToSubmit",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "id": 1122,
8 | "eventId": "unlinkAppeal",
9 | "state": "awaitingRespondentEvidence",
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "reasonForLinkAppeal": "Home Office request"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [],
21 | "caseData": {
22 | "template": "minimal-appeal-submitted.json",
23 | "replacements": {
24 | "reasonForLinkAppeal": null
25 | }
26 | }
27 | }
28 | }
29 |
30 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3366-upload-addendum-evidence-admin-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3366 Upload addendum evidence Admin Officer confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "AdminOfficer",
6 | "input": {
7 | "eventId": "uploadAddendumEvidenceAdminOfficer",
8 | "state": "preHearing",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have uploaded\n# additional evidence",
19 | "body": "#### What happens next\n\nThe evidence is now available in the documents tab. This is not included in the hearing bundle, it is added as an addendum."
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-362-edit-case-listing-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-362 edit case listing confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "editCaseListing",
8 | "state": "decision",
9 | "caseData": {
10 | "template": "minimal-appeal-submitted.json"
11 | }
12 | }
13 | },
14 | "expectation": {
15 | "status": 200,
16 | "confirmation": {
17 | "header": "# The case has been re-listed",
18 | "body": "#### What happens next\n\nA new Notice of Hearing has been generated. All parties will be notified by email.
"
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-364-create-case-summary-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-364 Create case summary confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "createCaseSummary",
8 | "state": "finalBundling",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have uploaded the case summary",
19 | "body": "#### What happens next?\n\nGenerate the hearing ready bundle if you are ready to do so."
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-369-appeal-submitted-in-time.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-369 Determines whether appeal is submitted out of time",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "LegalRepresentative",
6 | "input": {
7 | "eventId": "submitAppeal",
8 | "state": "appealStarted",
9 | "caseData": {
10 | "template": "minimal-appeal-started.json",
11 | "replacements": {
12 | "homeOfficeDecisionDate": "{$TODAY-14}"
13 | }
14 | }
15 | }
16 | },
17 | "expectation": {
18 | "status": 200,
19 | "errors": [],
20 | "caseData": {
21 | "template": "minimal-appeal-started.json",
22 | "replacements": {
23 | "submissionOutOfTime": "No",
24 | "homeOfficeDecisionDate": "{$TODAY-14}"
25 | }
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-369-appeal-submitted-out-of-time.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-369 Determines whether appeal is submitted out of time",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "LegalRepresentative",
6 | "input": {
7 | "eventId": "submitAppeal",
8 | "state": "appealStarted",
9 | "caseData": {
10 | "template": "minimal-appeal-started.json",
11 | "replacements": {
12 | "homeOfficeDecisionDate": "{$TODAY-15}"
13 | }
14 | }
15 | }
16 | },
17 | "expectation": {
18 | "status": 200,
19 | "errors": [],
20 | "caseData": {
21 | "template": "minimal-appeal-started.json",
22 | "replacements": {
23 | "submissionOutOfTime": "Yes",
24 | "homeOfficeDecisionDate": "{$TODAY-15}"
25 | }
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3783-home-office-reference-cid-padding-edit-appeal.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3783 Home Office Reference CID Number zero padding - edit appeal before submit",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToSubmit",
5 | "credentials": "LegalRepresentative",
6 | "input": {
7 | "eventId": "editAppeal",
8 | "state": "appealStarted",
9 | "caseData": {
10 | "template": "minimal-appeal-started.json",
11 | "replacements": {
12 | "homeOfficeReferenceNumber": "123456"
13 | }
14 | }
15 | }
16 | },
17 | "expectation": {
18 | "status": 200,
19 | "errors": [],
20 | "caseData": {
21 | "template": "minimal-appeal-started.json",
22 | "replacements": {
23 | "homeOfficeReferenceNumber": "000123456"
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3783-home-office-reference-cid-padding.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3783 Home Office Reference CID Number zero padding - start appeal",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToSubmit",
5 | "credentials": "LegalRepresentativeOrgSuccess",
6 | "input": {
7 | "eventId": "startAppeal",
8 | "state": "appealStarted",
9 | "caseData": {
10 | "template": "minimal-appeal-started.json",
11 | "replacements": {
12 | "homeOfficeReferenceNumber": "123456"
13 | }
14 | }
15 | }
16 | },
17 | "expectation": {
18 | "status": 200,
19 | "errors": [],
20 | "caseData": {
21 | "template": "minimal-appeal-started.json",
22 | "replacements": {
23 | "homeOfficeReferenceNumber": "000123456"
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-3876-out-of-country-screening-no-start-appeal.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-3876 Out of country screening, living in UK for Start appeal",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToSubmit",
5 | "credentials": "LegalRepresentative",
6 | "input": {
7 | "eventId": "startAppeal",
8 | "state": "appealStarted",
9 | "caseData": {
10 | "template": "minimal-appeal-started.json",
11 | "replacements": {
12 | "appellantInUk": "Yes"
13 | }
14 | }
15 | }
16 | },
17 | "expectation": {
18 | "status": 200,
19 | "errors": [],
20 | "caseData": {
21 | "template": "minimal-appeal-started.json",
22 | "replacements": {
23 | "appellantInUk": "Yes",
24 | "appealOutOfCountry": "No"
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-412-RIA-1571-list-case-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-412 RIA-1571 List case confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "AdminOfficer",
6 | "input": {
7 | "eventId": "listCase",
8 | "state": "prepareForHearing",
9 | "caseData": {
10 | "template": "minimal-appeal-submitted.json"
11 | }
12 | }
13 | },
14 | "expectation": {
15 | "status": 200,
16 | "confirmation": {
17 | "header": "# You have listed the case",
18 | "body": "#### What happens next\n\nThe hearing notice will be sent to all parties.
You don't need to do any more on this case."
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-435-request-respondent-review-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-435 Request respondent review confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "requestRespondentReview",
8 | "state": "respondentReview",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have sent a direction",
19 | "body": "#### What happens next\n\nWait for the respondent to complete the direction.\nYou must upload the response as soon as you receive it."
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-4473-decision-without-hearing-changes.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-4473 Make decision without hearing",
3 | "disabled": false,
4 | "request": {
5 | "uri": "/asylum/ccdAboutToSubmit",
6 | "credentials": "CaseOfficer",
7 | "input": {
8 | "eventId": "decisionWithoutHearing",
9 | "state": "submitHearingRequirements",
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "errors": [],
18 | "caseData": {
19 | "template": "minimal-appeal-submitted.json",
20 | "replacements": {
21 | "uploadAdditionalEvidenceActionAvailable": "Yes",
22 | "listCaseHearingCentre": "decisionWithoutHearing",
23 | "ariaListingReference": "XX/00000/0000"
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-4546-edit-appeal-aip-errors.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-4546 Edit Appeal for AIP journey - return error message",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "id": 1234,
8 | "eventId": "editAppealAfterSubmit",
9 | "state": "appealSubmitted",
10 | "caseData": {
11 | "template": "minimal-aip-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "errors": ["This option is not available for 'Appellant in person' appeals."],
18 | "caseData": {
19 | "template": "minimal-aip-appeal-submitted.json"
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-480-RIA-600-build-case-confirmation-feature-enabled.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-480 & RIA-600 Build case confirmation (feature enabled)",
3 | "enabled": true,
4 | "request": {
5 | "uri": "/asylum/ccdSubmitted",
6 | "credentials": "LegalRepresentative",
7 | "input": {
8 | "eventId": "buildCase",
9 | "state": "caseBuilding",
10 | "id": 1234,
11 | "caseData": {
12 | "template": "minimal-appeal-submitted.json"
13 | }
14 | }
15 | },
16 | "expectation": {
17 | "status": 200,
18 | "confirmation": {
19 | "header": "# You have submitted your case",
20 | "body": "We have sent you a confirmation email\n\n#### What happens next\nThe case officer will now review your appeal. If it complies with the procedure rules and practice directions, they will send it to the respondent for them to review."
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-515-lodge-appeal-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-515 Lodge appeal confirmation",
3 | "launchDarklyKey": "wa-R3-feature:false",
4 | "request": {
5 | "uri": "/asylum/ccdSubmitted",
6 | "credentials": "LegalRepresentative",
7 | "input": {
8 | "eventId": "submitAppeal",
9 | "state": "appealSubmitted",
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "submissionOutOfTime": "No",
14 | "appealType": "deprivation"
15 | }
16 | }
17 | }
18 | },
19 | "expectation": {
20 | "status": 200,
21 | "confirmation": {
22 | "header": "# Your appeal has been submitted",
23 | "body": "#### What happens next\n\nYou will receive an email confirming that this appeal has been submitted successfully."
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-517-case-submitted-confirmation-feature-disabled.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-517 Submit case confirmation (feature disabled)",
3 | "enabled": true,
4 | "request": {
5 | "uri": "/asylum/ccdSubmitted",
6 | "credentials": "LegalRepresentative",
7 | "input": {
8 | "eventId": "buildCase",
9 | "state": "caseUnderReview",
10 | "id": 1234,
11 | "caseData": {
12 | "template": "minimal-appeal-submitted.json"
13 | }
14 | }
15 | },
16 | "expectation": {
17 | "status": 200,
18 | "confirmation": {
19 | "header": "# You have submitted your case",
20 | "body": "We have sent you a confirmation email\n\n#### What happens next\nThe case officer will now review your appeal. If it complies with the procedure rules and practice directions, they will send it to the respondent for them to review."
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-572-record-attendees-and-duration.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-572 record attendees and duration",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToSubmit",
5 | "credentials": "AdminOfficer",
6 | "input": {
7 | "id": 3333,
8 | "eventId": "recordAttendeesAndDuration",
9 | "state": "decision",
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "haveHearingAttendeesAndDurationBeenRecorded": "No"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [],
21 | "caseData": {
22 | "template": "minimal-appeal-submitted.json",
23 | "replacements": {
24 | "haveHearingAttendeesAndDurationBeenRecorded": "Yes",
25 | "sendDirectionActionAvailable": "No"
26 | }
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-5727-end-appeal-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-5727 end appeal automatically confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "endAppealAutomatically",
8 | "state": "submitAppeal",
9 | "caseData": {
10 | "template": "minimal-appeal-submitted.json"
11 | }
12 | }
13 | },
14 | "expectation": {
15 | "status": 200,
16 | "confirmation": {
17 | "header": "# Appeal has been ended"
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-587-hearing-requirements-request-docmosis-disabled.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-587 Does not create hearing requirements request PDF (Docmosis disabled)",
3 | "disabled": "{$featureFlag.docmosisEnabled}",
4 | "request": {
5 | "uri": "/asylum/ccdAboutToSubmit",
6 | "credentials": "LegalRepresentative",
7 | "input": {
8 | "eventId": "draftHearingRequirements",
9 | "state": "submitHearingRequirements",
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "hearingRequirements": []
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [],
21 | "caseData": {
22 | "template": "minimal-appeal-submitted.json",
23 | "replacements": {
24 | "hearingRequirements": []
25 | }
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-611-request-case-edit-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-611 Request case edit - confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "requestCaseEdit",
8 | "state": "caseBuilding",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-started.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have sent a direction",
19 | "body": "#### What happens next\n\nThe appellant now needs to edit the case in the way you have directed. The appellant should then submit their case again for you to review."
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6433-edit-appeal-type-preparer.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6433 Set appealTypeForDisplay from appealType (not AAA). Post NABA release",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "LegalRepresentative",
6 | "input": {
7 | "id": 1234,
8 | "eventId": "editAppeal",
9 | "state": "appealStarted",
10 | "caseData": {
11 | "template": "minimal-appeal-started.json",
12 | "replacements": {
13 | "appealTypeForDisplay": null
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [],
21 | "caseData": {
22 | "template": "minimal-appeal-started.json",
23 | "replacements": {
24 | "appealTypeForDisplay": "protection"
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6527-list-case-confirmation-ada.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6527 List case accelerated detained appeal confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "AdminOfficer",
6 | "input": {
7 | "eventId": "listCase",
8 | "state": "prepareForHearing",
9 | "caseData": {
10 | "template": "minimal-ada-appeal-submitted.json"
11 | }
12 | }
13 | },
14 | "expectation": {
15 | "status": 200,
16 | "confirmation": {
17 | "header": "# You have listed the case",
18 | "body": "#### What happens next\n\nThe legal representative will be directed to submit the appellant's hearing
requirements and a Notice of Hearing will be sent to all parties."
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6542-aip-dc-submit-appeal.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6542: Submit AIP DC appeal",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToSubmit",
5 | "credentials": "Citizen",
6 | "input": {
7 | "id": 1122,
8 | "eventId": "submitAppeal",
9 | "state": "appealStarted",
10 | "caseData": {
11 | "template": "minimal-aip-appeal-started.json",
12 | "replacements": {
13 | "appealType": "deprivation"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [],
21 | "caseData": {
22 | "template": "minimal-aip-appeal-started.json",
23 | "replacements": {
24 | "appealType": "deprivation",
25 | "currentCaseStateVisibleToAdminOfficer": "appealSubmitted"
26 | }
27 | }
28 | }
29 | }
30 |
31 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6542-aip-pa-payLater-submit-appeal.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6542: Submit AIP PA payLater appeal",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToSubmit",
5 | "credentials": "Citizen",
6 | "input": {
7 | "id": 1122,
8 | "eventId": "submitAppeal",
9 | "state": "appealStarted",
10 | "caseData": {
11 | "template": "minimal-aip-appeal-started.json",
12 | "replacements": {
13 | "paymentStatus": "Payment pending",
14 | "paAipAppealTypePaymentOption": "payLater"
15 | }
16 | }
17 | }
18 | },
19 | "expectation": {
20 | "status": 200,
21 | "errors": [],
22 | "caseData": {
23 | "template": "minimal-aip-appeal-started.json",
24 | "replacements": {
25 | "currentCaseStateVisibleToAdminOfficer": "appealSubmitted"
26 | }
27 | }
28 | }
29 | }
30 |
31 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6542-aip-pa-payNow-submit-appeal.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6542: Submit AIP PA payNow appeal",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToSubmit",
5 | "credentials": "Citizen",
6 | "input": {
7 | "id": 1122,
8 | "eventId": "submitAppeal",
9 | "state": "appealStarted",
10 | "caseData": {
11 | "template": "minimal-aip-appeal-started.json",
12 | "replacements": {
13 | "paymentStatus": "Payment pending",
14 | "paAipAppealTypePaymentOption": "payNow"
15 | }
16 | }
17 | }
18 | },
19 | "expectation": {
20 | "status": 200,
21 | "errors": [],
22 | "caseData": {
23 | "template": "minimal-aip-appeal-started.json",
24 | "replacements": {
25 | "currentCaseStateVisibleToAdminOfficer": "appealSubmitted"
26 | }
27 | }
28 | }
29 | }
30 |
31 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6647-ftpa-appellant-in-flight-cases-uk-in-time-submission.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6647 Appellant FTPA out of time flag on application submission for in flight UK cases set to no",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "LegalRepresentative",
6 | "input": {
7 | "id": 1234,
8 | "eventId": "applyForFTPAAppellant",
9 | "state": "decided",
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "appealDate": "{$TODAY-13}"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [],
21 | "caseData": {
22 | "template": "minimal-appeal-submitted.json",
23 | "replacements": {
24 | "ftpaAppellantSubmissionOutOfTime": "No"
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6647-ftpa-appellant-in-flight-cases-uk-out-of-time-submission.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6647 Appellant FTPA out of time flag on late application submission for in flight UK cases set to yes.",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "LegalRepresentative",
6 | "input": {
7 | "id": 1234,
8 | "eventId": "applyForFTPAAppellant",
9 | "state": "decided",
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "appealDate": "{$TODAY-15}"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [],
21 | "caseData": {
22 | "template": "minimal-appeal-submitted.json",
23 | "replacements": {
24 | "ftpaAppellantSubmissionOutOfTime": "Yes"
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6647-ftpa-respondent-in-flight-cases-uk-in-time-submission.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6647 Respondent FTPA out of time flag on application submission for in flight UK cases set to no",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "HomeOfficeGeneric",
6 | "input": {
7 | "id": 1234,
8 | "eventId": "applyForFTPARespondent",
9 | "state": "decided",
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "appealDate": "{$TODAY-13}"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [],
21 | "caseData": {
22 | "template": "minimal-appeal-submitted.json",
23 | "replacements": {
24 | "ftpaAppellantSubmissionOutOfTime": "No"
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6647-ftpa-respondent-in-flight-cases-uk-out-of-time-submission.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6647 Respondent FTPA out of time flag on late application submission for in flight UK cases set to yes.",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "HomeOfficeGeneric",
6 | "input": {
7 | "id": 1234,
8 | "eventId": "applyForFTPARespondent",
9 | "state": "decided",
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "appealDate": "{$TODAY-15}"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [],
21 | "caseData": {
22 | "template": "minimal-appeal-submitted.json",
23 | "replacements": {
24 | "ftpaAppellantSubmissionOutOfTime": "Yes"
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6692-internal-case-creation-add-isAdmin-flag.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6692 Internal case creation add isAdminFlag",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "AdminOfficer",
6 | "input": {
7 | "id": 1122,
8 | "eventId": "startAppeal",
9 | "state": "appealStartedByAdmin",
10 | "caseData": {
11 | "template": "minimal-appeal-started.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "errors": [],
18 | "caseData": {
19 | "template": "minimal-appeal-started.json",
20 | "replacements": {
21 | "isAdmin": "Yes"
22 | }
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6696-ada-require-upfront-case-listing.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6694 ada require upfront case listing - return error message",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "requestCaseBuilding",
8 | "state": "appealSubmitted",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-ada-appeal-submitted.json",
12 | "replacements": {
13 | "acceleratedDetainedAppealListed": "No"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": ["You must list the case before you can move this appeal to case building."],
21 | "caseData": {
22 | "template": "minimal-ada-appeal-submitted.json"
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6877-RIA-6913-age-assessment-feature-flag-false.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6877 RIA-6913 age assessment feature flag false",
3 | "launchDarklyKey": "age-assessment-feature:false",
4 | "request": {
5 | "uri": "/asylum/ccdAboutToStart",
6 | "credentials": "LegalRepresentative",
7 | "input": {
8 | "eventId": "startAppeal",
9 | "state": "appealStarted",
10 | "id": 68771,
11 | "caseData": {
12 | "template": "minimal-appeal-started.json",
13 | "replacements": {
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [],
21 | "caseData": {
22 | "template": "minimal-appeal-started.json",
23 | "replacements": {
24 | "isAgeAssessmentEnabled": "No"
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6877-RIA-6913-age-assessment-feature-flag-true.json.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6877 RIA-6913 age assessment feature flag true",
3 | "launchDarklyKey": "age-assessment-feature:true",
4 | "request": {
5 | "uri": "/asylum/ccdAboutToStart",
6 | "credentials": "LegalRepresentative",
7 | "input": {
8 | "eventId": "startAppeal",
9 | "state": "appealStarted",
10 | "id": 68772,
11 | "caseData": {
12 | "template": "minimal-appeal-started.json",
13 | "replacements": {
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [],
21 | "caseData": {
22 | "template": "minimal-appeal-started.json",
23 | "replacements": {
24 | "isAgeAssessmentEnabled": "Yes"
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6877-RIA-6913-age-assessment-visibility-detained.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6877 RIA-6913 age assessment visible for detained appeal",
3 | "enabled": true,
4 | "request": {
5 | "uri": "/asylum/ccdMidEvent",
6 | "credentials": "LegalRepresentative",
7 | "input": {
8 | "eventId": "startAppeal",
9 | "state": "appealStarted",
10 | "id": 68773,
11 | "caseData": {
12 | "template": "minimal-appeal-started.json",
13 | "replacements": {
14 | "appellantInDetention": "Yes"
15 | }
16 | }
17 | }
18 | },
19 | "expectation": {
20 | "status": 200,
21 | "errors": [],
22 | "caseData": {
23 | "template": "minimal-appeal-started.json",
24 | "replacements": {
25 | "isAgeAssessmentVisible": "No"
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-6877-RIA-6913-age-assessment-visibility-non-detained.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-6877 RIA-6913 age assessment visible for non detained appeal",
3 | "enabled": true,
4 | "request": {
5 | "uri": "/asylum/ccdMidEvent",
6 | "credentials": "LegalRepresentative",
7 | "input": {
8 | "eventId": "startAppeal",
9 | "state": "appealStarted",
10 | "id": 68774,
11 | "caseData": {
12 | "template": "minimal-appeal-started.json",
13 | "replacements": {
14 | "appellantInDetention": "No"
15 | }
16 | }
17 | }
18 | },
19 | "expectation": {
20 | "status": 200,
21 | "errors": [],
22 | "caseData": {
23 | "template": "minimal-appeal-started.json",
24 | "replacements": {
25 | "isAgeAssessmentVisible": "Yes"
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-694-send-direction-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-694 Send direction confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "sendDirection",
8 | "state": "appealSubmitted",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have sent a direction",
19 | "body": "#### What happens next\n\nYou can see the status of the direction in the [directions tab](/case/IA/Asylum/1234#directions)"
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-697-add-appeal-response-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-697 Add appeal response confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "addAppealResponse",
8 | "state": "respondentReview",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have uploaded the appeal response",
19 | "body": "#### What happens next?\n\nThe legal representative will now get an email directing them to review the response.\n\nThis is an automated email sent from the system - you don't need to do anything."
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-700-upload-respondent-evidence-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-700 Upload respondent evidence confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "uploadRespondentEvidence",
8 | "state": "caseBuilding",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have uploaded the respondent evidence",
19 | "body": "#### What happens next\n\nThe legal representative will now get an email directing them to build their case.\n\nThis is an automated email sent from the system - you don't need to do anything."
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-7043-mark-appeal-as-ready-for-UT-transfer-.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA 7043 Mark appeal as ready for UT transfer",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "AdminOfficer",
6 | "input": {
7 | "eventId": "markAsReadyForUtTransfer",
8 | "state": "appealSubmitted",
9 | "caseData": {
10 | "template": "minimal-appeal-submitted.json",
11 | "replacements": {
12 | "utAppealReferenceNumber": "UI-2002-123654",
13 | "utInstructionDate": "2022-11-21"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": [],
21 | "confirmation": {
22 | "body": "#### What happens next\n\nAll parties have been notified. The Upper Tribunal will transfer the appeal.\n"
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-706-upload-additional-evidence-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-706 Upload additional evidence confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "LegalRepresentative",
6 | "input": {
7 | "eventId": "uploadAdditionalEvidence",
8 | "state": "respondentReview",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have uploaded a document",
19 | "body": "#### What happens next\n\nThe document is now available in the documents tab."
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-7447-submit-appeal-by-admin-non-detained-ejp.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-7447 Submit an EJP (non-detained) appeal by admin",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToSubmit",
5 | "credentials": "AdminOfficer",
6 | "input": {
7 | "eventId": "submitAppeal",
8 | "state": "appealSubmitted",
9 | "caseData": {
10 | "template": "minimal-ejp-appeal-started.json",
11 | "replacements": {
12 | "appealReferenceNumber": "HU/50001/2023",
13 | "appellantInUk": null,
14 | "appellantInDetention": "No"
15 | }
16 | }
17 | }
18 | },
19 | "expectation": {
20 | "status": 200,
21 | "errors": [],
22 | "caseData": {
23 | "template": "minimal-ejp-appeal-submitted.json",
24 | "replacements": {
25 | "appealReferenceNumber": "HU/50001/2023"
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-7980-list-assist-integration-confirmation-no.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-7980 List Assist Integration confirmation (No)",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "listAssistIntegration",
8 | "state": "appealSubmitted",
9 | "id": 7980,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "isIntegrated": "No"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "confirmation": {
21 | "header": "# List Assist Integration",
22 | "body": "List hearing in List Assist: No"
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-7980-list-assist-integration-confirmation-yes.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-7980 List Assist Integration confirmation (Yes)",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "listAssistIntegration",
8 | "state": "appealSubmitted",
9 | "id": 7980,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "isIntegrated": "Yes"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "confirmation": {
21 | "header": "# List Assist Integration",
22 | "body": "List hearing in List Assist: Yes"
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-7980-list-assist-integration-preparer-location-enabled-for-list-assist.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-7980 List Assist Integration preparer for list assist enabled location",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "listAssistIntegration",
8 | "state": "appealSubmitted",
9 | "id": 7980,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "caseManagementLocation": {
14 | "region": "1",
15 | "baseLocation": "366559"
16 | }
17 | }
18 | }
19 | }
20 | },
21 | "expectation": {
22 | "status": 200,
23 | "errors": [],
24 | "caseData": {
25 | "template": "minimal-appeal-submitted.json"
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-8157-updateTribunalDecision-rule-31-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-8157 Update Tribunal Decision confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "Judge",
6 | "input": {
7 | "eventId": "updateTribunalDecision",
8 | "state": "ftpaDecided",
9 | "id": 8157,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# You have updated the decision",
19 | "body": "#### What happens next?\n\nAll parties have been notified and the relevant appeal details have been updated."
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-892-request-respondent-evidence-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-892 Request respondent evidence confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "requestRespondentEvidence",
8 | "state": "awaitingRespondentEvidence",
9 | "id": 1234,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "homeOfficeSearchStatus": "SUCCESS"
13 | }
14 | }
15 | },
16 | "expectation": {
17 | "status": 200,
18 | "confirmation": {
19 | "header": "# You have sent a direction",
20 | "body": "#### What happens next\n\nWait for the respondent to complete the direction.\nYou must upload the respondent evidence as soon as you receive it."
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-8975-add-is-aria-migrated-no.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-8975 Add is ARIA migrated flag (NO) during start appeal",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToSubmit",
5 | "credentials": "AdminOfficer",
6 | "input": {
7 | "eventId": "startAppeal",
8 | "state": "appealStarted",
9 | "caseData": {
10 | "template": "minimal-appeal-started.json"
11 | }
12 | }
13 | },
14 | "expectation": {
15 | "status": 200,
16 | "errors": [],
17 | "caseData": {
18 | "template": "minimal-appeal-started.json",
19 | "replacements": {
20 | "isAriaMigrated": "No",
21 | "isAriaMigratedFilter": "No"
22 | }
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-9238-refundConfirmation-confirmation.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-9238 Refund Confirmation confirmation",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "AdminOfficer",
6 | "input": {
7 | "eventId": "refundConfirmation",
8 | "state": "appealSubmitted",
9 | "id": 9238,
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json"
12 | }
13 | }
14 | },
15 | "expectation": {
16 | "status": 200,
17 | "confirmation": {
18 | "header": "# Refund request completed",
19 | "body": "#### What happens next\n\nParties will be notified with the next steps"
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RIA-9239-aria-notice-of-change-error.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RIA-9239 Notice of change request for ARIA migrated case should throw error.",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToSubmit",
5 | "credentials": "LegalRepresentative",
6 | "input": {
7 | "id": 9239,
8 | "eventId": "nocRequest",
9 | "state": "appealSubmitted",
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "isAriaMigrated": "Yes"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "errors": ["Can't take over ARIA migrated case."],
21 | "caseData": {
22 | "template": "minimal-appeal-submitted.json",
23 | "replacements": {
24 | "isAriaMigrated": "Yes"
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RWA-137-Allocate-a-case-to-me.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RWA-137 Allocate a case to me",
3 | "request": {
4 | "uri": "/asylum/ccdSubmitted",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "id": 1234567890,
8 | "eventId": "allocateTheCase",
9 | "state": "appealSubmitted",
10 | "caseData": {
11 | "template": "minimal-appeal-submitted.json",
12 | "replacements": {
13 | "allocateTheCaseTo": "me"
14 | }
15 | }
16 | }
17 | },
18 | "expectation": {
19 | "status": 200,
20 | "confirmation": {
21 | "header": "# You have allocated the case",
22 | "body": "#### What happens next\n\nThe tasks for this case will now appear in your task list. Should you wish, you can write [a case note](/case/IA/Asylum/1234567890/trigger/addCaseNote)."
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/scenarios/RWA-492-Allocate-a-case-reset-options-scenario-about-to-start.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "RWA-492 reset radio button options for the allocate the case event",
3 | "request": {
4 | "uri": "/asylum/ccdAboutToStart",
5 | "credentials": "CaseOfficer",
6 | "input": {
7 | "eventId": "allocateTheCase",
8 | "state": "appealSubmitted",
9 | "caseData": {
10 | "template": "minimal-appeal-submitted.json",
11 | "replacements": {
12 | "allocateTheCaseTo": "caseworker"
13 | }
14 | }
15 | }
16 | },
17 | "expectation": {
18 | "status": 200,
19 | "errors": [],
20 | "caseData": {
21 | "template": "minimal-appeal-submitted.json",
22 | "replacements": {
23 | "allocateTheCaseTo": null
24 | }
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/src/functionalTest/resources/templates/minimal-age-assessment-appeal-started.json:
--------------------------------------------------------------------------------
1 | {
2 | "decisionLetterReferenceNumber": "AG/50052/2022",
3 | "dateOnDecisionLetter": "{$TODAY}",
4 | "appellantTitle": "Mr",
5 | "appellantGivenNames": "Talha",
6 | "appellantFamilyName": "Awan",
7 | "aaAppellantDateOfBirth": "{$TODAY-7300}",
8 | "appellantNationalities": [
9 | {
10 | "id": "1",
11 | "value": {
12 | "code": "IS"
13 | }
14 | }
15 | ],
16 | "appellantHasFixedAddress": "No",
17 | "contactPreference": "wantsSms",
18 | "wantsSms": "Text message",
19 | "mobileNumber": "07977111111",
20 | "appealReferenceNumber": "DRAFT",
21 | "appellantInUk": "Yes",
22 | "ageAssessment": "Yes",
23 | "organisationOnDecisionLetter": "localAuthority",
24 | "localAuthority": "localAuth1",
25 | "appellantInDetention": "No",
26 | "isNabaEnabled": "Yes"
27 | }
28 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/templates/minimal-aip-appeal-started.json:
--------------------------------------------------------------------------------
1 | {
2 | "homeOfficeReferenceNumber": "A123456",
3 | "homeOfficeDecisionDate": "{$TODAY}",
4 | "appellantTitle": "Mr",
5 | "appellantGivenNames": "Talha",
6 | "appellantFamilyName": "Awan",
7 | "appellantDateOfBirth": "{$TODAY-7300}",
8 | "appellantNationalities": [
9 | {
10 | "id": "1",
11 | "value": {
12 | "code": "IS"
13 | }
14 | }
15 | ],
16 | "appellantHasFixedAddress": "No",
17 | "appealType": "protection",
18 | "appealGroundsProtection": {
19 | "values": [
20 | "refugeeConvention"
21 | ]
22 | },
23 | "hasOtherAppeals": "No",
24 | "appellantNameForDisplay": "Talha Awan",
25 | "journeyType": "aip"
26 | }
27 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/templates/minimal-appeal-started.json:
--------------------------------------------------------------------------------
1 | {
2 | "homeOfficeReferenceNumber": "123456789",
3 | "homeOfficeDecisionDate": "{$TODAY}",
4 | "appellantTitle": "Mr",
5 | "appellantGivenNames": "Talha",
6 | "appellantFamilyName": "Awan",
7 | "appellantDateOfBirth": "{$TODAY-7300}",
8 | "appellantNationalities": [
9 | {
10 | "id": "1",
11 | "value": {
12 | "code": "IS"
13 | }
14 | }
15 | ],
16 | "appellantHasFixedAddress": "No",
17 | "contactPreference": "wantsSms",
18 | "wantsSms": "Text message",
19 | "mobileNumber": "07977111111",
20 | "appealType": "protection",
21 | "appealTypeForDisplay": "protection",
22 | "appealGroundsProtection": {
23 | "values": [
24 | "refugeeConvention"
25 | ]
26 | },
27 | "hasNewMatters": "No",
28 | "hasOtherAppeals": "No",
29 | "appealReferenceNumber": "DRAFT",
30 | "appellantInUk": "Yes"
31 | }
32 |
--------------------------------------------------------------------------------
/src/functionalTest/resources/templates/start-appeal-aip.json:
--------------------------------------------------------------------------------
1 | {
2 | "homeOfficeReferenceNumber": "012345678",
3 | "homeOfficeDecisionDate": "2021-10-04",
4 | "appellantGivenNames": "Talha",
5 | "appellantFamilyName": "Awan",
6 | "appellantDateOfBirth": "1978-11-11",
7 | "appellantHasFixedAddress": "No",
8 | "appealType": "protection",
9 | "appellantInUk": "Yes",
10 | "submissionOutOfTime": "No",
11 | "appellantNationalities": [
12 | {
13 | "id": "1",
14 | "value": {
15 | "code": "IS"
16 | }
17 | }
18 | ],
19 | "journeyType": "aip"
20 | }
21 |
--------------------------------------------------------------------------------
/src/integrationTest/java/uk/gov/hmcts/reform/iacaseapi/component/testutils/TestClassOrderer.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.component.testutils;
2 |
3 | import java.util.Comparator;
4 |
5 | import org.junit.jupiter.api.ClassDescriptor;
6 | import org.junit.jupiter.api.ClassOrderer;
7 | import org.junit.jupiter.api.ClassOrdererContext;
8 |
9 | public class TestClassOrderer implements ClassOrderer {
10 | @Override
11 | public void orderClasses(ClassOrdererContext context) {
12 | context.getClassDescriptors().sort(Comparator.comparing((ClassDescriptor d) -> d.getTestClass().getSimpleName()));
13 | System.out.println("Applied custom test class execution order. Execution order follows:");
14 | context.getClassDescriptors().forEach(descriptor -> System.out.println(" " + descriptor.getTestClass().getName()));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/integrationTest/java/uk/gov/hmcts/reform/iacaseapi/component/testutils/fixtures/Builder.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.component.testutils.fixtures;
2 |
3 | public interface Builder {
4 | T build();
5 | }
6 |
--------------------------------------------------------------------------------
/src/integrationTest/java/uk/gov/hmcts/reform/iacaseapi/component/testutils/wiremock/DocumentsApiCallbackTransformer.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.component.testutils.wiremock;
2 |
3 | public class DocumentsApiCallbackTransformer extends CallbackTransformer {
4 |
5 | @Override
6 | public String getName() {
7 | return "ia-case-documents-api-transformer";
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/integrationTest/java/uk/gov/hmcts/reform/iacaseapi/component/testutils/wiremock/NotificationsApiCallbackTransformer.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.component.testutils.wiremock;
2 |
3 | public class NotificationsApiCallbackTransformer extends CallbackTransformer {
4 |
5 | @Override
6 | public String getName() {
7 | return "ia-case-notifications-api-transformer";
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/integrationTest/resources/application-integration.yaml:
--------------------------------------------------------------------------------
1 |
2 | spring:
3 | datasource:
4 | driverClassName: org.h2.Driver
5 | url: jdbc:h2:mem:ia_case_api
6 | username: sa
7 | password:
8 | platform: h2
9 | flyway.enabled: true
10 |
11 | appealReferenceSequenceSeed: 50000
12 |
13 | featureFlag:
14 | timedEventServiceEnabled: true
15 |
16 | idam:
17 | s2s-authorised:
18 | services: ia
--------------------------------------------------------------------------------
/src/integrationTest/resources/junit-platform.properties:
--------------------------------------------------------------------------------
1 | junit.jupiter.testclass.order.default=uk.gov.hmcts.reform.iacaseapi.component.testutils.TestClassOrderer
2 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/Application.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.openfeign.EnableFeignClients;
6 | import org.springframework.retry.annotation.EnableRetry;
7 |
8 | @SpringBootApplication
9 | @EnableRetry
10 | @EnableFeignClients(basePackages =
11 | {
12 | "uk.gov.hmcts.reform.auth",
13 | "uk.gov.hmcts.reform.authorisation",
14 | "uk.gov.hmcts.reform.iacaseapi",
15 | "uk.gov.hmcts.reform.ccd"
16 | })
17 | @SuppressWarnings("HideUtilityClassConstructor") // Spring needs a constructor, its not a utility class
18 | public class Application {
19 |
20 | public static void main(final String[] args) {
21 | SpringApplication.run(Application.class, args);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/DateProvider.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain;
2 |
3 | import java.time.LocalDate;
4 | import java.time.LocalDateTime;
5 |
6 | public interface DateProvider {
7 |
8 | LocalDate now();
9 |
10 | LocalDateTime nowWithTime();
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/RequiredFieldMissingException.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain;
2 |
3 | public class RequiredFieldMissingException extends RuntimeException {
4 | public RequiredFieldMissingException(String message) {
5 | super(message);
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/UserDetailsHelper.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.UserDetails;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.UserRole;
5 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.UserRoleLabel;
6 |
7 | public interface UserDetailsHelper {
8 |
9 | UserRole getLoggedInUserRole(UserDetails userDetails);
10 |
11 | UserRoleLabel getLoggedInUserRoleLabel(UserDetails userDetails);
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/UserDetailsProvider.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.UserDetails;
4 |
5 | public interface UserDetailsProvider {
6 |
7 | UserDetails getUserDetails();
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/AdaSuitabilityReviewDecision.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum AdaSuitabilityReviewDecision {
6 |
7 | SUITABLE("suitable"),
8 | UNSUITABLE("unsuitable");
9 |
10 | @JsonValue
11 | private final String value;
12 |
13 | AdaSuitabilityReviewDecision(String value) {
14 | this.value = value;
15 | }
16 |
17 | @Override
18 | public String toString() {
19 | return value;
20 | }
21 | }
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/AppealReviewOutcome.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum AppealReviewOutcome {
6 |
7 | DECISION_MAINTAINED("decisionMaintained"),
8 | DECISION_WITHDRAWN("decisionWithdrawn");
9 |
10 | @JsonValue
11 | private final String value;
12 |
13 | AppealReviewOutcome(String value) {
14 | this.value = value;
15 | }
16 |
17 | @Override
18 | public String toString() {
19 | return value;
20 | }
21 | }
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/AppealStatus.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import static java.util.Arrays.stream;
4 |
5 | import com.fasterxml.jackson.annotation.JsonValue;
6 |
7 | public enum AppealStatus {
8 |
9 | REINSTATED("Reinstated");
10 |
11 | @JsonValue
12 | private String value;
13 |
14 | AppealStatus(String value) {
15 | this.value = value;
16 | }
17 |
18 | public static AppealStatus from(String value) {
19 | return stream(values())
20 | .filter(v -> v.getValue().equals(value))
21 | .findFirst()
22 | .orElseThrow(() -> new IllegalArgumentException(value + " not an AppealStatus"));
23 | }
24 |
25 | public String getValue() {
26 | return value;
27 | }
28 |
29 | @Override
30 | public String toString() {
31 | return value;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ApplicationDecision.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum ApplicationDecision {
6 |
7 | GRANTED("Granted"),
8 | REFUSED("Refused");
9 |
10 | @JsonValue
11 | private final String value;
12 |
13 | ApplicationDecision(String value) {
14 | this.value = value;
15 | }
16 |
17 | @Override
18 | public String toString() {
19 | return value;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/BaseLocation.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum BaseLocation {
6 | BIRMINGHAM("231596"),
7 | BRADFORD("698118"),
8 | GLASGOW_DEPRECATED("198444"),
9 | GLASGOW("366559"),
10 | HATTON_CROSS("386417"),
11 | MANCHESTER("512401"),
12 | NEWPORT("227101"),
13 | TAYLOR_HOUSE("765324"),
14 | NORTH_SHIELDS("562808"),
15 | NEWCASTLE("366796"),
16 | ARNHEM_HOUSE("324339"),
17 | HARMONDSWORTH("28837"),
18 |
19 | YARLS_WOOD("649000"),
20 | ALLOA_SHERRIF("999971"),
21 | CROWN_HOUSE("420587");
22 |
23 | @JsonValue
24 | private final String id;
25 |
26 | BaseLocation(String id) {
27 | this.id = id;
28 | }
29 |
30 | public String getId() {
31 | return id;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/CaseFlagDetail.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import lombok.Value;
6 |
7 | import java.util.UUID;
8 |
9 | @Value
10 | @JsonIgnoreProperties(ignoreUnknown = true)
11 | public class CaseFlagDetail {
12 |
13 | String id;
14 | CaseFlagValue value;
15 |
16 | public CaseFlagDetail(CaseFlagValue value) {
17 | this(UUID.randomUUID().toString(), value);
18 | }
19 |
20 | public CaseFlagDetail(@JsonProperty("id") String id, @JsonProperty("value") CaseFlagValue value) {
21 | this.id = id;
22 | this.value = value;
23 | }
24 | }
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/CaseManagementLocation.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Builder;
5 | import lombok.Value;
6 | import lombok.extern.jackson.Jacksonized;
7 |
8 | @Value
9 | @Builder
10 | @Jacksonized
11 | @AllArgsConstructor
12 | public class CaseManagementLocation {
13 | Region region;
14 | BaseLocation baseLocation;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/CaseManagementLocationRefData.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Builder;
5 | import lombok.Value;
6 | import lombok.extern.jackson.Jacksonized;
7 |
8 | @Value
9 | @Builder
10 | @Jacksonized
11 | @AllArgsConstructor
12 | public class CaseManagementLocationRefData {
13 | Region region;
14 | DynamicList baseLocation;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ClarifyingQuestion.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.EqualsAndHashCode;
4 | import lombok.ToString;
5 |
6 | @EqualsAndHashCode
7 | @ToString
8 | public class ClarifyingQuestion {
9 | private String question;
10 |
11 | private ClarifyingQuestion() {
12 | }
13 |
14 | public ClarifyingQuestion(String question) {
15 | this.question = question;
16 | }
17 |
18 | public String getQuestion() {
19 | return question;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/CustodialSentenceDate.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.EqualsAndHashCode;
5 | import lombok.Getter;
6 | import lombok.ToString;
7 |
8 | @EqualsAndHashCode
9 | @ToString
10 | @Getter
11 | @AllArgsConstructor
12 | public class CustodialSentenceDate {
13 |
14 | private String custodialDate;
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/DecisionAndReasons.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field.Document;
8 |
9 | @Getter
10 | @Setter
11 | @Builder
12 | @AllArgsConstructor
13 | public class DecisionAndReasons {
14 |
15 | private String updatedDecisionDate;
16 | private String dateCoverLetterDocumentUploaded;
17 | private Document coverLetterDocument;
18 | private String dateDocumentAndReasonsDocumentUploaded;
19 | private Document documentAndReasonsDocument;
20 | private String summariseChanges;
21 |
22 | private DecisionAndReasons() {
23 | // noop -- for deserializer
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/FeeTribunalAction.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum FeeTribunalAction {
6 |
7 | REFUND("refund"),
8 | ADDITIONAL_PAYMENT("additionalPayment"),
9 | NO_ACTION("noAction");
10 | @JsonValue
11 | private final String value;
12 |
13 | FeeTribunalAction(String value) {
14 | this.value = value;
15 | }
16 |
17 | @Override
18 | public String toString() {
19 | return value;
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/FeeUpdateReason.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum FeeUpdateReason {
6 |
7 | DECISION_TYPE_CHANGED("decisionTypeChanged"),
8 | APPEAL_NOT_VALID("appealNotValid"),
9 | FEE_REMISSION_CHANGED("feeRemissionChanged"),
10 | APPEAL_WITHDRAWN("appealWithdrawn");
11 |
12 | @JsonValue
13 | private final String value;
14 |
15 | FeeUpdateReason(String value) {
16 | this.value = value;
17 | }
18 |
19 | @Override
20 | public String toString() {
21 | return value;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/FlagDetail.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @NoArgsConstructor
11 | @AllArgsConstructor
12 | public class FlagDetail {
13 |
14 | String name;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/FtpaDecisionOutcomeType.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum FtpaDecisionOutcomeType {
6 | NOT_ADMITTED("notAdmitted"),
7 | PARTIALLY_GRANTED("partiallyGranted"),
8 | GRANTED("granted"),
9 | REFUSED("refused");
10 |
11 | @JsonValue
12 | private final String id;
13 |
14 | FtpaDecisionOutcomeType(String id) {
15 | this.id = id;
16 | }
17 |
18 | @Override
19 | public String toString() {
20 | return id;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/FtpaResidentJudgeDecisionOutcomeType.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum FtpaResidentJudgeDecisionOutcomeType {
6 |
7 | GRANTED("granted"),
8 | PARTIALLY_GRANTED("partiallyGranted"),
9 | REFUSED("refused"),
10 | APPLICATION_NOT_ADMITTED("notAdmitted"),
11 | WITHDRAWN("withdrawn"),
12 | REHEARD_RULE35("reheardRule35"),
13 | REHEARD_RULE32("reheardRule32"),
14 | REMADE_RULE31("remadeRule31"),
15 | REMADE_RULE32("remadeRule32");
16 |
17 | @JsonValue
18 | private final String id;
19 |
20 | FtpaResidentJudgeDecisionOutcomeType(String id) {
21 | this.id = id;
22 | }
23 |
24 | @Override
25 | public String toString() {
26 | return id;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/HearingAdjournmentDay.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum HearingAdjournmentDay {
6 |
7 | ON_HEARING_DATE("onHearingDate"),
8 | BEFORE_HEARING_DATE("beforeHearingDate");
9 |
10 | @JsonValue
11 | private final String value;
12 |
13 | HearingAdjournmentDay(String value) {
14 | this.value = value;
15 | }
16 |
17 | public String getValue() {
18 | return value;
19 | }
20 |
21 | @Override
22 | public String toString() {
23 | return value;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/HearingConductionOptions.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum HearingConductionOptions {
6 | DECISION_WITHOUT_HEARING("decisionWithouHearing"),
7 | VIDEO_WITH_NO_PARTICIPANTS("videoWithNoParticipants"),
8 | VIDEO_WITH_AT_LEAST_ONE("videoWithAtLeastOne"),
9 | AUDIO_WITH_NO_PARTICIPANTS("audioWithNoParticipants"),
10 | AUDIO_WITH_AT_LEAST_ONE("audioWithAtLeastOne"),
11 | ALL_PARTICIPANTS("allParticipants");
12 |
13 | @JsonValue
14 | private final String id;
15 |
16 | HearingConductionOptions(String id) {
17 | this.id = id;
18 | }
19 |
20 | @Override
21 | public String toString() {
22 | return id;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/HearingDecision.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 |
6 | @Getter
7 | @AllArgsConstructor
8 | public class HearingDecision {
9 | private final String hearingId;
10 | private final String decision;
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/HearingRecordingDocument.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Builder;
5 | import lombok.Value;
6 | import lombok.extern.jackson.Jacksonized;
7 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field.Document;
8 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field.HasDocument;
9 |
10 | @Value
11 | @Builder
12 | @Jacksonized
13 | @AllArgsConstructor
14 | public class HearingRecordingDocument implements HasDocument {
15 | Document document;
16 | String description;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/HelpWithFeesOption.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum HelpWithFeesOption {
6 |
7 | WANT_TO_APPLY("wantToApply"),
8 | ALREADY_APPLIED("alreadyApplied"),
9 | WILL_PAY_FOR_APPEAL("willPayForAppeal");
10 |
11 | @JsonValue
12 | private final String value;
13 |
14 | HelpWithFeesOption(String value) {
15 | this.value = value;
16 | }
17 |
18 | @Override
19 | public String toString() {
20 | return value;
21 | }
22 | }
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/InterpreterBookingStatus.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum InterpreterBookingStatus {
6 | NOT_REQUESTED("notRequested"),
7 | REQUESTED("requested"),
8 | BOOKED("booked"),
9 | CANCELLED("cancelled");
10 |
11 | @JsonValue
12 | private final String value;
13 |
14 | InterpreterBookingStatus(String value) {
15 | this.value = value;
16 | }
17 |
18 | public String getValue() {
19 | return value;
20 | }
21 |
22 | @Override
23 | public String toString() {
24 | return getValue();
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/InterpreterLanguage.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @NoArgsConstructor
11 | @AllArgsConstructor
12 | public class InterpreterLanguage {
13 |
14 | //legacy object (superseded by InterpreterLanguageRefData)
15 | private String language;
16 | private String languageDialect;
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/InterpreterLanguageCategory.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | public enum InterpreterLanguageCategory {
4 |
5 | SPOKEN_LANGUAGE_INTERPRETER("spokenLanguageInterpreter"),
6 | SIGN_LANGUAGE_INTERPRETER("signLanguageInterpreter");
7 |
8 | private final String value;
9 |
10 | InterpreterLanguageCategory(String value) {
11 | this.value = value;
12 | }
13 |
14 | public String getValue() {
15 | return value;
16 | }
17 |
18 | @Override
19 | public String toString() {
20 | return getValue();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/LegacyCaseFlag.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 | import lombok.NonNull;
8 |
9 | @Getter
10 | @Setter
11 | @NoArgsConstructor
12 | @AllArgsConstructor
13 | public class LegacyCaseFlag {
14 |
15 | @NonNull
16 | CaseFlagType legacyCaseFlagType;
17 | @NonNull
18 | String legacyCaseFlagAdditionalInformation;
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/Location.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | public class Location {
4 | private String id;
5 | private String name;
6 |
7 | public Location(String id, String name) {
8 | this.id = id;
9 | this.name = name;
10 | }
11 |
12 | public String getId() {
13 | return id;
14 | }
15 |
16 | public void setId(String id) {
17 | this.id = id;
18 | }
19 |
20 | public String getName() {
21 | return name;
22 | }
23 |
24 | public void setLocationName(String name) {
25 | this.name = name;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/MakeAnApplicationDecision.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum MakeAnApplicationDecision {
6 |
7 | GRANTED("Granted"),
8 | REFUSED("Refused");
9 |
10 | @JsonValue
11 | private final String value;
12 |
13 | MakeAnApplicationDecision(String value) {
14 | this.value = value;
15 | }
16 |
17 | @Override
18 | public String toString() {
19 | return value;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/NextHearingDetails.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 | import lombok.Builder;
5 | import lombok.Data;
6 |
7 | @Data
8 | @Builder
9 | public class NextHearingDetails {
10 |
11 | @JsonProperty("hearingID")
12 | private String hearingId;
13 | private String hearingDateTime;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/OrganisationOnDecisionLetter.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum OrganisationOnDecisionLetter {
6 |
7 | LOCAL_AUTHORITY("localAuthority"),
8 | NATIONAL_AGE_ASSESSMENT_BOARD("nationalAgeAssessmentBoard"),
9 | HSC_TRUST("hscTrust");
10 |
11 | @JsonValue
12 | private final String id;
13 |
14 | OrganisationOnDecisionLetter(String id) {
15 | this.id = id;
16 | }
17 |
18 | @Override
19 | public String toString() {
20 | return id;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/OtherDetentionFacilityName.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.EqualsAndHashCode;
5 | import lombok.Getter;
6 | import lombok.ToString;
7 |
8 | @EqualsAndHashCode
9 | @ToString
10 | @Getter
11 | @AllArgsConstructor
12 | public class OtherDetentionFacilityName {
13 |
14 | private String other;
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/OutOfCountryCircumstances.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum OutOfCountryCircumstances {
6 |
7 | ENTRY_CLEARANCE_DECISION("entryClearanceDecision"),
8 | LEAVE_UK("leaveUk"),
9 | NONE("none");
10 |
11 | @JsonValue
12 | private final String value;
13 |
14 | OutOfCountryCircumstances(String value) {
15 | this.value = value;
16 | }
17 |
18 | @Override
19 | public String toString() {
20 | return value;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/OutOfTimeDecisionDetails.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.EqualsAndHashCode;
4 | import lombok.Getter;
5 | import lombok.ToString;
6 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field.Document;
7 |
8 | @Getter
9 | @EqualsAndHashCode
10 | @ToString
11 | public class OutOfTimeDecisionDetails {
12 |
13 | private String decisionType;
14 | private String decisionMaker;
15 | private Document decisionDocument;
16 |
17 | private OutOfTimeDecisionDetails() {
18 |
19 | }
20 |
21 | public OutOfTimeDecisionDetails(String decisionType, String decisionMaker, Document decisionDocument) {
22 | this.decisionType = decisionType;
23 | this.decisionMaker = decisionMaker;
24 | this.decisionDocument = decisionDocument;
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/OutOfTimeDecisionType.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum OutOfTimeDecisionType {
6 |
7 | IN_TIME("inTime"),
8 | APPROVED("approved"),
9 | REJECTED("rejected");
10 |
11 | @JsonValue
12 | private final String value;
13 |
14 | OutOfTimeDecisionType(String value) {
15 | this.value = value;
16 | }
17 |
18 | @Override
19 | public String toString() {
20 | return value;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/Parties.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum Parties {
6 |
7 | LEGAL_REPRESENTATIVE("legalRepresentative"),
8 | RESPONDENT("respondent"),
9 | BOTH("both"), // Legal rep and respondent
10 | APPELLANT("appellant"),
11 | APPELLANT_AND_RESPONDENT("appellantAndRespondent");
12 |
13 | @JsonValue
14 | private final String id;
15 |
16 | Parties(String id) {
17 | this.id = id;
18 | }
19 |
20 | @Override
21 | public String toString() {
22 | return id;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/PreviousDates.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import static java.util.Objects.requireNonNull;
4 |
5 | public class PreviousDates {
6 |
7 | private String dateDue;
8 | private String dateSent;
9 |
10 | private PreviousDates() {
11 | // noop -- for deserializer
12 | }
13 |
14 | public PreviousDates(String dateDue, String dateSent) {
15 | requireNonNull(dateDue);
16 | requireNonNull(dateSent);
17 |
18 | this.dateDue = dateDue;
19 | this.dateSent = dateSent;
20 | }
21 |
22 | public String getDateDue() {
23 | requireNonNull(dateDue);
24 | return dateDue;
25 | }
26 |
27 | public String getDateSent() {
28 | requireNonNull(dateSent);
29 | return dateSent;
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/PrisonNomsNumber.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.EqualsAndHashCode;
5 | import lombok.Getter;
6 | import lombok.ToString;
7 |
8 | @EqualsAndHashCode
9 | @ToString
10 | @Getter
11 | @AllArgsConstructor
12 | public class PrisonNomsNumber {
13 |
14 | private String prison;
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ProfessionalUsersResponse.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import java.util.List;
5 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.CaseData;
6 |
7 | @JsonIgnoreProperties(ignoreUnknown = true)
8 | public class ProfessionalUsersResponse implements CaseData {
9 |
10 | private List users;
11 |
12 | private ProfessionalUsersResponse() {
13 | }
14 |
15 | public ProfessionalUsersResponse(List users) {
16 | this.users = users;
17 | }
18 |
19 | public List getUsers() {
20 | return users;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ReasonForLinkAppealOptions.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 | import lombok.ToString;
5 |
6 | @ToString
7 | public enum ReasonForLinkAppealOptions {
8 | FAMILIAL("Familial"),
9 | SHARED_EVIDENCE("Shared evidence"),
10 | GUARDIAN("Guardian"),
11 | BAIL("Bail"),
12 | HOME_OFFICE_REQUEST("Home Office request"),
13 | OTHER_APPEAL_PENDING("Other appeal pending"),
14 | OTHER_APPEAL_DECIDED("Other appeal decided");
15 |
16 | @JsonValue
17 | private final String id;
18 |
19 | ReasonForLinkAppealOptions(String id) {
20 | this.id = id;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/Region.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum Region {
6 | NATIONAL("1");
7 |
8 | @JsonValue
9 | private String id;
10 |
11 | Region(String id) {
12 | this.id = id;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/RemissionDecision.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum RemissionDecision {
6 |
7 | APPROVED("approved"),
8 | PARTIALLY_APPROVED("partiallyApproved"),
9 | REJECTED("rejected");
10 |
11 | @JsonValue
12 | private final String id;
13 |
14 | RemissionDecision(String id) {
15 | this.id = id;
16 | }
17 |
18 | @Override
19 | public String toString() {
20 | return id;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/RemissionOption.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum RemissionOption {
6 |
7 | ASYLUM_SUPPORT_FROM_HOME_OFFICE("asylumSupportFromHo"),
8 | FEE_WAIVER_FROM_HOME_OFFICE("feeWaiverFromHo"),
9 | UNDER_18_GET_SUPPORT("under18GetSupportFromLocalAuthority"),
10 | PARENT_GET_SUPPORT("parentGetSupportFromLocalAuthority"),
11 | NO_REMISSION("noneOfTheseStatements"),
12 | I_WANT_TO_GET_HELP_WITH_FEES("iWantToGetHelpWithFees");
13 |
14 |
15 | @JsonValue
16 | private final String value;
17 |
18 | RemissionOption(String value) {
19 | this.value = value;
20 | }
21 |
22 | @Override
23 | public String toString() {
24 | return value;
25 | }
26 | }
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/RemissionType.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum RemissionType {
6 |
7 | NO_REMISSION("noRemission"),
8 | HO_WAIVER_REMISSION("hoWaiverRemission"),
9 | HELP_WITH_FEES("helpWithFees"),
10 | EXCEPTIONAL_CIRCUMSTANCES_REMISSION("exceptionalCircumstancesRemission");
11 |
12 | @JsonValue
13 | private final String id;
14 |
15 | RemissionType(String id) {
16 | this.id = id;
17 | }
18 |
19 | @Override
20 | public String toString() {
21 | return id;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/RemittalDocument.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import java.util.List;
5 | import lombok.AllArgsConstructor;
6 | import lombok.Getter;
7 | import lombok.NoArgsConstructor;
8 | import lombok.Setter;
9 |
10 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field.IdValue;
11 |
12 | @Getter
13 | @Setter
14 | @NoArgsConstructor
15 | @AllArgsConstructor
16 | @JsonIgnoreProperties(ignoreUnknown = true)
17 | // Complex object in CCD to represent the collection of the
18 | // Remittal Decision Document & Other remittal documents.
19 | public class RemittalDocument {
20 |
21 | private DocumentWithMetadata decisionDocument;
22 | private List> otherRemittalDocs;
23 | }
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/SourceOfRemittal.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum SourceOfRemittal {
6 |
7 | COURT_OF_APPEAL("Court of Appeal"),
8 | UPPER_TRIBUNAL("Upper Tribunal");
9 |
10 | @JsonValue
11 | private final String value;
12 |
13 | SourceOfRemittal(String value) {
14 | this.value = value;
15 | }
16 |
17 | public String getValue() {
18 | return value;
19 | }
20 |
21 | @Override
22 | public String toString() {
23 | return getValue();
24 | }
25 | }
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/StoredNotification.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.*;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field.Document;
5 |
6 | @EqualsAndHashCode
7 | @ToString
8 | @Getter
9 | @Builder
10 | @AllArgsConstructor
11 | public class StoredNotification {
12 | @NonNull private String notificationId;
13 | @NonNull private String notificationDateSent;
14 | @NonNull private String notificationSentTo;
15 | @NonNull private String notificationBody;
16 | @Setter private Document notificationDocument;
17 | @NonNull private String notificationMethod;
18 | @NonNull private String notificationStatus;
19 | @NonNull private String notificationReference;
20 | @NonNull private String notificationSubject;
21 | private String notificationErrorMessage;
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/StrategicCaseFlag.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import java.util.List;
6 | import lombok.Value;
7 |
8 | @Value
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class StrategicCaseFlag {
11 |
12 | String partyName;
13 | String roleOnCase;
14 |
15 | @JsonProperty("details")
16 | List details;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/TimeExtensionDecision.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum TimeExtensionDecision {
6 | GRANTED("granted"),
7 | REFUSED("refused");
8 |
9 | @JsonValue
10 | private final String id;
11 |
12 | TimeExtensionDecision(String id) {
13 | this.id = id;
14 | }
15 |
16 | @Override
17 | public String toString() {
18 | return id;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/TimeExtensionStatus.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum TimeExtensionStatus {
6 | IN_PROGRESS("inProgress"),
7 | SUBMITTED("submitted"),
8 | GRANTED("granted"),
9 | REFUSED("refused");
10 |
11 | @JsonValue
12 | private final String id;
13 |
14 | TimeExtensionStatus(String id) {
15 | this.id = id;
16 | }
17 |
18 | @Override
19 | public String toString() {
20 | return id;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/TypesOfAppliedCosts.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum TypesOfAppliedCosts {
6 | UNREASONABLE_COSTS("Unreasonable costs"),
7 | WASTED_COSTS("Wasted costs"),
8 | TRIBUNAL_COSTS("Tribunal costs");
9 |
10 | @JsonValue
11 | private final String value;
12 |
13 | TypesOfAppliedCosts(String value) {
14 | this.value = value;
15 | }
16 |
17 | @Override
18 | public String toString() {
19 | return value;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/UpdateTribunalRules.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum UpdateTribunalRules {
6 |
7 | UNDER_RULE_31("underRule31"),
8 | UNDER_RULE_32("underRule32");
9 |
10 | @JsonValue
11 | private final String value;
12 |
13 | UpdateTribunalRules(String value) {
14 | this.value = value;
15 | }
16 |
17 | @Override
18 | public String toString() {
19 | return value;
20 | }
21 |
22 | }
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/UserDetails.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import java.util.List;
4 |
5 | public interface UserDetails {
6 |
7 | String getAccessToken();
8 |
9 | String getId();
10 |
11 | List getRoles();
12 |
13 | String getEmailAddress();
14 |
15 | String getForename();
16 |
17 | String getSurname();
18 |
19 | String getForenameAndSurname();
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/UserRoleLabel.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum UserRoleLabel {
6 |
7 | JUDGE("Judge"),
8 | TRIBUNAL_CASEWORKER("Tribunal Caseworker"),
9 | ADMIN_OFFICER("Admin Officer"),
10 | HOME_OFFICE_GENERIC("Respondent"),
11 | LEGAL_REPRESENTATIVE("Legal representative"),
12 | SYSTEM("System"),
13 | CITIZEN("Appellant");
14 |
15 | @JsonValue
16 | private final String id;
17 |
18 | UserRoleLabel(String id) {
19 | this.id = id;
20 | }
21 |
22 | @Override
23 | public String toString() {
24 | return id;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/Value.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import lombok.EqualsAndHashCode;
4 | import lombok.ToString;
5 |
6 | @EqualsAndHashCode
7 | @ToString
8 | public class Value {
9 |
10 | private String code;
11 | private String label;
12 |
13 | private Value() {
14 | //no op constructor
15 | }
16 |
17 | public Value(String code, String label) {
18 | this.code = code;
19 | this.label = label;
20 | }
21 |
22 | public String getCode() {
23 | return code;
24 | }
25 |
26 | public String getLabel() {
27 | return label;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/CaseData.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd;
2 |
3 | public interface CaseData {
4 | // marker interface
5 | }
6 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/CheckValues.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd;
2 |
3 | import java.util.List;
4 |
5 | public class CheckValues {
6 |
7 | private List values;
8 |
9 | private CheckValues() {
10 | // noop -- for deserializer
11 | }
12 |
13 | public CheckValues(List values) {
14 | this.values = values;
15 | }
16 |
17 | public List getValues() {
18 | return values;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/FtpaDecisionCheckValues.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 |
7 | import java.util.List;
8 |
9 | @Getter
10 | @Setter
11 | @AllArgsConstructor
12 | public class FtpaDecisionCheckValues {
13 |
14 | private List specialDifficulty;
15 | private List specialReasons;
16 | private List countryGuidance;
17 |
18 | private FtpaDecisionCheckValues() {
19 | // noop -- for deserializer
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/HoursAndMinutes.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd;
2 |
3 | public class HoursAndMinutes {
4 |
5 | private String hours;
6 | private String minutes;
7 |
8 | public HoursAndMinutes() {
9 | // noop -- for deserializer
10 | }
11 |
12 | public HoursAndMinutes(String hours, String minutes) {
13 | this.hours = hours;
14 | this.minutes = minutes;
15 | }
16 |
17 | public String getHours() {
18 | return hours;
19 | }
20 |
21 | public String getMinutes() {
22 | return minutes;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/NationalityFieldValue.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd;
2 |
3 | public class NationalityFieldValue {
4 | private String code;
5 |
6 | public NationalityFieldValue(String code) {
7 | this.code = code;
8 | }
9 |
10 | private NationalityFieldValue() {
11 |
12 | }
13 |
14 | public String getCode() {
15 | return code;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/callback/DispatchPriority.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback;
2 |
3 | public enum DispatchPriority {
4 |
5 | EARLIEST("earliest"),
6 | EARLY("early"),
7 | LATE("late"),
8 | LATEST("latest"),
9 | LAST("last");
10 |
11 | private final String id;
12 |
13 | DispatchPriority(String id) {
14 | this.id = id;
15 | }
16 |
17 | @Override
18 | public String toString() {
19 | return id;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/callback/PreSubmitCallbackStage.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback;
2 |
3 | public enum PreSubmitCallbackStage {
4 |
5 | ABOUT_TO_START("aboutToStart"),
6 | ABOUT_TO_SUBMIT("aboutToSubmit"),
7 | MID_EVENT("midEvent");
8 |
9 | private final String id;
10 |
11 | PreSubmitCallbackStage(String id) {
12 | this.id = id;
13 | }
14 |
15 | @Override
16 | public String toString() {
17 | return id;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/field/BailApplicationStatus.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum BailApplicationStatus {
6 | YES("Yes"),
7 | NO("No"),
8 | YES_WITHOUT_BAIL_APPLICATION_NUMBER("YesWithoutBailApplicationNumber"),
9 | NOT_SURE("NotSure");
10 |
11 | @JsonValue
12 | private final String id;
13 |
14 | BailApplicationStatus(String id) {
15 | this.id = id;
16 | }
17 |
18 | @Override
19 | public String toString() {
20 | return id;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/field/ChangeOrganisationRequest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import lombok.AllArgsConstructor;
6 | import lombok.Getter;
7 | import lombok.NoArgsConstructor;
8 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.DynamicList;
9 |
10 | @Getter
11 | @AllArgsConstructor
12 | @NoArgsConstructor
13 | @JsonIgnoreProperties(ignoreUnknown = true)
14 | public class ChangeOrganisationRequest {
15 |
16 | @JsonProperty("CaseRoleId")
17 | private DynamicList caseRoleId;
18 |
19 | @JsonProperty("RequestTimestamp")
20 | private String requestTimestamp;
21 |
22 | @JsonProperty("ApprovalStatus")
23 | private String approvalStatus;
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/field/HasDocument.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field;
2 |
3 | public interface HasDocument {
4 | Document getDocument();
5 | }
6 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/field/HearingType.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum HearingType {
6 | HEARING("hearing"),
7 | APPOINTMENT("appointment");
8 |
9 | @JsonValue
10 | private final String id;
11 |
12 | HearingType(String id) {
13 | this.id = id;
14 | }
15 |
16 | @Override
17 | public String toString() {
18 | return id;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/field/JourneyType.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum JourneyType {
6 | AIP("aip"),
7 | REP("rep");
8 |
9 | @JsonValue
10 | private final String id;
11 |
12 | JourneyType(String id) {
13 | this.id = id;
14 | }
15 |
16 | @Override
17 | public String toString() {
18 | return id;
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/field/PaymentStatus.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum PaymentStatus {
6 |
7 | PAID("Paid"),
8 | PAYMENT_PENDING("Payment pending"),
9 | FAILED("Failed"),
10 | TIMEOUT("Timeout"),
11 | NOT_PAID("Not paid");
12 |
13 | @JsonValue
14 | private final String id;
15 |
16 | PaymentStatus(String id) {
17 | this.id = id;
18 | }
19 |
20 | @Override
21 | public String toString() {
22 | return id;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/field/YesOrNo.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum YesOrNo {
6 |
7 | NO("No"),
8 | YES("Yes");
9 |
10 | @JsonValue
11 | private final String id;
12 |
13 | YesOrNo(String id) {
14 | this.id = id;
15 | }
16 |
17 | @Override
18 | public String toString() {
19 | return id;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/fee/FeeType.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.fee;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum FeeType {
6 |
7 | FEE_WITH_HEARING("feeWithHearing"),
8 | FEE_WITHOUT_HEARING("feeWithoutHearing");
9 |
10 | @JsonValue
11 | private final String value;
12 |
13 | FeeType(String value) {
14 | this.value = value;
15 | }
16 |
17 | public String getValue() {
18 | return value;
19 | }
20 |
21 | @Override
22 | public String toString() {
23 | return getValue();
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/homeoffice/CodeWithDescription.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.homeoffice;
2 |
3 | public class CodeWithDescription {
4 |
5 | private String code;
6 | private String description;
7 |
8 | public CodeWithDescription(String code, String description) {
9 | this.code = code;
10 | this.description = description;
11 | }
12 |
13 | private CodeWithDescription() {
14 |
15 | }
16 |
17 | public String getCode() {
18 | return code;
19 | }
20 |
21 | public String getDescription() {
22 | return description;
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/homeoffice/HomeOfficeError.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.homeoffice;
2 |
3 | public class HomeOfficeError {
4 |
5 | private String errorCode;
6 | private String messageText;
7 | private boolean success;
8 |
9 | private HomeOfficeError() {
10 | }
11 |
12 | public HomeOfficeError(String errorCode, String messageText, boolean success) {
13 | this.errorCode = errorCode;
14 | this.messageText = messageText;
15 | this.success = success;
16 | }
17 |
18 | public String getErrorCode() {
19 | return errorCode;
20 | }
21 |
22 | public String getMessageText() {
23 | return messageText;
24 | }
25 |
26 | public boolean isSuccess() {
27 | return success;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/homeoffice/MessageHeader.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.homeoffice;
2 |
3 | public class MessageHeader {
4 |
5 | private CodeWithDescription consumer;
6 | private String correlationId;
7 | private String eventDateTime;
8 |
9 | private MessageHeader() {
10 |
11 | }
12 |
13 | public MessageHeader(CodeWithDescription consumer, String correlationId, String eventDateTime) {
14 | this.consumer = consumer;
15 | this.correlationId = correlationId;
16 | this.eventDateTime = eventDateTime;
17 | }
18 |
19 | public String getCorrelationId() {
20 | return correlationId;
21 | }
22 |
23 | public String getEventDateTime() {
24 | return eventDateTime;
25 | }
26 |
27 | public CodeWithDescription getConsumer() {
28 | return consumer;
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/homeoffice/RejectionReason.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.homeoffice;
2 |
3 | public class RejectionReason {
4 | private String reason;
5 |
6 | private RejectionReason() {
7 |
8 | }
9 |
10 | public RejectionReason(String reason) {
11 | this.reason = reason;
12 | }
13 |
14 | public String getReason() {
15 | return reason;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ref/OrganisationResponse.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ref;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Getter;
5 |
6 | @Getter
7 | @JsonIgnoreProperties(ignoreUnknown = true)
8 | public class OrganisationResponse {
9 |
10 | private OrganisationEntityResponse organisationEntityResponse;
11 |
12 | public OrganisationResponse(OrganisationEntityResponse organisationEntityResponse) {
13 | this.organisationEntityResponse = organisationEntityResponse;
14 | }
15 |
16 | public OrganisationResponse() {
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/roleassignment/ActorIdType.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.roleassignment;
2 |
3 | import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
4 |
5 | public enum ActorIdType {
6 | IDAM, CASEPARTY, @JsonEnumDefaultValue UNKNOWN
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/roleassignment/Attributes.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.roleassignment;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 |
5 | public enum Attributes {
6 | CASE_ID("caseId"),
7 | PRIMARY_LOCATION("primaryLocation"),
8 | JURISDICTION("jurisdiction"),
9 | REGION("region"),
10 | CASE_TYPE("caseType");
11 |
12 | @JsonValue
13 | private final String value;
14 |
15 | public String getValue() {
16 | return value;
17 | }
18 |
19 | Attributes(String value) {
20 | this.value = value;
21 | }
22 |
23 | @Override
24 | public String toString() {
25 | return value;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/roleassignment/Classification.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.roleassignment;
2 |
3 | import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
4 |
5 | public enum Classification {
6 | PUBLIC, PRIVATE, RESTRICTED, @JsonEnumDefaultValue UNKNOWN
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/roleassignment/GrantType.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.roleassignment;
2 |
3 | import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
4 |
5 | public enum GrantType {
6 | BASIC, SPECIFIC, STANDARD, CHALLENGED, EXCLUDED, @JsonEnumDefaultValue UNKNOWN
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/roleassignment/Jurisdiction.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.roleassignment;
2 |
3 | public enum Jurisdiction {
4 | IA
5 | }
6 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/roleassignment/RoleAssignment.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.roleassignment;
2 |
3 | import java.util.List;
4 | import lombok.EqualsAndHashCode;
5 | import lombok.ToString;
6 |
7 | @EqualsAndHashCode
8 | @ToString
9 | public class RoleAssignment {
10 | private final RoleRequest roleRequest;
11 | private final List requestedRoles;
12 |
13 | public RoleAssignment(RoleRequest roleRequest, List requestedRoles) {
14 | this.roleRequest = roleRequest;
15 | this.requestedRoles = requestedRoles;
16 | }
17 |
18 | public RoleRequest getRoleRequest() {
19 | return roleRequest;
20 | }
21 |
22 | public List getRequestedRoles() {
23 | return requestedRoles;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/roleassignment/RoleCategory.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.roleassignment;
2 |
3 | import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
4 |
5 | public enum RoleCategory {
6 | ADMIN, JUDICIAL, STAFF, LEGAL_OPERATIONS, PROFESSIONAL, CITIZEN, @JsonEnumDefaultValue UNKNOWN
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/roleassignment/RoleName.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.roleassignment;
2 |
3 | import com.fasterxml.jackson.annotation.JsonValue;
4 | import lombok.Getter;
5 |
6 | @Getter
7 | public enum RoleName {
8 | CASE_MANAGER("case-manager"),
9 | TRIBUNAL_CASEWORKER("tribunal-caseworker"),
10 | SENIOR_TRIBUNAL_CASEWORKER("senior-tribunal-caseworker"),
11 | LEGAL_REPRESENTATIVE("[LEGALREPRESENTATIVE]"),
12 | CREATOR("[CREATOR]");
13 |
14 | @JsonValue
15 | private final String value;
16 |
17 | RoleName(String value) {
18 | this.value = value;
19 | }
20 |
21 | @Override
22 | public String toString() {
23 | return value;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/roleassignment/RoleType.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.roleassignment;
2 |
3 | import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
4 |
5 | public enum RoleType {
6 | CASE, ORGANISATION, @JsonEnumDefaultValue UNKNOWN
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/handlers/PostSubmitCallbackHandler.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.handlers;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.CaseData;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.Callback;
5 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.DispatchPriority;
6 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.PostSubmitCallbackResponse;
7 |
8 | public interface PostSubmitCallbackHandler {
9 |
10 | boolean canHandle(
11 | Callback callback
12 | );
13 |
14 | default DispatchPriority getDispatchPriority() {
15 | return DispatchPriority.LATE;
16 | }
17 |
18 | PostSubmitCallbackResponse handle(
19 | Callback callback
20 | );
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/handlers/PreSubmitCallbackStateHandler.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.handlers;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.CaseData;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.Callback;
5 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.PreSubmitCallbackResponse;
6 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.PreSubmitCallbackStage;
7 |
8 | public interface PreSubmitCallbackStateHandler {
9 |
10 | boolean canHandle(
11 | PreSubmitCallbackStage callbackStage,
12 | Callback callback
13 | );
14 |
15 | PreSubmitCallbackResponse handle(
16 | PreSubmitCallbackStage callbackStage,
17 | Callback callback,
18 | PreSubmitCallbackResponse callbackResponse
19 | );
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/handlers/presubmit/DocumentServiceResponseException.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.handlers.presubmit;
2 |
3 | import org.springframework.web.client.RestClientResponseException;
4 |
5 | public class DocumentServiceResponseException extends RuntimeException {
6 |
7 | public DocumentServiceResponseException(String message) {
8 | super(message);
9 | }
10 |
11 | public DocumentServiceResponseException(String message, RestClientResponseException cause) {
12 | super(message, cause);
13 |
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/handlers/presubmit/allocatecase/AllocateTheCaseService.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.handlers.presubmit.allocatecase;
2 |
3 | import static uk.gov.hmcts.reform.iacaseapi.domain.entities.AsylumCaseFieldDefinition.ALLOCATE_THE_CASE_TO;
4 |
5 | import org.apache.commons.lang3.StringUtils;
6 | import org.springframework.stereotype.Component;
7 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.AsylumCase;
8 |
9 | @Component
10 | public class AllocateTheCaseService {
11 |
12 | public boolean isAllocateToCaseWorkerOption(AsylumCase asylumCase) {
13 | String allocateTheCaseTo = asylumCase.read(ALLOCATE_THE_CASE_TO, String.class)
14 | .orElse(StringUtils.EMPTY);
15 | return "caseworker".equals(allocateTheCaseTo);
16 | }
17 | }
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/handlers/presubmit/allocatecase/CaseWorkerName.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.handlers.presubmit.allocatecase;
2 |
3 | import lombok.Value;
4 |
5 | @Value
6 | public class CaseWorkerName {
7 | String id;
8 | String formattedName;
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/AccessCodeGenerator.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import java.security.SecureRandom;
4 | import org.apache.commons.lang3.RandomStringUtils;
5 |
6 | public class AccessCodeGenerator {
7 |
8 | private static final String ALLOWED_CHARS = "ABCDEFGHJKLMNPRSTVWXYZ23456789";
9 | private static final int LENGTH = 12;
10 |
11 | private AccessCodeGenerator() {
12 | }
13 |
14 | public static String generateAccessCode() {
15 | return RandomStringUtils.random(LENGTH, 0, ALLOWED_CHARS.length(),
16 | false, false, ALLOWED_CHARS.toCharArray(), new SecureRandom());
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/AppealReferenceNumberGenerator.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.AppealType;
4 |
5 | public interface AppealReferenceNumberGenerator {
6 |
7 | String generate(
8 | long caseId,
9 | AppealType appealType,
10 | boolean isDetainedAppeal
11 | );
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/AsylumCaseValueInitializerFixer.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.AsylumCase;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.AsylumCaseFieldDefinition;
5 |
6 | public class AsylumCaseValueInitializerFixer implements DataFixer {
7 |
8 | private final AsylumCaseFieldDefinition field;
9 | private final T value;
10 |
11 | public AsylumCaseValueInitializerFixer(
12 | AsylumCaseFieldDefinition field,
13 | T value
14 | ) {
15 | this.field = field;
16 | this.value = value;
17 | }
18 |
19 | @Override
20 | public void fix(AsylumCase asylumCase) {
21 |
22 | if (!asylumCase.read(field).isPresent()) {
23 | asylumCase.write(field, value);
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/DataFixer.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.AsylumCase;
4 |
5 | public interface DataFixer {
6 |
7 | void fix(AsylumCase asylumCase);
8 | }
9 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/DocumentGenerator.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.CaseData;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.Callback;
5 |
6 | public interface DocumentGenerator {
7 |
8 | T generate(
9 | Callback callback
10 | );
11 |
12 | T aboutToStart(
13 | Callback callback
14 | );
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/FeatureToggler.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import com.launchdarkly.sdk.LDValue;
4 |
5 | public interface FeatureToggler {
6 |
7 | boolean getValue(String key, Boolean defaultValue);
8 |
9 | LDValue getJsonValue(String key, LDValue defaultValue);
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/FeePayment.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.CaseData;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.Callback;
5 |
6 | public interface FeePayment {
7 |
8 | T aboutToStart(
9 | Callback callback
10 | );
11 |
12 | T aboutToSubmit(
13 | Callback callback
14 | );
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/HearingPartyIdGenerator.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import java.util.UUID;
4 |
5 | public class HearingPartyIdGenerator {
6 |
7 | private HearingPartyIdGenerator() {
8 | }
9 |
10 | public static String generate() {
11 | return UUID.randomUUID().toString();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/HomeOfficeApi.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.CaseData;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.Callback;
5 |
6 | public interface HomeOfficeApi {
7 |
8 | T call(Callback callback);
9 |
10 | T aboutToStart(
11 | Callback callback
12 | );
13 |
14 | T aboutToSubmit(
15 | Callback callback
16 | );
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/NotificationSender.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.CaseData;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.Callback;
5 |
6 | public interface NotificationSender {
7 |
8 | T send(
9 | Callback callback
10 | );
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/PostFeePayment.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.CaseData;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.Callback;
5 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.PostSubmitCallbackResponse;
6 |
7 | public interface PostFeePayment {
8 |
9 | PostSubmitCallbackResponse ccdSubmitted(
10 | Callback callback
11 | );
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/PostNotificationSender.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.CaseData;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.Callback;
5 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.PostSubmitCallbackResponse;
6 |
7 | public interface PostNotificationSender {
8 |
9 | PostSubmitCallbackResponse send(
10 | Callback callback
11 | );
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/Scheduler.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.infrastructure.clients.model.TimedEvent;
4 |
5 | public interface Scheduler {
6 |
7 | TimedEvent schedule(TimedEvent timedEvent);
8 |
9 | boolean deleteSchedule(String timedEventId);
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/holidaydates/CountryHolidayDates.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service.holidaydates;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import java.util.List;
5 | import lombok.EqualsAndHashCode;
6 | import lombok.ToString;
7 |
8 | @JsonIgnoreProperties(ignoreUnknown = true)
9 | @EqualsAndHashCode
10 | @ToString
11 | public class CountryHolidayDates {
12 | private List events;
13 |
14 | private CountryHolidayDates() {
15 | }
16 |
17 | public CountryHolidayDates(List events) {
18 | this.events = events;
19 | }
20 |
21 | public List getEvents() {
22 | return events;
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/holidaydates/GovUkHolidayDatesClient.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service.holidaydates;
2 |
3 | import org.springframework.cloud.openfeign.FeignClient;
4 | import org.springframework.http.MediaType;
5 | import org.springframework.web.bind.annotation.GetMapping;
6 |
7 | @FeignClient(
8 | name = "GovUkHolidayDatesClient",
9 | url = "${govUkHolidays.url}"
10 | )
11 | public interface GovUkHolidayDatesClient {
12 | @GetMapping(value = "/bank-holidays.json", produces = MediaType.APPLICATION_JSON_VALUE)
13 | UkHolidayDates getHolidayDates();
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/holidaydates/HolidayDate.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service.holidaydates;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import java.time.LocalDate;
5 | import lombok.EqualsAndHashCode;
6 | import lombok.ToString;
7 |
8 | @JsonIgnoreProperties(ignoreUnknown = true)
9 | @EqualsAndHashCode
10 | @ToString
11 | public class HolidayDate {
12 | private LocalDate date;
13 |
14 | private HolidayDate() {
15 | }
16 |
17 | public HolidayDate(LocalDate date) {
18 | this.date = date;
19 | }
20 |
21 | public LocalDate getDate() {
22 | return date;
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/service/holidaydates/UkHolidayDates.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service.holidaydates;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import lombok.ToString;
6 |
7 | @JsonIgnoreProperties(ignoreUnknown = true)
8 | @ToString
9 | public class UkHolidayDates {
10 | @JsonProperty("england-and-wales")
11 | private CountryHolidayDates englandAndWales;
12 |
13 | private UkHolidayDates() {
14 | }
15 |
16 | public UkHolidayDates(CountryHolidayDates englandAndWales) {
17 | this.englandAndWales = englandAndWales;
18 | }
19 |
20 | public CountryHolidayDates getEnglandAndWales() {
21 | return englandAndWales;
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/SystemDateProvider.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure;
2 |
3 | import java.time.LocalDate;
4 | import java.time.LocalDateTime;
5 | import org.springframework.stereotype.Service;
6 | import uk.gov.hmcts.reform.iacaseapi.domain.DateProvider;
7 |
8 | @Service
9 | public class SystemDateProvider implements DateProvider {
10 |
11 | public LocalDate now() {
12 | return LocalDate.now();
13 | }
14 |
15 | public LocalDateTime nowWithTime() {
16 | return LocalDateTime.now();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/clients/AsylumCaseServiceResponseException.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.clients;
2 |
3 | public class AsylumCaseServiceResponseException extends RuntimeException {
4 |
5 | public AsylumCaseServiceResponseException(
6 | String message,
7 | Throwable cause
8 | ) {
9 | super(message, cause);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/clients/CcdDataIntegrationException.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.clients;
2 |
3 | public class CcdDataIntegrationException extends RuntimeException {
4 |
5 | public CcdDataIntegrationException(String message, Throwable cause) {
6 | super(message, cause);
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/clients/ReferenceDataIntegrationException.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.clients;
2 |
3 | public class ReferenceDataIntegrationException extends RuntimeException {
4 |
5 | public ReferenceDataIntegrationException(String message, Throwable cause) {
6 | super(message, cause);
7 | }
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/clients/model/TimedEvent.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.clients.model;
2 |
3 | import java.time.ZonedDateTime;
4 | import lombok.AllArgsConstructor;
5 | import lombok.Getter;
6 | import lombok.NoArgsConstructor;
7 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.Event;
8 |
9 | @NoArgsConstructor
10 | @AllArgsConstructor
11 | @Getter
12 | public class TimedEvent {
13 |
14 | private String id;
15 | private Event event;
16 | private ZonedDateTime scheduledDateTime;
17 | private String jurisdiction;
18 | private String caseType;
19 | private long caseId;
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/clients/model/ccd/Organisation.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.clients.model.ccd;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 | import lombok.AllArgsConstructor;
5 | import lombok.Builder;
6 | import lombok.Data;
7 | import lombok.extern.jackson.Jacksonized;
8 |
9 | @Data
10 | @Builder
11 | @Jacksonized
12 | @AllArgsConstructor
13 | public class Organisation {
14 |
15 | @JsonProperty("OrganisationID")
16 | private String organisationID;
17 |
18 | @JsonProperty("OrganisationName")
19 | private String organisationName;
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/clients/model/ccd/OrganisationPolicy.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.clients.model.ccd;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import lombok.AllArgsConstructor;
6 | import lombok.Builder;
7 | import lombok.Data;
8 | import lombok.extern.jackson.Jacksonized;
9 |
10 | @Data
11 | @Builder
12 | @Jacksonized
13 | @AllArgsConstructor
14 | @JsonInclude(JsonInclude.Include.NON_NULL)
15 | public class OrganisationPolicy {
16 |
17 | @JsonProperty("Organisation")
18 | private Organisation organisation;
19 |
20 | @JsonProperty("OrgPolicyReference")
21 | private String orgPolicyReference;
22 |
23 | @JsonProperty("OrgPolicyCaseAssignedRole")
24 | private String orgPolicyCaseAssignedRole;
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/clients/model/dto/hearingdetails/CategorySubValues.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.clients.model.dto.hearingdetails;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import lombok.AllArgsConstructor;
6 | import lombok.Builder;
7 | import lombok.Data;
8 | import lombok.NoArgsConstructor;
9 |
10 | @Data
11 | @Builder
12 | @AllArgsConstructor
13 | @NoArgsConstructor
14 | @JsonIgnoreProperties(ignoreUnknown = true)
15 | public class CategorySubValues {
16 |
17 | @JsonProperty("category_key")
18 | private String categoryKey;
19 |
20 | @JsonProperty("key")
21 | private String key;
22 |
23 | @JsonProperty("value_en")
24 | private String valueEn;
25 |
26 | @JsonProperty("value_cy")
27 | private String valueCy;
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/clients/model/dto/hearingdetails/CommonDataResponse.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.clients.model.dto.hearingdetails;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import java.util.List;
6 | import lombok.AllArgsConstructor;
7 | import lombok.Builder;
8 | import lombok.Data;
9 | import lombok.NoArgsConstructor;
10 |
11 |
12 | @Data
13 | @Builder
14 | @AllArgsConstructor
15 | @NoArgsConstructor
16 | @JsonIgnoreProperties(ignoreUnknown = true)
17 | public class CommonDataResponse {
18 |
19 | @JsonProperty("list_of_values")
20 | private List categoryValues;
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/clients/model/idam/Token.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.clients.model.idam;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.databind.PropertyNamingStrategies;
5 | import com.fasterxml.jackson.databind.annotation.JsonNaming;
6 | import lombok.AllArgsConstructor;
7 | import lombok.Getter;
8 | import lombok.NoArgsConstructor;
9 |
10 | @NoArgsConstructor
11 | @AllArgsConstructor
12 | @Getter
13 | @JsonIgnoreProperties(ignoreUnknown = true)
14 | @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
15 | public class Token {
16 |
17 | private String accessToken;
18 | private String scope;
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/clients/model/refdata/UserIds.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.clients.model.refdata;
2 |
3 | import java.util.List;
4 | import lombok.Value;
5 |
6 | @Value
7 | public class UserIds {
8 | List userIds;
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/config/CacheConfiguration.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.config;
2 |
3 | import org.springframework.boot.autoconfigure.cache.CacheManagerCustomizer;
4 | import org.springframework.cache.annotation.EnableCaching;
5 | import org.springframework.cache.caffeine.CaffeineCacheManager;
6 | import org.springframework.context.annotation.Bean;
7 | import org.springframework.context.annotation.Configuration;
8 |
9 | @EnableCaching
10 | @Configuration
11 | public class CacheConfiguration {
12 |
13 | @Bean
14 | public CacheManagerCustomizer cacheManagerCustomizer() {
15 | return cacheManager -> cacheManager.setAllowNullValues(false);
16 | }
17 | }
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/config/DisableHystrixFeignConfiguration.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.config;
2 |
3 | import feign.Feign;
4 | import org.springframework.context.annotation.Bean;
5 | import org.springframework.context.annotation.Scope;
6 |
7 | public class DisableHystrixFeignConfiguration {
8 |
9 | @Bean
10 | @Scope("prototype")
11 | public Feign.Builder feignBuilder() {
12 | return Feign.builder();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/config/HealthCheckConfiguration.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.config;
2 |
3 | import java.util.HashMap;
4 | import java.util.Map;
5 | import org.springframework.boot.context.properties.ConfigurationProperties;
6 | import org.springframework.boot.context.properties.EnableConfigurationProperties;
7 | import org.springframework.stereotype.Component;
8 |
9 | @Component
10 | @EnableConfigurationProperties
11 | @ConfigurationProperties(prefix = "health")
12 | public class HealthCheckConfiguration {
13 |
14 | private Map> services = new HashMap<>();
15 |
16 | public Map> getServices() {
17 | return services;
18 | }
19 |
20 | public void setServices(Map> services) {
21 | this.services = services;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/eventvalidation/EventValidChecker.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.eventvalidation;
2 |
3 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.CaseData;
4 | import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback.Callback;
5 |
6 | public interface EventValidChecker {
7 | EventValid check(Callback callback);
8 | }
9 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/security/AccessTokenProvider.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.security;
2 |
3 | import java.util.Optional;
4 |
5 | public interface AccessTokenProvider {
6 |
7 | String getAccessToken();
8 |
9 | Optional tryGetAccessToken();
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/security/AuthorizedRolesProvider.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.security;
2 |
3 | import java.util.Set;
4 |
5 | public interface AuthorizedRolesProvider {
6 |
7 | Set getRoles();
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/security/idam/IdamAuthorizor.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/security/idam/IdamAuthorizor.java
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/security/idam/IdentityManagerResponseException.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.security.idam;
2 |
3 | public class IdentityManagerResponseException extends RuntimeException {
4 |
5 | public IdentityManagerResponseException(
6 | String message,
7 | Throwable cause) {
8 |
9 | super(message, cause);
10 |
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/serialization/Deserializer.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.serialization;
2 |
3 | public interface Deserializer {
4 |
5 | T deserialize(String source);
6 | }
7 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/serialization/Serializer.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.serialization;
2 |
3 | public interface Serializer {
4 |
5 | String serialize(T data);
6 | }
7 |
--------------------------------------------------------------------------------
/src/main/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/serialization/StdSerializer.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.serialization;
2 |
3 | import com.fasterxml.jackson.core.JsonProcessingException;
4 | import com.fasterxml.jackson.databind.ObjectMapper;
5 | import org.springframework.stereotype.Component;
6 |
7 | @Component
8 | public class StdSerializer implements Serializer {
9 |
10 | private final ObjectMapper mapper;
11 |
12 | public StdSerializer(
13 | ObjectMapper mapper
14 | ) {
15 | this.mapper = mapper;
16 | }
17 |
18 | public String serialize(
19 | T data
20 | ) {
21 | try {
22 |
23 | return mapper.writeValueAsString(data);
24 |
25 | } catch (JsonProcessingException e) {
26 | throw new IllegalArgumentException("Could not serialize data", e);
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/resources/application-local.yaml:
--------------------------------------------------------------------------------
1 | logging.level:
2 | root: info
3 | org.springframework.web: debug
4 | uk.gov.hmcts: debug
5 |
6 | idam:
7 | ia_system_user:
8 | scope: "openid profile authorities"
9 |
--------------------------------------------------------------------------------
/src/main/resources/application-wa-local.yaml:
--------------------------------------------------------------------------------
1 | logging.level:
2 | root: info
3 | org.springframework.web: debug
4 | uk.gov.hmcts: debug
5 |
6 | ref-data-case-worker-api.url: http://wiremock
7 | prof.ref.data.url: http://wiremock
8 | prof.ref.data.path.org.users: /refdata/external/v1/organisations/users
9 | prof.ref.data.path.org.organisation: /refdata/external/v1/organisations
10 |
11 | idam:
12 | ia_system_user:
13 | scope: "openid profile authorities"
14 |
15 | launchDarkly:
16 | sdkKey: ${IA_LAUNCH_DARKLY_SDK_KEY:sdk-key}
17 |
--------------------------------------------------------------------------------
/src/main/resources/config.properties:
--------------------------------------------------------------------------------
1 | # this empty file removes a false-alarm WARN log entry during application startup
2 | # see: https://github.com/Netflix/Hystrix/issues/275
--------------------------------------------------------------------------------
/src/main/resources/db/migration/V1.0.1__init_tables.sql:
--------------------------------------------------------------------------------
1 | --
2 | CREATE SCHEMA IF NOT EXISTS ia_case_api;
3 | --
4 | CREATE TABLE IF NOT EXISTS ia_case_api.appeal_reference_numbers (
5 | case_id INT NOT NULL,
6 | type varchar(30),
7 | year INT NOT NULL,
8 | sequence INT,
9 | CONSTRAINT unique_case_id UNIQUE (case_id),
10 | CONSTRAINT unique_appeal_reference_number UNIQUE (type, year, sequence)
11 | );
12 | --
--------------------------------------------------------------------------------
/src/main/resources/db/migration/V1.0.2__case_id_bigint.sql:
--------------------------------------------------------------------------------
1 | --
2 | ALTER TABLE ia_case_api.appeal_reference_numbers ALTER COLUMN case_id TYPE BIGINT;
3 | --
--------------------------------------------------------------------------------
/src/main/resources/db/migration/V1.0.3__inital_sequence.sql:
--------------------------------------------------------------------------------
1 | --
2 | -- these rows provide an offset for the first numbers to use after deployment
3 | --
4 | INSERT INTO ia_case_api.appeal_reference_numbers (
5 | case_id,
6 | type,
7 | year,
8 | sequence
9 | ) VALUES (
10 | -1,
11 | 'PA',
12 | 2019,
13 | 50019
14 | );
15 | --
16 | INSERT INTO ia_case_api.appeal_reference_numbers (
17 | case_id,
18 | type,
19 | year,
20 | sequence
21 | ) VALUES (
22 | -2,
23 | 'RP',
24 | 2019,
25 | 50019
26 | );
27 | --
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/CustodialSentenceDateTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import static org.assertj.core.api.Assertions.assertThat;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | class CustodialSentenceDateTest {
8 |
9 | private final String custodialDate = "2022-11-09";
10 |
11 | private CustodialSentenceDate custodialSentenceDate;
12 |
13 | @Test
14 | void should_hold_onto_values() {
15 | custodialSentenceDate = new CustodialSentenceDate(custodialDate);
16 | assertThat(custodialSentenceDate.getCustodialDate()).isEqualTo(custodialDate);
17 | }
18 |
19 | }
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/FeeTribunalActionTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | class FeeTribunalActionTest {
8 |
9 | @Test
10 | void has_correct_values() {
11 | assertEquals("refund", FeeTribunalAction.REFUND.toString());
12 | assertEquals("additionalPayment", FeeTribunalAction.ADDITIONAL_PAYMENT.toString());
13 | assertEquals("noAction", FeeTribunalAction.NO_ACTION.toString());
14 | }
15 |
16 | @Test
17 | void if_this_test_fails_it_is_because_it_needs_updating_with_your_changes() {
18 | assertEquals(3, FeeTribunalAction.values().length);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/FeeUpdateReasonTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import static junit.framework.TestCase.assertEquals;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | class FeeUpdateReasonTest {
8 |
9 | @Test
10 | void has_correct_values() {
11 | assertEquals("decisionTypeChanged", FeeUpdateReason.DECISION_TYPE_CHANGED.toString());
12 | assertEquals("appealNotValid", FeeUpdateReason.APPEAL_NOT_VALID.toString());
13 | assertEquals("feeRemissionChanged", FeeUpdateReason.FEE_REMISSION_CHANGED.toString());
14 | assertEquals("appealWithdrawn", FeeUpdateReason.APPEAL_WITHDRAWN.toString());
15 | }
16 |
17 | @Test
18 | void if_this_test_fails_it_is_because_it_needs_updating_with_your_changes() {
19 | assertEquals(4, FeeUpdateReason.values().length);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/InterpreterDetailsTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import org.junit.jupiter.api.Test;
4 |
5 | import static org.junit.jupiter.api.Assertions.assertEquals;
6 |
7 | public class InterpreterDetailsTest {
8 |
9 | @Test
10 | void test_buildInterpreterFullName() {
11 | String givenName = "Tester";
12 | String familyName = "McTesting";
13 | InterpreterDetails interpreterDetails = new InterpreterDetails("id1", "bookingRef1",
14 | givenName, familyName, "0771222222", "test1@email.com", "");
15 |
16 | assertEquals(interpreterDetails.buildInterpreterFullName(), givenName + " " + familyName);
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/OrganisationOnDecisionLetterTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | class OrganisationOnDecisionLetterTest {
8 |
9 | @Test
10 | void has_correct_values() {
11 | assertEquals("localAuthority", OrganisationOnDecisionLetter.LOCAL_AUTHORITY.toString());
12 | assertEquals("nationalAgeAssessmentBoard", OrganisationOnDecisionLetter.NATIONAL_AGE_ASSESSMENT_BOARD.toString());
13 | assertEquals("hscTrust", OrganisationOnDecisionLetter.HSC_TRUST.toString());
14 | }
15 |
16 | @Test
17 | void if_this_test_fails_it_is_because_it_needs_updating_with_your_changes() {
18 | assertEquals(3, OrganisationOnDecisionLetter.values().length);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/OutOfTimeDecisionTypeTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import static org.junit.jupiter.api.Assertions.*;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | public class OutOfTimeDecisionTypeTest {
8 |
9 | @Test
10 | void has_correct_values() {
11 |
12 | assertEquals("inTime", OutOfTimeDecisionType.IN_TIME.toString());
13 | assertEquals("approved", OutOfTimeDecisionType.APPROVED.toString());
14 | assertEquals("rejected", OutOfTimeDecisionType.REJECTED.toString());
15 | }
16 |
17 | @Test
18 | void if_this_test_fails_it_is_because_it_needs_updating_with_your_changes() {
19 |
20 | assertEquals(3, OutOfTimeDecisionType.values().length);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/PartiesTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | class PartiesTest {
8 |
9 | @Test
10 | void has_correct_values() {
11 | assertEquals("legalRepresentative", Parties.LEGAL_REPRESENTATIVE.toString());
12 | assertEquals("respondent", Parties.RESPONDENT.toString());
13 | assertEquals("both", Parties.BOTH.toString());
14 | assertEquals("appellant", Parties.APPELLANT.toString());
15 | assertEquals("appellantAndRespondent", Parties.APPELLANT_AND_RESPONDENT.toString());
16 | }
17 |
18 | @Test
19 | void if_this_test_fails_it_is_because_it_needs_updating_with_your_changes() {
20 | assertEquals(5, Parties.values().length);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/RemissionTypeTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 |
4 | import static org.junit.jupiter.api.Assertions.assertEquals;
5 |
6 | import org.junit.jupiter.api.Test;
7 |
8 |
9 | class RemissionTypeTest {
10 |
11 | @Test
12 | void has_correct_values() {
13 | assertEquals("noRemission", RemissionType.NO_REMISSION.toString());
14 | assertEquals("hoWaiverRemission", RemissionType.HO_WAIVER_REMISSION.toString());
15 | assertEquals("helpWithFees", RemissionType.HELP_WITH_FEES.toString());
16 | assertEquals("exceptionalCircumstancesRemission", RemissionType.EXCEPTIONAL_CIRCUMSTANCES_REMISSION.toString());
17 | }
18 |
19 | @Test
20 | void if_this_test_fails_it_is_because_it_needs_updating_with_your_changes() {
21 | assertEquals(4, RemissionType.values().length);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/UpdatedTribunalRulesTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities;
2 |
3 | import org.junit.jupiter.api.Test;
4 |
5 | import static org.junit.jupiter.api.Assertions.assertEquals;
6 |
7 | class UpdatedTribunalRulesTest {
8 |
9 | @Test
10 | void has_correct_values() {
11 | assertEquals("underRule31", UpdateTribunalRules.UNDER_RULE_31.toString());
12 | assertEquals("underRule32", UpdateTribunalRules.UNDER_RULE_32.toString());
13 | }
14 |
15 | @Test
16 | void if_this_test_fails_it_is_because_it_needs_updating_with_your_changes() {
17 | assertEquals(2, UpdateTribunalRules.values().length);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/CheckValuesTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 |
5 | import java.util.ArrayList;
6 | import java.util.List;
7 | import org.junit.jupiter.api.Test;
8 |
9 | class CheckValuesTest {
10 |
11 | private final List values = new ArrayList<>();
12 |
13 | private CheckValues checkValues = new CheckValues<>(values);
14 |
15 | @Test
16 | void should_hold_onto_values() {
17 |
18 | assertEquals(values, checkValues.getValues());
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/HoursAndMinutesTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 | import static org.junit.jupiter.api.Assertions.assertNull;
5 |
6 | import org.junit.jupiter.api.Test;
7 |
8 | class HoursAndMinutesTest {
9 |
10 | @Test
11 | void should_create_hours_and_minutes() {
12 |
13 | HoursAndMinutes hoursAndMinutes = new HoursAndMinutes();
14 |
15 | assertNull(hoursAndMinutes.getHours());
16 | assertNull(hoursAndMinutes.getMinutes());
17 |
18 | hoursAndMinutes = new HoursAndMinutes("5", "30");
19 |
20 | assertEquals("5", hoursAndMinutes.getHours());
21 | assertEquals("30", hoursAndMinutes.getMinutes());
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/NationalityFieldValueTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 |
5 | import org.junit.jupiter.api.Test;
6 | import org.junit.jupiter.api.extension.ExtendWith;
7 | import org.mockito.junit.jupiter.MockitoExtension;
8 |
9 |
10 | @ExtendWith(MockitoExtension.class)
11 | @SuppressWarnings("unchecked")
12 | class NationalityFieldValueTest {
13 |
14 | private NationalityFieldValue nationalityFieldValue;
15 |
16 | @Test
17 | void has_correct_values() {
18 |
19 | nationalityFieldValue = new NationalityFieldValue("ZZ");
20 | assertEquals("ZZ", nationalityFieldValue.getCode());
21 | }
22 |
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/callback/DispatchPriorityTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | class DispatchPriorityTest {
8 |
9 | @Test
10 | void has_correct_case_event_ids() {
11 | assertEquals("earliest", DispatchPriority.EARLIEST.toString());
12 | assertEquals("early", DispatchPriority.EARLY.toString());
13 | assertEquals("late", DispatchPriority.LATE.toString());
14 | assertEquals("latest", DispatchPriority.LATEST.toString());
15 | assertEquals("last", DispatchPriority.LAST.toString());
16 | }
17 |
18 | @Test
19 | void if_this_test_fails_it_is_because_it_needs_updating_with_your_changes() {
20 | assertEquals(5, DispatchPriority.values().length);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/callback/PreSubmitCallbackStageTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.callback;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | class PreSubmitCallbackStageTest {
8 |
9 | @Test
10 | void has_correct_case_event_ids() {
11 | assertEquals("aboutToStart", PreSubmitCallbackStage.ABOUT_TO_START.toString());
12 | assertEquals("aboutToSubmit", PreSubmitCallbackStage.ABOUT_TO_SUBMIT.toString());
13 | assertEquals("midEvent", PreSubmitCallbackStage.MID_EVENT.toString());
14 | }
15 |
16 | @Test
17 | void if_this_test_fails_it_is_because_it_needs_updating_with_your_changes() {
18 | assertEquals(3, PreSubmitCallbackStage.values().length);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/field/IdValueTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | class IdValueTest {
8 |
9 | private final String id = "1";
10 | private final Integer value = 1234;
11 |
12 | private IdValue addressUk = new IdValue<>(id, value);
13 |
14 | @Test
15 | void should_hold_onto_values() {
16 | assertEquals(id, addressUk.getId());
17 | assertEquals(value, addressUk.getValue());
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/field/PaymentStatusTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | class PaymentStatusTest {
8 |
9 | @Test
10 | void has_correct_values() {
11 | assertEquals("Paid", PaymentStatus.PAID.toString());
12 | assertEquals("Failed", PaymentStatus.FAILED.toString());
13 | assertEquals("Payment pending", PaymentStatus.PAYMENT_PENDING.toString());
14 | assertEquals("Timeout", PaymentStatus.TIMEOUT.toString());
15 | assertEquals("Not paid", PaymentStatus.NOT_PAID.toString());
16 | }
17 |
18 | @Test
19 | void if_this_test_fails_it_is_because_it_needs_updating_with_your_changes() {
20 | assertEquals(5, PaymentStatus.values().length);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/ccd/field/YesOrNoTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | class YesOrNoTest {
8 |
9 | @Test
10 | void has_correct_values() {
11 | assertEquals("No", YesOrNo.NO.toString());
12 | assertEquals("Yes", YesOrNo.YES.toString());
13 | }
14 |
15 | @Test
16 | void if_this_test_fails_it_is_because_it_needs_updating_with_your_changes() {
17 | assertEquals(2, YesOrNo.values().length);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/homeoffice/CodeWithDescriptionTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.homeoffice;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 |
5 | import org.junit.jupiter.api.Test;
6 | import org.junit.jupiter.api.extension.ExtendWith;
7 | import org.mockito.junit.jupiter.MockitoExtension;
8 |
9 |
10 | @ExtendWith(MockitoExtension.class)
11 | @SuppressWarnings("unchecked")
12 | class CodeWithDescriptionTest {
13 |
14 | private CodeWithDescription codeWithDescription;
15 |
16 | @Test
17 | void has_correct_values() {
18 |
19 | codeWithDescription = new CodeWithDescription("HMCTS", "HM Courts and Tribunal Service");
20 | assertEquals("HMCTS", codeWithDescription.getCode());
21 | assertEquals("HM Courts and Tribunal Service", codeWithDescription.getDescription());
22 | }
23 |
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/homeoffice/RejectionReasonTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.homeoffice;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertEquals;
4 | import static org.junit.jupiter.api.Assertions.assertNotNull;
5 |
6 | import org.junit.jupiter.api.Test;
7 |
8 | class RejectionReasonTest {
9 |
10 | private RejectionReason rejectionReason;
11 |
12 | @Test
13 | void has_correct_values_after_setting() {
14 | rejectionReason = new RejectionReason("some-reason");
15 | assertNotNull(rejectionReason);
16 | assertEquals("some-reason", rejectionReason.getReason());
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/roleassignment/RoleNameTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.roleassignment;
2 |
3 | import static org.junit.jupiter.api.Assertions.*;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | class RoleNameTest {
8 |
9 | @Test
10 | void has_correct_values() {
11 | assertEquals(RoleName.TRIBUNAL_CASEWORKER.toString(), RoleName.TRIBUNAL_CASEWORKER.getValue());
12 | assertEquals(RoleName.LEGAL_REPRESENTATIVE.toString(), RoleName.LEGAL_REPRESENTATIVE.getValue());
13 | assertEquals(RoleName.SENIOR_TRIBUNAL_CASEWORKER.toString(), RoleName.SENIOR_TRIBUNAL_CASEWORKER.getValue());
14 |
15 | assertEquals("tribunal-caseworker", RoleName.TRIBUNAL_CASEWORKER.toString());
16 | assertEquals("senior-tribunal-caseworker", RoleName.SENIOR_TRIBUNAL_CASEWORKER.toString());
17 |
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/entities/roleassignment/RoleRequestTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.entities.roleassignment;
2 |
3 | import static org.junit.jupiter.api.Assertions.*;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | class RoleRequestTest {
8 |
9 | @Test
10 | void has_correct_values() {
11 |
12 | RoleRequest roleRequest = new RoleRequest(
13 | "assignId", "process", "ref", true
14 | );
15 |
16 |
17 | assertEquals("RoleRequest(assignerId=assignId, process=process, reference=ref, replaceExisting=true)", roleRequest.toString());
18 | assertEquals("assignId", roleRequest.getAssignerId());
19 | assertEquals("process", roleRequest.getProcess());
20 | assertEquals("ref", roleRequest.getReference());
21 | assertTrue(roleRequest.isReplaceExisting());
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/handlers/InterpreterLanguageRefDataTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.handlers;
2 |
3 | import org.junit.jupiter.api.extension.ExtendWith;
4 | import org.mockito.junit.jupiter.MockitoExtension;
5 |
6 | @ExtendWith(MockitoExtension.class)
7 | public class InterpreterLanguageRefDataTest {
8 |
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/handlers/presubmit/FeePaymentDisplayProviderTest.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hmcts/ia-case-api/4eb3c8a0ccd851e59fe24099785ab22e63e2733b/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/handlers/presubmit/FeePaymentDisplayProviderTest.java
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/service/HearingPartyIdGeneratorTest.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.domain.service;
2 |
3 | import static org.junit.jupiter.api.Assertions.assertTrue;
4 |
5 | import java.util.regex.Pattern;
6 | import org.junit.jupiter.api.Test;
7 | import org.junit.jupiter.api.extension.ExtendWith;
8 | import org.mockito.junit.jupiter.MockitoExtension;
9 |
10 | @ExtendWith(MockitoExtension.class)
11 | class HearingPartyIdGeneratorTest {
12 |
13 | @Test
14 | void should_generate_valid_uuid_as_party_id() {
15 |
16 | Pattern partyIdRegexPattern = Pattern.compile(
17 | "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$");
18 |
19 | assertTrue(partyIdRegexPattern.matcher(HearingPartyIdGenerator.generate()).matches());
20 | }
21 | }
--------------------------------------------------------------------------------
/src/test/java/uk/gov/hmcts/reform/iacaseapi/infrastructure/util/LoggerUtil.java:
--------------------------------------------------------------------------------
1 | package uk.gov.hmcts.reform.iacaseapi.infrastructure.util;
2 |
3 | import ch.qos.logback.classic.Logger;
4 | import ch.qos.logback.classic.spi.ILoggingEvent;
5 | import ch.qos.logback.core.read.ListAppender;
6 | import org.slf4j.LoggerFactory;
7 |
8 | public final class LoggerUtil {
9 |
10 | private LoggerUtil() {
11 | }
12 |
13 | public static ListAppender getListAppenderForClass(Class loggerClass) {
14 |
15 | Logger logger = (Logger) LoggerFactory.getLogger(loggerClass);
16 |
17 | ListAppender loggingEventListAppender = new ListAppender<>();
18 |
19 | loggingEventListAppender.start();
20 |
21 | logger.addAppender(loggingEventListAppender);
22 |
23 | return loggingEventListAppender;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/test/resources/logback-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/test/resources/readJsonEmptyList.json:
--------------------------------------------------------------------------------
1 | {
2 | "key": []
3 | }
--------------------------------------------------------------------------------
/src/test/resources/readJsonList.json:
--------------------------------------------------------------------------------
1 | {
2 | "key": [
3 | "1234",
4 | "5678",
5 | "9012"
6 | ]
7 | }
--------------------------------------------------------------------------------
/src/test/resources/readJsonNonArray.json:
--------------------------------------------------------------------------------
1 | {
2 | "key": "invalid"
3 | }
--------------------------------------------------------------------------------
/src/test/resources/retriggerWaTasksCaseList.json:
--------------------------------------------------------------------------------
1 | {
2 | "caseIdList": [
3 | "5260728023204485",
4 | "7829484608979593",
5 | "3007004947258233",
6 | "4719620009252072",
7 | "6797092066725243",
8 | "9301281768878771",
9 | "8509676174519453",
10 | "1682542357170697",
11 | "3673342967892569",
12 | "1677132005196104"
13 | ]
14 | }
--------------------------------------------------------------------------------
/src/test/resources/retriggerWaTasksEmptyCaseList.json:
--------------------------------------------------------------------------------
1 | {
2 | "caseIdList": []
3 | }
--------------------------------------------------------------------------------
/src/test/resources/testFile.txt:
--------------------------------------------------------------------------------
1 | Test file for ResourceLoader.java
--------------------------------------------------------------------------------
/web.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------