UNPKG

ncc-prototype-email-alerts-sub

Version:

Northumberland Council Front End Email Alerts Subscription Prototype

44 lines (39 loc) 1.51 kB
import axios, { AxiosResponse, AxiosError } from 'axios'; import { AddressResponse } from '../types/addressResponse'; import { Address, CustomError } from '../types/custom'; import getConfig from './config'; import logger from './logger'; const config = getConfig(); export const checkPostCode = async (postcode: string): Promise<AddressResponse> => { const response = {} as AddressResponse; try { const result: AxiosResponse<Address[]> = await axios.get(`${config.postCodeCheckUrl}${postcode.trim().toUpperCase()}`, { auth: { username: config.webapi_username, password: config.webapi_password, } }); response.addresses = result.data.length > 0 ? result.data : [] as Address[]; return response; } catch (error) { setError(error, response) logger.error("checkPostCode catch error" + error); return response; } }; // eslint-disable-next-line @typescript-eslint/no-explicit-any export const setError = (error: any, res: AddressResponse) => { res.error = {} as CustomError; if (axios.isAxiosError(error)) { const axiosError: AxiosError = error; if (axiosError.response) { res.error.status = axiosError.response.status as number; res.error.message = axiosError.message; } else { res.error.status = 500; } } else { res.error.status = 500; res.error.message = error.message; } }