Skip to content

JASPER-583/578: Court List Document Bundle#495

Merged
ronaldo-macapobre merged 22 commits intomasterfrom
feature/JASPER-583
Sep 16, 2025
Merged

JASPER-583/578: Court List Document Bundle#495
ronaldo-macapobre merged 22 commits intomasterfrom
feature/JASPER-583

Conversation

@ronaldo-macapobre
Copy link
Contributor

@ronaldo-macapobre ronaldo-macapobre commented Sep 11, 2025

Pull Request for JIRA Ticket: JASPER-583 and JASPER-587

Issue ticket number and link

https://jira.justice.gov.bc.ca/browse/JASPER-578
https://jira.justice.gov.bc.ca/browse/JASPER-583

Description

  • Create a new Court List endpoint that creates a document bundle based on the selected appearance from Court List.
  • The endpoint handles retrieving of saved binders and merging of the documents.
  • Returns a list of binders and base64 string for UI to consume and display the PDF.
  • Skipped old unit tests so we can run unit tests and determine if updates broke existing unit test or new ones are not passing at all.
  • Updated GHA that runs the backend unit tests to use the correct working directory where the tests really are.

ℹ️ Marking this as ready for review since we don’t anticipate any major backend changes anymore. I’m also working on adding unit tests for the areas affected by this code change.

Type of change

  • New feature (non-breaking change which adds functionality)

How Has This Been Tested?

  • Local Testing via swagger

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

Ronaldo Macapobre added 5 commits September 10, 2025 21:00
- Create DocumentConverter to isolate the process for converting CfcDocument to CriminalDocuments
- Update Binder mappings
- Create Dtos to store request and response data for viewing document bundle
- Add props for Binder and BinderDocument
- Update BinderProcessBase to move JudicialBinder specific codes.
- Create KeyDocumentBinderProcessor
- CourtListService update where the core logic is. This includes binder initialization, generating pdf requests and merging.
- Add keyDocsBinderRefreshHours to handle the state of key document binder
… dependency

- Add missing CourtClassCd label
@ronaldo-macapobre ronaldo-macapobre self-assigned this Sep 11, 2025
@ronaldo-macapobre ronaldo-macapobre added enhancement New feature or request .NET Pull requests that update .net code labels Sep 11, 2025
- Fix other sonar cloud issues
- Update courtClassCd to parse it in the BE instead
- Ignore legacy unit tests to prevent the build to proceed when new/existing test fails.
@ronaldo-macapobre ronaldo-macapobre marked this pull request as ready for review September 12, 2025 21:39
@ronaldo-macapobre ronaldo-macapobre changed the title [DRAFT -- DO NOT REVIEW YET] JASPER-583/578: Court List Document Bundle JASPER-583/578: Court List Document Bundle Sep 12, 2025
@WadeBarnes
Copy link
Member

WadeBarnes commented Sep 15, 2025

The bundle retrieved for a court list, is that basically a list of the Judicial Binders and Key Documents Bundles/Binders for the files associated to the appearances on the court list, or is there more to it?

@ronaldo-macapobre
Copy link
Contributor Author

The bundle retrieved for a court list, is that basically a list of the Judicial Binders and Key Documents Bundles/Binders for the files associated to the appearances on the court list, or is there mor to it?

Right now, it is only processing Key Document binders and skipping any Civil appearances. But yes, the response object returns the binders associated with the selected appearances and the base64 string of the merged documents from the binders.

@WadeBarnes
Copy link
Member

The bundle retrieved for a court list, is that basically a list of the Judicial Binders and Key Documents Bundles/Binders for the files associated to the appearances on the court list, or is there mor to it?

Right now, it is only processing Key Document binders and skipping any Civil appearances. But yes, the response object returns the binders associated with the selected appearances and the base64 string of the merged documents from the binders.

In that case I would be more inclined to implement the interface on the binder API itself. It feels a bit off for the court-list to be fielding requests for binders.

The implementation for the binder endpoint would accept a list of contexts (collection of labels defining a context) and return a list of binders for each of those contexts. In this case the call would simply be a list of contexts defining the specific context for each of the appearances listed in the court list.

This brings up another thought; a context API and/or service that given an object (file, appearance, document, etc) returns the context (set of labels) for that object. This would ensure contexts are generated in a consistent manner. We also might want to consider including the context as a standard data element whenever we're passing data around, that way it's readily accessible whenever needed.

@ronaldo-macapobre
Copy link
Contributor Author

The bundle retrieved for a court list, is that basically a list of the Judicial Binders and Key Documents Bundles/Binders for the files associated to the appearances on the court list, or is there mor to it?

Right now, it is only processing Key Document binders and skipping any Civil appearances. But yes, the response object returns the binders associated with the selected appearances and the base64 string of the merged documents from the binders.

In that case I would be more inclined to implement the interface on the binder API itself. It feels a bit off for the court-list to be fielding requests for binders.

The implementation for the binder endpoint would accept a list of contexts (collection of labels defining a context) and return a list of binders for each of those contexts. In this case the call would simply be a list of contexts defining the specific context for each of the appearances listed in the court list.

This brings up another thought; a context API and/or service that given an object (file, appearance, document, etc) returns the context (set of labels) for that object. This would ensure contexts are generated in a consistent manner. We also might want to consider including the context as a standard data element whenever we're passing data around, that way it's readily accessible whenever needed.

I was able to move the core logic of initializing the binders and document mergin to the BinderService. It is now being called via the BindersController. In the interest of time, I skipped some unit tests for now until the main logic is approved.

@ronaldo-macapobre
Copy link
Contributor Author

Added more unit tests and some cleanup.

@sonarqubecloud
Copy link

@ronaldo-macapobre ronaldo-macapobre merged commit 1723cfc into master Sep 16, 2025
10 checks passed
@ronaldo-macapobre ronaldo-macapobre deleted the feature/JASPER-583 branch September 16, 2025 18:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request .NET Pull requests that update .net code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants