ncc-prototype-email-alerts-sub
Version:
Northumberland Council Front End Email Alerts Subscription Prototype
31 lines (26 loc) • 1.15 kB
text/typescript
import { Request, Response, NextFunction } from 'express';
import logger from '../libs/logger';
import { postController } from '../types/controller';
import { checkPostCode } from '../libs/httpServices'
import { AddressResponse } from '../types/addressResponse';
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const postCodeController: postController = async (req: Request, res: Response, next: NextFunction) => {
try {
req.session.postCodeNotCovered = false;
const addresseResponse: AddressResponse = await checkPostCode(req.body.postcode);
if (typeof addresseResponse.error != 'undefined') {
throw addresseResponse.error;
}
req.session.addresses = addresseResponse.addresses;
//if we have address data move to next step
if (req.session.addresses.length > 0) {
next();
}
//if no data but no error, redirect to unsupported
return res.redirect('/address-not-covered');
} catch (err) {
logger.error("error occured on onPostCodeFormSubmit" + JSON.stringify(err));
next(err);
return
}
}