UNPKG

dmvic

Version:

A DMVIC NPM package to manage DMVIC certificate requests

30 lines (23 loc) 1.28 kB
import { ValidationError } from 'yup'; import { apiConfig } from '../config/api-configs.mjs'; import { makeAuthenticatedRequest, validateSupportedValues } from '../utils/api-helpers.mjs'; import { validatePayload } from '../utils/config-validation/request-certificate-validation.mjs'; import { yupValidationError } from '../utils/config-validation/validation-error-handler.mjs'; import { MOTOR_CLASS_OPTIONS } from '../utils/constants.mjs'; import { generateInsurancePayload } from '../utils/generate-insurance-payload.mjs'; const requestInsuranceCertificate = async (authToken, certificateRequestPayload, motorClass) => { validateSupportedValues(motorClass, Object.values(MOTOR_CLASS_OPTIONS), 'motor class'); const payloadWithMotorClass = { ...certificateRequestPayload, motorClass }; try { validatePayload(payloadWithMotorClass); } catch (error) { if (error instanceof ValidationError) { return yupValidationError(error); } throw error; } const requestBody = generateInsurancePayload(certificateRequestPayload); const endpoint = apiConfig.issuance[`type${motorClass}`]; return makeAuthenticatedRequest({ endpoint, requestPayload: requestBody, authToken }); }; export { requestInsuranceCertificate };