@defra-fish/dynamics-lib
Version:
Framework to support integration with dynamics
62 lines (51 loc) • 1.82 kB
JavaScript
import { RecurringPayment } from '../entities/recurring-payment.entity.js'
import { PredefinedQuery } from './predefined-query.js'
/**
* Builds a query to retrieve active recurring payment and related entities for a given date
*
* @param date current date used for lookup
* @returns {PredefinedQuery}
*/
export const findDueRecurringPayments = date => {
const { contact, activePermission } = RecurringPayment.definition.relationships
const filters = []
filters.push(`defra_nextduedate eq '${date}'`)
filters.push('defra_cancelleddate eq null')
filters.push('_defra_nextrecurringpayment_value eq null')
filters.push(RecurringPayment.definition.defaultFilter)
return new PredefinedQuery({
root: RecurringPayment,
filter: filters.join(' and '),
expand: [contact, activePermission]
})
}
/**
* Builds a query to retrieve recurring payments by agreementId
*
* @param agreementId the agreementId assigned by GOV.UK Pay
* @returns {PredefinedQuery}
*/
export const findRecurringPaymentsByAgreementId = agreementId => {
const filters = []
filters.push(`defra_agreementid eq '${agreementId}'`)
filters.push(RecurringPayment.definition.defaultFilter)
return new PredefinedQuery({
root: RecurringPayment,
filter: filters.join(' and ')
})
}
/**
* Builds a query to retrieve recurring payments by permissionId
*
* @param permissionId the id generated by a permission
* @returns {PredefinedQuery}
*/
export const findRecurringPaymentByPermissionId = permissionId => {
const { activePermission } = RecurringPayment.definition.relationships
const filter = `_defra_activepermission_value eq ${permissionId} and ${RecurringPayment.definition.defaultFilter}`
return new PredefinedQuery({
root: RecurringPayment,
filter,
expand: [activePermission]
})
}