0763a1e4040c646baaa3ab809ceb097d54bb237f
[motion2.git] / server / api / intDynamics365Configuration / intDynamics365Configuration.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x172b=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','request','then','info','request\x20sent','debug','Dynamics365Configuration,\x20%s,\x20%s,\x20%s','stringify','error','Dynamics365Configuration,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','offset','limit','json','apply','reject','update','stack','name','send','index','map','Dynamics365Configuration','rawAttributes','fieldName','type','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','count','include','findAll','rows','show','includeAll','find','create','body','params','destroy','getFields','findOne','Dynamics365Field','filter','options','nolimit','getSubjects','getDescriptions','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js'];(function(_0x254abd,_0x1ab7f0){var _0x31bf1b=function(_0x447fd8){while(--_0x447fd8){_0x254abd['push'](_0x254abd['shift']());}};_0x31bf1b(++_0x1ab7f0);}(_0x172b,0x107));var _0xb172=function(_0x1424cb,_0x197150){_0x1424cb=_0x1424cb-0x0;var _0x1b3a4b=_0x172b[_0x1424cb];return _0x1b3a4b;};'use strict';var pdf=require(_0xb172('0x0'));var emlformat=require(_0xb172('0x1'));var rimraf=require(_0xb172('0x2'));var zipdir=require(_0xb172('0x3'));var jsonpatch=require(_0xb172('0x4'));var rp=require(_0xb172('0x5'));var moment=require('moment');var BPromise=require(_0xb172('0x6'));var Mustache=require(_0xb172('0x7'));var util=require(_0xb172('0x8'));var path=require(_0xb172('0x9'));var sox=require('sox');var csv=require(_0xb172('0xa'));var ejs=require(_0xb172('0xb'));var fs=require('fs');var _=require(_0xb172('0xc'));var squel=require(_0xb172('0xd'));var crypto=require('crypto');var jsforce=require(_0xb172('0xe'));var deskjs=require(_0xb172('0xf'));var toCsv=require(_0xb172('0xa'));var querystring=require(_0xb172('0x10'));var Papa=require(_0xb172('0x11'));var Redis=require(_0xb172('0x12'));var authService=require(_0xb172('0x13'));var qs=require(_0xb172('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb172('0x15'));var logger=require(_0xb172('0x16'))(_0xb172('0x17'));var utils=require(_0xb172('0x18'));var config=require(_0xb172('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xb172('0x1a'))['db'];var jayson=require(_0xb172('0x1b'));var client=jayson[_0xb172('0x1c')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5cec03,_0x53b846,_0x1553c9,_0x1d75f9){return new BPromise(function(_0x21d3de,_0x28c985){var _0x5b9258=_0x1d75f9||client;return _0x5b9258[_0xb172('0x1d')](_0x5cec03,_0x1553c9)[_0xb172('0x1e')](function(_0xb7a775){logger[_0xb172('0x1f')]('Dynamics365Configuration,\x20%s,\x20%s',_0x53b846,_0xb172('0x20'));logger[_0xb172('0x21')](_0xb172('0x22'),_0x53b846,_0xb172('0x20'),JSON[_0xb172('0x23')](_0xb7a775));if(_0xb7a775['error']){if(_0xb7a775[_0xb172('0x24')]['code']===0x1f4){logger[_0xb172('0x24')](_0xb172('0x25'),_0x53b846,_0xb7a775['error']['message']);return _0x28c985(_0xb7a775['error'][_0xb172('0x26')]);}logger[_0xb172('0x24')](_0xb172('0x25'),_0x53b846,_0xb7a775[_0xb172('0x24')][_0xb172('0x26')]);return _0x21d3de(_0xb7a775['error'][_0xb172('0x26')]);}else{logger[_0xb172('0x1f')](_0xb172('0x25'),_0x53b846,_0xb172('0x20'));_0x21d3de(_0xb7a775[_0xb172('0x27')]['message']);}})[_0xb172('0x28')](function(_0x5c95c0){logger[_0xb172('0x24')]('Dynamics365Configuration,\x20%s,\x20%s',_0x53b846,_0x5c95c0);_0x28c985(_0x5c95c0);});});}function respondWithStatusCode(_0x39d50b,_0x10e28f){_0x10e28f=_0x10e28f||0xcc;return function(_0x46080e){if(_0x46080e){return _0x39d50b[_0xb172('0x29')](_0x10e28f);}return _0x39d50b[_0xb172('0x2a')](_0x10e28f)[_0xb172('0x2b')]();};}function respondWithResult(_0x5b70cf,_0x13776e){_0x13776e=_0x13776e||0xc8;return function(_0x2106b7){if(_0x2106b7){return _0x5b70cf['status'](_0x13776e)['json'](_0x2106b7);}};}function respondWithFilteredResult(_0x31de2c,_0x413d45){return function(_0x3660df){if(_0x3660df){var _0x5d687a=_0x3660df['count'],_0x56b83c=_0x413d45[_0xb172('0x2c')],_0x256000=_0x413d45[_0xb172('0x2c')]+_0x413d45[_0xb172('0x2d')],_0x2d7b31;if(_0x256000>=_0x5d687a){_0x256000=_0x5d687a;_0x2d7b31=0xc8;}else{_0x2d7b31=0xce;}_0x31de2c[_0xb172('0x2a')](_0x2d7b31);return _0x31de2c['set']('Content-Range',_0x56b83c+'-'+_0x256000+'/'+_0x5d687a)[_0xb172('0x2e')](_0x3660df);}return null;};}function patchUpdates(_0x6d207a){return function(_0x54e581){try{jsonpatch[_0xb172('0x2f')](_0x54e581,_0x6d207a,!![]);}catch(_0x8d8edd){return BPromise[_0xb172('0x30')](_0x8d8edd);}return _0x54e581['save']();};}function saveUpdates(_0x1336a2,_0x41de27){return function(_0x5122ae){if(_0x5122ae){return _0x5122ae[_0xb172('0x31')](_0x1336a2)['then'](function(_0x722b02){return _0x722b02;});}return null;};}function removeEntity(_0x4b407a,_0x4b9d5f){return function(_0x39287d){if(_0x39287d){return _0x39287d['destroy']()['then'](function(){_0x4b407a[_0xb172('0x2a')](0xcc)[_0xb172('0x2b')]();});}};}function handleEntityNotFound(_0x2cd953,_0x3be16a){return function(_0x521589){if(!_0x521589){_0x2cd953['sendStatus'](0x194);}return _0x521589;};}function handleError(_0x1142b7,_0x3ac293){_0x3ac293=_0x3ac293||0x1f4;return function(_0x5bf940){logger[_0xb172('0x24')](_0x5bf940[_0xb172('0x32')]);if(_0x5bf940[_0xb172('0x33')]){delete _0x5bf940['name'];}_0x1142b7[_0xb172('0x2a')](_0x3ac293)[_0xb172('0x34')](_0x5bf940);};}exports[_0xb172('0x35')]=function(_0x52315c,_0x566259){var _0x4da066={},_0x1d78b0={},_0x56121c={'count':0x0,'rows':[]};var _0x2ec9c9=_[_0xb172('0x36')](db[_0xb172('0x37')][_0xb172('0x38')],function(_0x1557ad){return{'name':_0x1557ad[_0xb172('0x39')],'type':_0x1557ad[_0xb172('0x3a')]['key']};});_0x1d78b0[_0xb172('0x3b')]=_[_0xb172('0x36')](_0x2ec9c9,'name');_0x1d78b0['query']=_[_0xb172('0x3c')](_0x52315c[_0xb172('0x3d')]);_0x1d78b0[_0xb172('0x3e')]=_[_0xb172('0x3f')](_0x1d78b0[_0xb172('0x3b')],_0x1d78b0['query']);_0x4da066['attributes']=_[_0xb172('0x3f')](_0x1d78b0[_0xb172('0x3b')],qs['fields'](_0x52315c[_0xb172('0x3d')][_0xb172('0x40')]));_0x4da066['attributes']=_0x4da066[_0xb172('0x41')][_0xb172('0x42')]?_0x4da066[_0xb172('0x41')]:_0x1d78b0[_0xb172('0x3b')];if(!_0x52315c[_0xb172('0x3d')][_0xb172('0x43')]('nolimit')){_0x4da066[_0xb172('0x2d')]=qs['limit'](_0x52315c['query'][_0xb172('0x2d')]);_0x4da066['offset']=qs[_0xb172('0x2c')](_0x52315c[_0xb172('0x3d')][_0xb172('0x2c')]);}_0x4da066[_0xb172('0x44')]=qs['sort'](_0x52315c[_0xb172('0x3d')][_0xb172('0x45')]);_0x4da066[_0xb172('0x46')]=qs[_0xb172('0x3e')](_[_0xb172('0x47')](_0x52315c[_0xb172('0x3d')],_0x1d78b0[_0xb172('0x3e')]),_0x2ec9c9);if(_0x52315c['query']['filter']){_0x4da066[_0xb172('0x46')]=_[_0xb172('0x48')](_0x4da066[_0xb172('0x46')],{'$or':_[_0xb172('0x36')](_0x2ec9c9,function(_0xae6d82){if(_0xae6d82['type']!==_0xb172('0x49')){var _0x57df03={};_0x57df03[_0xae6d82[_0xb172('0x33')]]={'$like':'%'+_0x52315c[_0xb172('0x3d')]['filter']+'%'};return _0x57df03;}})});}_0x4da066=_[_0xb172('0x48')]({},_0x4da066,_0x52315c['options']);var _0x10226d={'where':_0x4da066['where']};return db[_0xb172('0x37')][_0xb172('0x4a')](_0x10226d)['then'](function(_0x4e0776){_0x56121c['count']=_0x4e0776;if(_0x52315c[_0xb172('0x3d')]['includeAll']){_0x4da066[_0xb172('0x4b')]=[{'all':!![]}];}return db[_0xb172('0x37')][_0xb172('0x4c')](_0x4da066);})[_0xb172('0x1e')](function(_0x21c3ab){_0x56121c[_0xb172('0x4d')]=_0x21c3ab;return _0x56121c;})[_0xb172('0x1e')](respondWithFilteredResult(_0x566259,_0x4da066))['catch'](handleError(_0x566259,null));};exports[_0xb172('0x4e')]=function(_0x1860a8,_0x2f50f1){var _0x5b8491={'raw':![],'where':{'id':_0x1860a8['params']['id']}},_0x29f90a={};_0x29f90a['model']=_[_0xb172('0x3c')](db[_0xb172('0x37')][_0xb172('0x38')]);_0x29f90a[_0xb172('0x3d')]=_[_0xb172('0x3c')](_0x1860a8['query']);_0x29f90a[_0xb172('0x3e')]=_['intersection'](_0x29f90a['model'],_0x29f90a['query']);_0x5b8491[_0xb172('0x41')]=_[_0xb172('0x3f')](_0x29f90a['model'],qs[_0xb172('0x40')](_0x1860a8['query']['fields']));_0x5b8491[_0xb172('0x41')]=_0x5b8491['attributes'][_0xb172('0x42')]?_0x5b8491[_0xb172('0x41')]:_0x29f90a[_0xb172('0x3b')];if(_0x1860a8[_0xb172('0x3d')][_0xb172('0x4f')]){_0x5b8491[_0xb172('0x4b')]=[{'all':!![]}];}_0x5b8491=_[_0xb172('0x48')]({},_0x5b8491,_0x1860a8['options']);return db[_0xb172('0x37')][_0xb172('0x50')](_0x5b8491)[_0xb172('0x1e')](handleEntityNotFound(_0x2f50f1,null))[_0xb172('0x1e')](respondWithResult(_0x2f50f1,null))[_0xb172('0x28')](handleError(_0x2f50f1,null));};exports[_0xb172('0x51')]=function(_0x27c353,_0x4f164d){return db['Dynamics365Configuration'][_0xb172('0x51')](_0x27c353[_0xb172('0x52')],{})[_0xb172('0x1e')](respondWithResult(_0x4f164d,0xc9))[_0xb172('0x28')](handleError(_0x4f164d,null));};exports[_0xb172('0x31')]=function(_0x29c729,_0x27ec98){if(_0x29c729[_0xb172('0x52')]['id']){delete _0x29c729[_0xb172('0x52')]['id'];}return db['Dynamics365Configuration'][_0xb172('0x50')]({'where':{'id':_0x29c729[_0xb172('0x53')]['id']}})[_0xb172('0x1e')](handleEntityNotFound(_0x27ec98,null))[_0xb172('0x1e')](saveUpdates(_0x29c729['body'],null))['then'](respondWithResult(_0x27ec98,null))['catch'](handleError(_0x27ec98,null));};exports[_0xb172('0x54')]=function(_0x50e7ea,_0x4d507b){return db[_0xb172('0x37')]['find']({'where':{'id':_0x50e7ea[_0xb172('0x53')]['id']}})['then'](handleEntityNotFound(_0x4d507b,null))[_0xb172('0x1e')](removeEntity(_0x4d507b,null))[_0xb172('0x28')](handleError(_0x4d507b,null));};exports[_0xb172('0x55')]=function(_0x3f9e34,_0x4c7a77,_0x23eb82){var _0x567dce={};var _0x264f1e={};var _0x5eb222;var _0x5b80ad;return db['Dynamics365Configuration'][_0xb172('0x56')]({'where':{'id':_0x3f9e34[_0xb172('0x53')]['id']}})[_0xb172('0x1e')](handleEntityNotFound(_0x4c7a77,null))[_0xb172('0x1e')](function(_0x46b222){if(_0x46b222){_0x5eb222=_0x46b222;_0x264f1e['model']=_[_0xb172('0x3c')](db[_0xb172('0x57')][_0xb172('0x38')]);_0x264f1e[_0xb172('0x3d')]=_['keys'](_0x3f9e34[_0xb172('0x3d')]);_0x264f1e['filters']=_[_0xb172('0x3f')](_0x264f1e[_0xb172('0x3b')],_0x264f1e[_0xb172('0x3d')]);_0x567dce[_0xb172('0x41')]=_[_0xb172('0x3f')](_0x264f1e['model'],qs[_0xb172('0x40')](_0x3f9e34[_0xb172('0x3d')][_0xb172('0x40')]));_0x567dce[_0xb172('0x41')]=_0x567dce[_0xb172('0x41')][_0xb172('0x42')]?_0x567dce[_0xb172('0x41')]:_0x264f1e['model'];_0x567dce['order']=qs[_0xb172('0x45')](_0x3f9e34[_0xb172('0x3d')]['sort']);_0x567dce[_0xb172('0x46')]=qs[_0xb172('0x3e')](_[_0xb172('0x47')](_0x3f9e34[_0xb172('0x3d')],_0x264f1e[_0xb172('0x3e')]));if(_0x3f9e34['query'][_0xb172('0x58')]){_0x567dce[_0xb172('0x46')]=_['merge'](_0x567dce[_0xb172('0x46')],{'$or':_[_0xb172('0x36')](_0x567dce[_0xb172('0x41')],function(_0x35b5cb){var _0x554549={};_0x554549[_0x35b5cb]={'$like':'%'+_0x3f9e34['query']['filter']+'%'};return _0x554549;})});}_0x567dce=_[_0xb172('0x48')]({},_0x567dce,_0x3f9e34[_0xb172('0x59')]);return _0x5eb222[_0xb172('0x55')](_0x567dce);}})[_0xb172('0x1e')](function(_0x4c9367){if(_0x4c9367){_0x5b80ad=_0x4c9367['length'];if(!_0x3f9e34[_0xb172('0x3d')][_0xb172('0x43')](_0xb172('0x5a'))){_0x567dce['limit']=qs[_0xb172('0x2d')](_0x3f9e34['query'][_0xb172('0x2d')]);_0x567dce['offset']=qs[_0xb172('0x2c')](_0x3f9e34[_0xb172('0x3d')][_0xb172('0x2c')]);}return _0x5eb222[_0xb172('0x55')](_0x567dce);}})[_0xb172('0x1e')](function(_0x4491ee){if(_0x4491ee){return _0x4491ee?{'count':_0x5b80ad,'rows':_0x4491ee}:null;}})[_0xb172('0x1e')](respondWithResult(_0x4c7a77,null))[_0xb172('0x28')](handleError(_0x4c7a77,null));};exports[_0xb172('0x5b')]=function(_0x2232b1,_0x2686c5,_0x402af5){var _0x4f71a8={};var _0x4a188a={};var _0x3c00e5;var _0x284a95;return db[_0xb172('0x37')]['findOne']({'where':{'id':_0x2232b1['params']['id']}})[_0xb172('0x1e')](handleEntityNotFound(_0x2686c5,null))[_0xb172('0x1e')](function(_0x38586a){if(_0x38586a){_0x3c00e5=_0x38586a;_0x4a188a[_0xb172('0x3b')]=_[_0xb172('0x3c')](db[_0xb172('0x57')][_0xb172('0x38')]);_0x4a188a[_0xb172('0x3d')]=_['keys'](_0x2232b1[_0xb172('0x3d')]);_0x4a188a['filters']=_[_0xb172('0x3f')](_0x4a188a[_0xb172('0x3b')],_0x4a188a['query']);_0x4f71a8[_0xb172('0x41')]=_[_0xb172('0x3f')](_0x4a188a['model'],qs['fields'](_0x2232b1[_0xb172('0x3d')][_0xb172('0x40')]));_0x4f71a8[_0xb172('0x41')]=_0x4f71a8['attributes'][_0xb172('0x42')]?_0x4f71a8[_0xb172('0x41')]:_0x4a188a[_0xb172('0x3b')];_0x4f71a8[_0xb172('0x44')]=qs[_0xb172('0x45')](_0x2232b1[_0xb172('0x3d')][_0xb172('0x45')]);_0x4f71a8['where']=qs[_0xb172('0x3e')](_['pick'](_0x2232b1[_0xb172('0x3d')],_0x4a188a[_0xb172('0x3e')]));if(_0x2232b1[_0xb172('0x3d')]['filter']){_0x4f71a8[_0xb172('0x46')]=_[_0xb172('0x48')](_0x4f71a8[_0xb172('0x46')],{'$or':_[_0xb172('0x36')](_0x4f71a8[_0xb172('0x41')],function(_0x2745f6){var _0x2ac8d1={};_0x2ac8d1[_0x2745f6]={'$like':'%'+_0x2232b1[_0xb172('0x3d')][_0xb172('0x58')]+'%'};return _0x2ac8d1;})});}_0x4f71a8=_[_0xb172('0x48')]({},_0x4f71a8,_0x2232b1[_0xb172('0x59')]);return _0x3c00e5['getSubjects'](_0x4f71a8);}})[_0xb172('0x1e')](function(_0x330a84){if(_0x330a84){_0x284a95=_0x330a84[_0xb172('0x42')];if(!_0x2232b1[_0xb172('0x3d')][_0xb172('0x43')]('nolimit')){_0x4f71a8[_0xb172('0x2d')]=qs['limit'](_0x2232b1['query'][_0xb172('0x2d')]);_0x4f71a8[_0xb172('0x2c')]=qs[_0xb172('0x2c')](_0x2232b1[_0xb172('0x3d')][_0xb172('0x2c')]);}return _0x3c00e5['getSubjects'](_0x4f71a8);}})[_0xb172('0x1e')](function(_0x1c6632){if(_0x1c6632){return _0x1c6632?{'count':_0x284a95,'rows':_0x1c6632}:null;}})['then'](respondWithResult(_0x2686c5,null))[_0xb172('0x28')](handleError(_0x2686c5,null));};exports[_0xb172('0x5c')]=function(_0x2e9572,_0x5111ed,_0x23d238){var _0x25a16b={};var _0x5aae7e={};var _0x12ee1d;var _0x22c4b3;return db[_0xb172('0x37')][_0xb172('0x56')]({'where':{'id':_0x2e9572[_0xb172('0x53')]['id']}})['then'](handleEntityNotFound(_0x5111ed,null))['then'](function(_0x5602fb){if(_0x5602fb){_0x12ee1d=_0x5602fb;_0x5aae7e['model']=_[_0xb172('0x3c')](db[_0xb172('0x57')][_0xb172('0x38')]);_0x5aae7e['query']=_['keys'](_0x2e9572[_0xb172('0x3d')]);_0x5aae7e['filters']=_[_0xb172('0x3f')](_0x5aae7e[_0xb172('0x3b')],_0x5aae7e[_0xb172('0x3d')]);_0x25a16b[_0xb172('0x41')]=_['intersection'](_0x5aae7e[_0xb172('0x3b')],qs[_0xb172('0x40')](_0x2e9572[_0xb172('0x3d')][_0xb172('0x40')]));_0x25a16b['attributes']=_0x25a16b['attributes'][_0xb172('0x42')]?_0x25a16b[_0xb172('0x41')]:_0x5aae7e[_0xb172('0x3b')];_0x25a16b[_0xb172('0x44')]=qs['sort'](_0x2e9572[_0xb172('0x3d')]['sort']);_0x25a16b[_0xb172('0x46')]=qs['filters'](_[_0xb172('0x47')](_0x2e9572[_0xb172('0x3d')],_0x5aae7e[_0xb172('0x3e')]));if(_0x2e9572[_0xb172('0x3d')][_0xb172('0x58')]){_0x25a16b[_0xb172('0x46')]=_[_0xb172('0x48')](_0x25a16b[_0xb172('0x46')],{'$or':_[_0xb172('0x36')](_0x25a16b['attributes'],function(_0x4f65c1){var _0x375309={};_0x375309[_0x4f65c1]={'$like':'%'+_0x2e9572['query'][_0xb172('0x58')]+'%'};return _0x375309;})});}_0x25a16b=_[_0xb172('0x48')]({},_0x25a16b,_0x2e9572[_0xb172('0x59')]);return _0x12ee1d[_0xb172('0x5c')](_0x25a16b);}})[_0xb172('0x1e')](function(_0xc5a31f){if(_0xc5a31f){_0x22c4b3=_0xc5a31f[_0xb172('0x42')];if(!_0x2e9572[_0xb172('0x3d')][_0xb172('0x43')](_0xb172('0x5a'))){_0x25a16b[_0xb172('0x2d')]=qs['limit'](_0x2e9572[_0xb172('0x3d')]['limit']);_0x25a16b['offset']=qs[_0xb172('0x2c')](_0x2e9572['query'][_0xb172('0x2c')]);}return _0x12ee1d['getDescriptions'](_0x25a16b);}})['then'](function(_0x3bc1d4){if(_0x3bc1d4){return _0x3bc1d4?{'count':_0x22c4b3,'rows':_0x3bc1d4}:null;}})[_0xb172('0x1e')](respondWithResult(_0x5111ed,null))[_0xb172('0x28')](handleError(_0x5111ed,null));};