index.js 844 B

1234567891011121314151617181920212223242526272829303132333435
  1. 'use strict';
  2. const { parseXML } = require('../parser');
  3. const {
  4. parse: parseCreatePartyRegistration,
  5. } = require('./create-party-registration');
  6. const { parse: parseQueryRegistration } = require('./query-registration');
  7. const {
  8. parse: parseCancelPartyRegistration,
  9. } = require('./cancel-party-registration');
  10. async function parse(input) {
  11. const json = await parseXML(input);
  12. const o = json['oadrPayload']['$$']['oadrSignedObject'][0]['$$'];
  13. if (o['oadrCreatePartyRegistration']) {
  14. return await parseCreatePartyRegistration(input);
  15. }
  16. if (o['oadrCancelPartyRegistration']) {
  17. return await parseCancelPartyRegistration(input);
  18. }
  19. if (o['oadrQueryRegistration']) {
  20. return await parseQueryRegistration(input);
  21. }
  22. throw new Error(`Unexpected payload type: ${Object.keys(o)}`);
  23. }
  24. module.exports = {
  25. parse,
  26. };