'use strict'; const { parseXML } = require('../parser'); const { parse: parseOadrPoll } = require('./oadr-poll'); const { parse: parseOadrResponse } = require('./oadr-response'); const { parse: parseOadrDistributeEvent, } = require('../event/distribute-event'); async function parse(input) { const json = await parseXML(input); const o = json['oadrPayload']['$$']['oadrSignedObject'][0]['$$']; if (o['oadrPoll']) { return await parseOadrPoll(input); } else if (o['oadrResponse']) { return await parseOadrResponse(input); } else if (o['oadrDistributeEvent']) { return await parseOadrDistributeEvent(input); } throw new Error(`Unexpected payload type: ${Object.keys(o)}`); } module.exports = { parse, };