| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 'use strict';
- const logger = require('../../logger');
- const { parse } = require('../../xml/register-party');
- const { serialize: serializeCreatedPartyRegistration } = require('../../xml/register-party/created-party-registration');
- const { serialize: serializeCanceledPartyRegistration } = require('../../xml/register-party/canceled-party-registration');
- const {
- cancelParty,
- query,
- registerParty,
- } = require('../../processes/registration');
- exports.postController = async (req, res) => {
- const xmlRequest = req.body;
- let parsedRequest;
- let xmlResponse;
- let serialize;
- try {
- parsedRequest = await parse(xmlRequest);
- let response;
- switch(parsedRequest._type) {
- case 'oadrCreatePartyRegistration':
- serialize = serializeCreatedPartyRegistration;
- response = await registerParty(parsedRequest, req.clientCertificateCn, req.clientCertificateFingerprint);
- break;
- case 'oadrCancelPartyRegistration':
- serialize = serializeCanceledPartyRegistration;
- response = await cancelParty(parsedRequest, req.clientCertificateCn, req.clientCertificateFingerprint);
- break;
- case 'oadrQueryRegistration':
- serialize = serializeCreatedPartyRegistration;
- response = await query(parsedRequest, req.clientCertificateCn, req.clientCertificateFingerprint);
- break;
- default:
- throw new Error(`Unknown _type: ${parsedRequest._type}`);
- }
- xmlResponse = serialize(response);
- } catch (e) {
- logger.warn('Error occurred processing', parsedRequest, e);
- const responseRequestId = (parsedRequest != null) ? parsedRequest.requestId : '';
- xmlResponse = serialize({
- responseCode: e.responseCode || '454',
- responseDescription: e.message || 'Unknown error',
- responseRequestId: responseRequestId || ''
- });
- }
- res.set('Content-Type', 'application/xml');
- res.send(xmlResponse);
- res.end();
- };
- exports.postErrorHandler = (error, next) => {
- logger.warn('Error in EiRegisterParty', { error });
- next(error);
- };
|