UNPKG

@defra-fish/sales-api-service

Version:
88 lines (85 loc) 2.61 kB
import { dueRecurringPaymentsRequestParamsSchema, dueRecurringPaymentsResponseSchema, processRPResultRequestParamsSchema, cancelRecurringPaymentRequestParamsSchema, cancelRecurringPaymentRequestQuerySchema } from '../../schema/recurring-payments.schema.js' import { getRecurringPayments, processRPResult, cancelRecurringPayment } from '../../services/recurring-payments.service.js' const SWAGGER_TAGS = ['api', 'recurring-payments'] export default [ { method: 'GET', path: '/dueRecurringPayments/{date}', options: { handler: async (request, h) => { const { date } = request.params const result = await getRecurringPayments(date) return h.response(result) }, description: 'Retrieve recurring payments due for the specified date', tags: SWAGGER_TAGS, validate: { params: dueRecurringPaymentsRequestParamsSchema }, plugins: { 'hapi-swagger': { responses: { 200: { description: 'Recurring payments due', schema: dueRecurringPaymentsResponseSchema } }, order: 1 } } } }, { method: 'GET', path: '/processRPResult/{transactionId}/{paymentId}/{createdDate}', options: { handler: async (request, h) => { const { transactionId, paymentId, createdDate } = request.params const result = await processRPResult(transactionId, paymentId, createdDate) return h.response(result) }, description: 'Generate a permission from a recurring payment record', tags: SWAGGER_TAGS, validate: { params: processRPResultRequestParamsSchema }, plugins: { 'hapi-swagger': { responses: { 200: { description: 'New permission from recurring payment record generated successfully' } }, order: 2 } } } }, { method: 'GET', path: '/cancelRecurringPayment/{id}', options: { handler: async (request, h) => { const { id } = request.params const { reason } = request.query const result = await cancelRecurringPayment(id, reason) return h.response(result) }, description: 'Cancel a recurring payment', tags: SWAGGER_TAGS, validate: { params: cancelRecurringPaymentRequestParamsSchema, query: cancelRecurringPaymentRequestQuerySchema }, plugins: { 'hapi-swagger': { responses: { 200: { description: 'Recurring payment cancelled' } }, order: 3 } } } } ]