index.js 738 B

1234567891011121314151617181920212223242526272829
  1. 'use strict';
  2. const { parseXML } = require('../parser');
  3. const { parse: parseOadrPoll } = require('./oadr-poll');
  4. const { parse: parseOadrResponse } = require('./oadr-response');
  5. const {
  6. parse: parseOadrDistributeEvent,
  7. } = require('../event/distribute-event');
  8. async function parse(input) {
  9. const json = await parseXML(input);
  10. const o = json['oadrPayload']['$$']['oadrSignedObject'][0]['$$'];
  11. if (o['oadrPoll']) {
  12. return await parseOadrPoll(input);
  13. } else if (o['oadrResponse']) {
  14. return await parseOadrResponse(input);
  15. } else if (o['oadrDistributeEvent']) {
  16. return await parseOadrDistributeEvent(input);
  17. }
  18. throw new Error(`Unexpected payload type: ${Object.keys(o)}`);
  19. }
  20. module.exports = {
  21. parse,
  22. };