├── .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 | --------------------------------------------------------------------------------