UNPKG

ih-black-lion

Version:

State handler for Arus projects

44 lines (40 loc) 1.25 kB
import xml2js from 'xml2js'; import Connector from './Connector'; import { Fault } from '../models'; import Request from '../Request'; import serialize from '../serialize'; import { toCamelCase, interceptFault } from './utils'; const URLS = { tryURL: __ACTIVITY_GUIDE_URL__, catchURL: process.env.ACTIVITY_GUIDE_URL, }; export default class ActivityGuideConnector extends Connector { constructor(requestMethod, requestParams, Model) { super(requestMethod, requestParams, Model, URLS); } get Promise() { this.checkTypes(); // Checking the types here to simplify the usage of the Connectors. return new Promise((resolve, reject) => { Request.get(this.params) .then(({ data }) => { let res; const parser = new xml2js.Parser({ ignoreAttrs: true, }); parser.parseString(data, (err, parsedRes) => { if (!err) { res = parsedRes; } else { reject(err); } }); const fault = interceptFault(res); if (fault) { reject(new Fault(serialize(res))); } else { resolve(new this.Model(serialize(res))); } }).catch(reject); }); } }