frame.soap
Version:
SOAP client library for Frame services
211 lines • 12.2 kB
JavaScript
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, '<')
.replace(/>/g, '>');
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
;