register-party.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. 'use strict';
  2. const logger = require('../../logger');
  3. const { parse } = require('../../xml/create-party-registration');
  4. const { serialize } = require('../../xml/created-party-registration');
  5. const {
  6. registerParty,
  7. } = require('../../processes/registration');
  8. exports.postController = async (req, res) => {
  9. const xmlRequest = req.body;
  10. let parsedRequest;
  11. let xmlResponse;
  12. try {
  13. parsedRequest = await parse(xmlRequest);
  14. const response = await registerParty(parsedRequest, req.clientCertificateCn, req.clientCertificateFingerprint);
  15. xmlResponse = serialize(response);
  16. } catch (e) {
  17. logger.warn('Error occurred processing', parsedRequest, e);
  18. const responseRequestId = (parsedRequest != null) ? parsedRequest.requestId : '';
  19. xmlResponse = serialize({
  20. responseCode: e.responseCode || '454',
  21. responseDescription: e.message || 'Unknown error',
  22. responseRequestId: responseRequestId || ''
  23. });
  24. }
  25. res.set('Content-Type', 'application/xml');
  26. res.send(xmlResponse);
  27. res.end();
  28. };
  29. exports.postErrorHandler = (error, next) => {
  30. logger.warn('Error in EiRegisterParty', { error });
  31. next(error);
  32. };