UNPKG

frame.soap

Version:

SOAP client library for Frame services

211 lines 12.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fast_xml_parser_1 = require("fast-xml-parser"); const electron_log_1 = __importDefault(require("electron-log")); const SoapError_1 = require("./SoapError"); const SoapRequests_1 = require("./SoapRequests"); const frame_constants_1 = require("frame.constants"); const enum_1 = require("./enum"); const frame_dao_1 = require("frame.dao"); const traceRequests_1 = __importDefault(require("./traceRequests")); const newLine = ''; // const newLine = '\n'; class FormDataRequests extends SoapRequests_1.SoapRequests { constructor(formDataUrl) { super(formDataUrl, enum_1.Soap.Version1); } async easyRequestBrands() { let xmlResult; const xmlInput = this.addXmlAction('getManufacturer', [ SoapRequests_1.SoapRequests.addXmlAttribute('sortKey', 'MANUF'), SoapRequests_1.SoapRequests.addXmlAttribute('manuExistFlg', '1'), SoapRequests_1.SoapRequests.addXmlAttribute('mo', 'DE'), ]); function assignResult(result) { return result['S:Envelope']['S:Body']['ns2:getManufacturerResponse'] .return; } try { xmlResult = await this.runRequest(xmlInput, 'http://formdataEL1.rodenstock.com/', assignResult); } catch (error) { throw new Error('FormDataRequests.easyRequestBrands(..): ' + error); } return xmlResult; } async easyRequestModels(modelKey) { const NameBRAND = SoapRequests_1.SoapRequests.addXmlAttr('Name', 'BRAND'); const ValueRPR = SoapRequests_1.SoapRequests.addXmlAttr('Value', modelKey); const ValueSN = SoapRequests_1.SoapRequests.addXmlAttr('Value' /* , 'SN' */); const Model = SoapRequests_1.SoapRequests.addXmlAttr('Name', 'MODEL'); const ImpItemMODEL = SoapRequests_1.SoapRequests.addXmlAttr('ImpItem', Model + ValueSN); const ImpItemBRAND = SoapRequests_1.SoapRequests.addXmlAttr('ImpItem', NameBRAND + ValueRPR); const ImpItemList = SoapRequests_1.SoapRequests.addXmlAttr('ImpItemList', ImpItemBRAND + ImpItemMODEL); const xmlInput = this.addXmlAction('getFrameInfoForMO', [ SoapRequests_1.SoapRequests.addXmlAttribute('xmlString', `${ImpItemList}`), SoapRequests_1.SoapRequests.addXmlAttribute('mo', 'DE'), ]); let modelArray = []; function assignResult(result) { const xmlResult = result['S:Envelope']['S:Body']['ns2:getFrameInfoForMOResponse'].return; const parser2 = new fast_xml_parser_1.XMLParser(); const jObj = parser2.parse(xmlResult); const modelArray2 = jObj.ExpItemList.ExpItem; const str = JSON.stringify(modelArray2, null); const models = JSON.parse(str); // console.log(`models: ${JSON.stringify(models, null)}`); for (let loop = 0; loop < models.length; loop += 1) { const model = models[loop]; // console.log(`model[${loop}]: ${model.FORMKEY}`); modelArray.push(model.FORMKEY); } // console.log(`modelArray: ${JSON.stringify(modelArray, null, 2)}`); return modelArray; } try { modelArray = await this.runRequest(xmlInput, `http://formdataEL1.rodenstock.com/`, assignResult); } catch (error) { throw new Error(`FormDataRequests.easyRequestModels(..): error: ${error}`); } return modelArray; } async easyRequestFormkey(formkey) { let xmlResult; let ff = new frame_dao_1.FormkeyRadii(); const xmlInput = this.addXmlAction('getFormDataByKey', [ `${SoapRequests_1.SoapRequests.addXmlAttribute('formkey', formkey)}`, `${SoapRequests_1.SoapRequests.addXmlAttribute('mo', 'DE')}`, ]); function assignResult(result) { return result['S:Envelope']['S:Body']['ns2:getFormDataByKeyResponse'] .return; } try { xmlResult = await this.runRequest(xmlInput, `http://formdataEL1.rodenstock.com/`, assignResult); } catch (error) { throw new Error(`FormDataRequests.easyRequestFormkey(..): error: ${error}`); } // console.log(`xmlResult: ${JSON.stringify(xmlResult, null)}`); ff = frame_dao_1.FormkeyRadii.FromStringArray(xmlResult); return ff; } async easyRequestDiameter(input, serverLogging = false, logging = false) { if (logging) { electron_log_1.default.debug(`FormDataRequests.easyRequestDiameter(..): input: ${JSON.stringify(input, null, 2)}`); } const orderProdukt = (inp) => SoapRequests_1.SoapRequests.addXmlAttribute('orderProdukt', inp); const mdmKz = (inp) => SoapRequests_1.SoapRequests.addXmlAttribute('mdmKz', inp); const einschleifAuftrag = (inp) => SoapRequests_1.SoapRequests.addXmlAttribute('einschleifAuftrag', inp.toString()); const sphZylAchFerne = (inp) => SoapRequests_1.SoapRequests.addXmlAttribute('sphZylAchFerne', `${newLine}${SoapRequests_1.SoapRequests.addXmlAttribute('sph', inp.sph?.toString())}` + `${newLine}${SoapRequests_1.SoapRequests.addXmlAttribute('zyl', inp.zyl?.toString())}` + `${newLine}${SoapRequests_1.SoapRequests.addXmlAttribute('ach', inp.ach?.toString())}`); const add = (inp) => SoapRequests_1.SoapRequests.addXmlAttribute('add', inp.toString()); const prismaBasis1 = (inp) => SoapRequests_1.SoapRequests.addXmlAttribute('prisma1', `${newLine}${SoapRequests_1.SoapRequests.addXmlAttribute('prisma', inp.prisma?.toString())}` + `${newLine}${SoapRequests_1.SoapRequests.addXmlAttribute('basis', inp.basis?.toString())}`); const prismaBasis2 = (inp) => SoapRequests_1.SoapRequests.addXmlAttribute('prisma2', `${newLine}${SoapRequests_1.SoapRequests.addXmlAttribute('prisma', inp.prisma?.toString())}` + `${newLine}${SoapRequests_1.SoapRequests.addXmlAttribute('basis', inp.basis?.toString())}`); const fassung = (inp) => { const radien = SoapRequests_1.SoapRequests.addXmlAttribute('radien', inp.formRadii); const sl = SoapRequests_1.SoapRequests.addXmlAttribute('sl', inp.sl?.toString()); const sh = SoapRequests_1.SoapRequests.addXmlAttribute('sh', inp.sh?.toString()); const bw = SoapRequests_1.SoapRequests.addXmlAttribute('bw', inp.bw?.toString()); const vn = SoapRequests_1.SoapRequests.addXmlAttribute('vn', inp.vn?.toString()); const fsw = SoapRequests_1.SoapRequests.addXmlAttribute('fsw', inp.fsw?.toString()); const fassungString = SoapRequests_1.SoapRequests.addXmlAttribute('fassung', `${newLine}${radien}` + `${newLine}${sl}` + `${newLine}${sh}` + `${newLine}${bw}` + `${newLine}${vn}` + `${newLine}${fsw}`); return fassungString; }; const wirkung = (inp) => { const sphZylAch = sphZylAchFerne(inp.sphZylAch); const addition = add(inp.add ?? -1); const prismBase1 = prismaBasis1(inp.prisma1 ?? -1); const prismBase2 = prismaBasis2(inp.prisma2 ?? -1); const wirkungString = SoapRequests_1.SoapRequests.addXmlAttribute('wirkung', `${newLine}${sphZylAch}` + `${newLine}${addition}` + `${newLine}${prismBase1}` + `${newLine}${prismBase2}`); return wirkungString; }; const zentrierung = (inp) => { const zentrHor = SoapRequests_1.SoapRequests.addXmlAttribute('zentrHor', inp.zentrHor?.toString()); const zentrVerfahrenHor = SoapRequests_1.SoapRequests.addXmlAttribute('zentrVerfahrenHor', inp.zentrVerfahrenHor.toString()); const zentrVer = SoapRequests_1.SoapRequests.addXmlAttribute('zentrVer', inp.zentrVer?.toString()); const zentrVerfahrenVer = SoapRequests_1.SoapRequests.addXmlAttribute('zentrVerfahrenVer', inp.zentrVerfahrenVer.toString()); const zentrierKorrBeruecksichtigtHor = SoapRequests_1.SoapRequests.addXmlAttribute('zentrierKorrBeruecksichtigtHor', inp.zentrierKorrBeruecksichtigtHor?.toString()); const zentrierKorrBeruecksichtigtVer = SoapRequests_1.SoapRequests.addXmlAttribute('zentrierKorrBeruecksichtigtVer', inp.zentrierKorrBeruecksichtigtVer?.toString()); const zentrierungString = SoapRequests_1.SoapRequests.addXmlAttribute('zentrierung', `${newLine}${zentrHor}` + `${newLine}${zentrVerfahrenHor}` + `${newLine}${zentrVer}` + `${newLine}${zentrVerfahrenVer}` + `${newLine}${zentrierKorrBeruecksichtigtHor}` + `${newLine}${zentrierKorrBeruecksichtigtVer}`); return zentrierungString; }; const side = (side) => { const inputSide = side === frame_constants_1.SIDE.Left ? input.left : input.right; const orderCodeString = orderProdukt(input.orderCode); const mdmKzString = mdmKz(inputSide.mdmKz); const fassungString = fassung(inputSide.fassung); const wirkungString = wirkung(inputSide.wirkung); const zentrierungString = zentrierung(inputSide.zentrierung); const einschleifAuftragString = einschleifAuftrag(input.einschleifAuftrag); const sideString = `<${side === frame_constants_1.SIDE.Left ? 'links' : 'rechts'}>` + `${newLine}${orderCodeString}` + `${newLine}${mdmKzString}` + `${newLine}${fassungString}` + `${newLine}${wirkungString}` + `${newLine}${zentrierungString}` + // `${newLine}${bkWunsch(input.bkWunsch)}` + `${newLine}${einschleifAuftragString}` + `${newLine}</${side === frame_constants_1.SIDE.Left ? 'links' : 'rechts'}>`; return sideString; }; const attrStempelGravurPkte = SoapRequests_1.SoapRequests.addXmlAttribute('stempelGravurPkte', 'ALLES'); const attrEingabeDurchmesser = SoapRequests_1.SoapRequests.addXmlAttribute('eingabeDurchmesser', `${side(frame_constants_1.SIDE.Left)}${side(frame_constants_1.SIDE.Right)}`); const attrBkAngleich = SoapRequests_1.SoapRequests.addXmlAttribute('bkAngleich', 'true'); const attrPrismenAufteilen = SoapRequests_1.SoapRequests.addXmlAttribute('prismenAufteilen', 'true'); const xmlInput = this.addXmlAction('berechnungDurchmesser', [ attrStempelGravurPkte, attrEingabeDurchmesser, attrBkAngleich, attrPrismenAufteilen, ]); let xmlResult; function assignResult(result) { return result['soap:Envelope']['soap:Body']['ns2:berechnungDurchmesserResponse'].ausgabeDurchmesser; } let soapRequest = new traceRequests_1.default(); let convertedXmlInput; const service = 'http://xmlns.rodenstock.com/rgf/durchmesser'; if (serverLogging) { convertedXmlInput = (soapRequest.prefix(service, this.SoapVersion) + xmlInput + soapRequest.Suffix.toString()) .replace(/</g, '&lt;') .replace(/>/g, '&gt;'); await soapRequest.easyLog(convertedXmlInput); } try { xmlResult = await this.runRequest(xmlInput, service, assignResult, logging); } catch (error) { if (serverLogging && soapRequest) { await soapRequest?.easyLog('----------> error in previous diameter calculation request'); } throw new SoapError_1.SoapError('easyRequestDiameter', error.Right, error.Left, xmlInput); } const diam = frame_dao_1.Diameter.fromXML(xmlResult); return diam; } } exports.default = FormDataRequests; //# sourceMappingURL=formDataRequests.js.map