Skip to content

Commit

Permalink
Add new query based on full reference number
Browse files Browse the repository at this point in the history
https://eaflood.atlassian.net/browse/IWTF-4017

This is required for IWTF-4017 as we will need a new function within the Sales API to retrieve data about a permission based on its full reference number. See #1957 for further implementation.
  • Loading branch information
irisfaraway committed Jun 6, 2024
1 parent 2299bec commit 074069f
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { permissionForLicensee } from '../permission.queries.js'
import { permissionForLicensee, permissionForFullReferenceNumber } from '../permission.queries.js'

describe('Permission Queries', () => {
describe('permissionForLicensee', () => {
Expand All @@ -17,4 +17,20 @@ describe('Permission Queries', () => {
})
})
})

describe('permissionForFullReferenceNumber', () => {
it('builds a filter to run a query for a permission with a full reference number', async () => {
const query = permissionForFullReferenceNumber('ABC123')
expect(query.toRetrieveRequest()).toEqual({
collection: 'defra_permissions',
expand: expect.arrayContaining([
expect.objectContaining({ property: 'defra_ContactId' }),
expect.objectContaining({ property: 'defra_PermitId' }),
expect.objectContaining({ property: 'defra_defra_permission_defra_concessionproof_PermissionId' })
]),
filter: "defra_name eq 'ABC123' and statecode eq 0",
select: expect.any(Array)
})
})
})
})
11 changes: 11 additions & 0 deletions packages/dynamics-lib/src/queries/permission.queries.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,14 @@ export const permissionForLicensee = (permissionReferenceNumber, licenseeBirthDa
expand: [licensee, permit, concessionProofs]
})
}

export const permissionForFullReferenceNumber = permissionReferenceNumber => {
const { licensee, permit, concessionProofs } = Permission.definition.relationships
let filter = `${Permission.definition.mappings.referenceNumber.field} eq '${escapeODataStringValue(permissionReferenceNumber)}'`
filter += ` and ${Permission.definition.defaultFilter}`
return new PredefinedQuery({
root: Permission,
filter: filter,
expand: [licensee, permit, concessionProofs]
})
}

0 comments on commit 074069f

Please sign in to comment.