Skip to content

Commit

Permalink
CCMSPUI-379 Implement GetClientDetails (#151)
Browse files Browse the repository at this point in the history
* CCMSPUI-529 Made provider-id mandatory for notification search
* CCMSPUI-529 Made provider case reference and surname case-insensitive for notification search
* CCMSPUI-529 Modified Notification and Refactored into NotificationInfo
* CCMSPUI-529 Fixes to tests
* CCMSPUI-529 Fixes to tests and removed XML mappings
* CCMSPUI-529 Fixed NotificationSearchRepository filter SQL method
* CCMSPUI-529 Removed dead code
* CCMSPUI-529 Refactored NotificationSearchRepositoryIntegrationTest to use Oracle-Free instead of embedded H2 DB
* CCMSPUI-529 Added BooleanStringConverterTest
* CCMSPUI-530 Updated open-api-specification to include new get notification endpoint and added Notification schema for holding more data
* CCMSPUI-530 Added new entities for notes, documents, attachments and actions
* CCMSPUI-530 Started on NotificationRepositoryIntegrationTest
* CCMSPUI-530 Completed NotificationRepositoryIntegrationTest
* CCMSPUI-530 Fixes to integration tests
* CCMSPUI-530 Created various mappers for mapping document entity for presentation layer
* CCMSPUI-530 Finished mapper tests
* CCMSPUI-530 Finished controller and service tests
* CCMSPUI-530 Completed JavaDocs
* CCMSPUI-530 Added title to DocumentMapper when mapping title
* CCMSPUI-530 Added provider id to request params to secure get notification endpoint
* CCMSPUI-530 Added evidence allowed to notification info response
* CCMSPUI-530 Moved evidence allowed to correct schema in open-api-specification.yml
* CCMSPUI-530 Update to method names
* CCMSPUI-530 updated Notification Note to return time along with date
* CCMSPUI-530 fixed NotificationRepositoryIntegrationTest
* CCMSPUI-379 Added to open-api-specification.yml
* CCMSPUI-379 Added ClientDetail. Excluded some columns pending investigation.
* CCMSPUI-379 Started on ClientDetailRepositoryIntegrationTest
* CCMSPUI-379 Adding missing sort statement to NotificationSearchRepository
* CCMSPUI-379 Implemented filters for NotificationSearchRepository
* CCMSPUI-379 Client search implemented. Address LOB  still needs adding and checkstyle still needs rectifying.
* CCMSPUI-379 Updated ClientDetailRepository to filter by surname at birth instead of current surname to replicate SOA API
* CCMSPUI-379 Fixed issues with inputs which contain apostrophes
* CCMSPUI-379 Fixed checkstyle issues
* CCMSPUI-379 Fixed broken tests in ClientsControllerTest and ClientDetailsMapperImplTest
* CCMSPUI-379 Fixed broken tests in ClientsControllerTest and ClientDetailsMapperImplTest
* CCMSPUI-379 Fixed ClientDetailRepository and checkstyle issue
* CCMSPUI-379 Updated BaseEntityManagerRepository to include abstracted "addCondition" methods to clean up inherited classes
* CCMSPUI-379 Updates to BaseEntityManagerRepository to abstract away the search functionality and utilize the JPA Specification class
* CCMSPUI-379 Made request params in client search mandatory
* CCMSPUI-379 Refactored BaseEntityManagerRepository to simplify CriteriaBuilder implementation
* CCMSPUI-379: Update count query to be more efficient
* CCMSPUI-379: Updated BaseEntityManagerRepository to use completable features
* CCMSPUI-379: Added helper method to count entities by their ID name
* CCMSPUI-379: Abstracted away getEntityClazz method, enabled virtual threads, and added completable futures on BaseEntityManagerRepository
* CCMSPUI-379: Fixed checkstyle issues

Signed-off-by: Jamie Briggs <jamie.briggs@digital.justice.gov.uk>
  • Loading branch information
JamieBriggs-MoJ authored Feb 25, 2025
1 parent 62d9cbe commit 634ae4b
Show file tree
Hide file tree
Showing 34 changed files with 2,107 additions and 978 deletions.
94 changes: 94 additions & 0 deletions data-api/open-api-specification.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1068,6 +1068,70 @@ paths:
description: 'Forbidden'
'500':
description: 'Internal server error'
/clients:
get:
tags:
- clients
summary: 'Get Clients'
operationId: 'getClients'
x-spring-paginated: true
parameters:
- name: 'first-name'
in: 'query'
required: true
schema:
type: 'string'
example: 'john'
- name: 'surname'
in: 'query'
required: true
schema:
type: 'string'
example: 'smith'
- name: 'date-of-birth'
in: 'query'
required: true
schema:
type: 'string'
example: "2017-01-01"
format: date
- name: 'gender'
in: 'query'
schema:
type: 'string'
example: 'Male'
- name: 'client-reference-number'
in: 'query'
schema:
type: 'string'
example: '1234567890'
- name: 'home-office-reference'
in: 'query'
schema:
type: 'string'
example: '1234567890'
- name: 'national-insurance-number'
in: 'query'
schema:
type: 'string'
example: 'AB123456C'
responses:
'200':
description: 'Successful operation'
content:
application/json:
schema:
$ref: "#/components/schemas/clientDetails"
'400':
description: 'Bad request'
'401':
description: 'Unauthorized'
'403':
description: 'Forbidden'
'404':
description: 'Not found'
'500':
description: 'Internal server error'
/clients/status/{transaction-request-id}:
get:
tags:
Expand Down Expand Up @@ -1546,6 +1610,36 @@ components:
type: 'string'
default_code:
type: 'string'
clientDetails:
allOf:
- $ref: "#/components/schemas/page"
type: 'object'
properties:
content:
type: 'array'
default: [ ]
items:
$ref: "#/components/schemas/clientSummary"
clientSummary:
allOf:
- $ref: '#/components/schemas/baseClient'
type: 'object'
properties:
surname_at_birth:
type: 'string'
full_name:
type: 'string'
date_of_birth:
type: 'string'
format: 'date'
gender:
type: 'string'
postal_code:
type: 'string'
home_office_reference:
type: 'string'
national_insurance_number:
type: 'string'
baseClient:
type: 'object'
properties:
Expand Down
Loading

0 comments on commit 634ae4b

Please sign in to comment.