f34002911a0fa2ab77a96b1b95a523450d6884c5
[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 _0x3d93=['filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','find','create','body','params','getFields','findOne','Dynamics365Field','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','request-promise','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','jayson/promise','client','request','then','info','debug','request\x20sent','error','code','Dynamics365Configuration,\x20%s,\x20%s','message','sendStatus','end','status','json','count','offset','set','update','destroy','stack','name','send','index','map','Dynamics365Configuration','rawAttributes','fieldName','type','model','query','keys'];(function(_0x1b5aea,_0x3f04b7){var _0x15cfc6=function(_0x204e92){while(--_0x204e92){_0x1b5aea['push'](_0x1b5aea['shift']());}};_0x15cfc6(++_0x3f04b7);}(_0x3d93,0x74));var _0x33d9=function(_0x500432,_0xaa733){_0x500432=_0x500432-0x0;var _0x4220be=_0x3d93[_0x500432];return _0x4220be;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x33d9('0x0'));var rimraf=require(_0x33d9('0x1'));var zipdir=require(_0x33d9('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x33d9('0x3'));var moment=require('moment');var BPromise=require(_0x33d9('0x4'));var Mustache=require('mustache');var util=require(_0x33d9('0x5'));var path=require(_0x33d9('0x6'));var sox=require(_0x33d9('0x7'));var csv=require(_0x33d9('0x8'));var ejs=require(_0x33d9('0x9'));var fs=require('fs');var _=require(_0x33d9('0xa'));var squel=require(_0x33d9('0xb'));var crypto=require(_0x33d9('0xc'));var jsforce=require(_0x33d9('0xd'));var deskjs=require(_0x33d9('0xe'));var toCsv=require(_0x33d9('0x8'));var querystring=require('querystring');var Papa=require(_0x33d9('0xf'));var Redis=require('ioredis');var authService=require(_0x33d9('0x10'));var qs=require(_0x33d9('0x11'));var as=require(_0x33d9('0x12'));var hardwareService=require(_0x33d9('0x13'));var logger=require(_0x33d9('0x14'))(_0x33d9('0x15'));var utils=require(_0x33d9('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x33d9('0x17'))['db'];var jayson=require(_0x33d9('0x18'));var client=jayson[_0x33d9('0x19')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1311e6,_0x3fb06c,_0x3522d9,_0x133ffd){return new BPromise(function(_0x22b075,_0x1bc4bf){var _0x49b97e=_0x133ffd||client;return _0x49b97e[_0x33d9('0x1a')](_0x1311e6,_0x3522d9)[_0x33d9('0x1b')](function(_0xdf515){logger[_0x33d9('0x1c')]('Dynamics365Configuration,\x20%s,\x20%s',_0x3fb06c,'request\x20sent');logger[_0x33d9('0x1d')]('Dynamics365Configuration,\x20%s,\x20%s,\x20%s',_0x3fb06c,_0x33d9('0x1e'),JSON['stringify'](_0xdf515));if(_0xdf515[_0x33d9('0x1f')]){if(_0xdf515[_0x33d9('0x1f')][_0x33d9('0x20')]===0x1f4){logger[_0x33d9('0x1f')](_0x33d9('0x21'),_0x3fb06c,_0xdf515['error'][_0x33d9('0x22')]);return _0x1bc4bf(_0xdf515['error'][_0x33d9('0x22')]);}logger[_0x33d9('0x1f')](_0x33d9('0x21'),_0x3fb06c,_0xdf515[_0x33d9('0x1f')][_0x33d9('0x22')]);return _0x22b075(_0xdf515[_0x33d9('0x1f')][_0x33d9('0x22')]);}else{logger[_0x33d9('0x1c')](_0x33d9('0x21'),_0x3fb06c,'request\x20sent');_0x22b075(_0xdf515['result']['message']);}})['catch'](function(_0x36fbf){logger[_0x33d9('0x1f')](_0x33d9('0x21'),_0x3fb06c,_0x36fbf);_0x1bc4bf(_0x36fbf);});});}function respondWithStatusCode(_0x322b4d,_0xc2a23e){_0xc2a23e=_0xc2a23e||0xcc;return function(_0x152755){if(_0x152755){return _0x322b4d[_0x33d9('0x23')](_0xc2a23e);}return _0x322b4d['status'](_0xc2a23e)[_0x33d9('0x24')]();};}function respondWithResult(_0x1d5898,_0x14887c){_0x14887c=_0x14887c||0xc8;return function(_0x1825ab){if(_0x1825ab){return _0x1d5898[_0x33d9('0x25')](_0x14887c)[_0x33d9('0x26')](_0x1825ab);}};}function respondWithFilteredResult(_0x58bf1e,_0x7a336a){return function(_0x810c13){if(_0x810c13){var _0x23f894=_0x810c13[_0x33d9('0x27')],_0x435f21=_0x7a336a[_0x33d9('0x28')],_0x49a162=_0x7a336a[_0x33d9('0x28')]+_0x7a336a['limit'],_0x4226f8;if(_0x49a162>=_0x23f894){_0x49a162=_0x23f894;_0x4226f8=0xc8;}else{_0x4226f8=0xce;}_0x58bf1e[_0x33d9('0x25')](_0x4226f8);return _0x58bf1e[_0x33d9('0x29')]('Content-Range',_0x435f21+'-'+_0x49a162+'/'+_0x23f894)[_0x33d9('0x26')](_0x810c13);}return null;};}function patchUpdates(_0x9f8112){return function(_0x371791){try{jsonpatch['apply'](_0x371791,_0x9f8112,!![]);}catch(_0x133815){return BPromise['reject'](_0x133815);}return _0x371791['save']();};}function saveUpdates(_0x275c2d,_0xc3f822){return function(_0x31720c){if(_0x31720c){return _0x31720c[_0x33d9('0x2a')](_0x275c2d)[_0x33d9('0x1b')](function(_0x17e651){return _0x17e651;});}return null;};}function removeEntity(_0x450c2b,_0x529a21){return function(_0x32756b){if(_0x32756b){return _0x32756b[_0x33d9('0x2b')]()[_0x33d9('0x1b')](function(){_0x450c2b['status'](0xcc)[_0x33d9('0x24')]();});}};}function handleEntityNotFound(_0x178010,_0x434a15){return function(_0x511935){if(!_0x511935){_0x178010[_0x33d9('0x23')](0x194);}return _0x511935;};}function handleError(_0x498527,_0x75b3a0){_0x75b3a0=_0x75b3a0||0x1f4;return function(_0x5b3746){logger['error'](_0x5b3746[_0x33d9('0x2c')]);if(_0x5b3746[_0x33d9('0x2d')]){delete _0x5b3746[_0x33d9('0x2d')];}_0x498527['status'](_0x75b3a0)[_0x33d9('0x2e')](_0x5b3746);};}exports[_0x33d9('0x2f')]=function(_0x59d33b,_0x5773f4){var _0x1dd661={},_0x27cc4b={},_0x23a54d={'count':0x0,'rows':[]};var _0x548920=_[_0x33d9('0x30')](db[_0x33d9('0x31')][_0x33d9('0x32')],function(_0x38d26d){return{'name':_0x38d26d[_0x33d9('0x33')],'type':_0x38d26d[_0x33d9('0x34')]['key']};});_0x27cc4b[_0x33d9('0x35')]=_[_0x33d9('0x30')](_0x548920,_0x33d9('0x2d'));_0x27cc4b[_0x33d9('0x36')]=_[_0x33d9('0x37')](_0x59d33b[_0x33d9('0x36')]);_0x27cc4b[_0x33d9('0x38')]=_['intersection'](_0x27cc4b['model'],_0x27cc4b['query']);_0x1dd661[_0x33d9('0x39')]=_[_0x33d9('0x3a')](_0x27cc4b[_0x33d9('0x35')],qs[_0x33d9('0x3b')](_0x59d33b[_0x33d9('0x36')][_0x33d9('0x3b')]));_0x1dd661[_0x33d9('0x39')]=_0x1dd661[_0x33d9('0x39')][_0x33d9('0x3c')]?_0x1dd661['attributes']:_0x27cc4b[_0x33d9('0x35')];if(!_0x59d33b[_0x33d9('0x36')][_0x33d9('0x3d')](_0x33d9('0x3e'))){_0x1dd661[_0x33d9('0x3f')]=qs[_0x33d9('0x3f')](_0x59d33b[_0x33d9('0x36')]['limit']);_0x1dd661[_0x33d9('0x28')]=qs[_0x33d9('0x28')](_0x59d33b[_0x33d9('0x36')][_0x33d9('0x28')]);}_0x1dd661[_0x33d9('0x40')]=qs['sort'](_0x59d33b[_0x33d9('0x36')][_0x33d9('0x41')]);_0x1dd661[_0x33d9('0x42')]=qs[_0x33d9('0x38')](_[_0x33d9('0x43')](_0x59d33b[_0x33d9('0x36')],_0x27cc4b[_0x33d9('0x38')]),_0x548920);if(_0x59d33b['query'][_0x33d9('0x44')]){_0x1dd661['where']=_[_0x33d9('0x45')](_0x1dd661['where'],{'$or':_['map'](_0x548920,function(_0x55466c){if(_0x55466c[_0x33d9('0x34')]!==_0x33d9('0x46')){var _0x42905b={};_0x42905b[_0x55466c['name']]={'$like':'%'+_0x59d33b[_0x33d9('0x36')][_0x33d9('0x44')]+'%'};return _0x42905b;}})});}_0x1dd661=_[_0x33d9('0x45')]({},_0x1dd661,_0x59d33b[_0x33d9('0x47')]);var _0x4f10d6={'where':_0x1dd661[_0x33d9('0x42')]};return db[_0x33d9('0x31')][_0x33d9('0x27')](_0x4f10d6)['then'](function(_0x2b0980){_0x23a54d[_0x33d9('0x27')]=_0x2b0980;if(_0x59d33b[_0x33d9('0x36')][_0x33d9('0x48')]){_0x1dd661[_0x33d9('0x49')]=[{'all':!![]}];}return db[_0x33d9('0x31')][_0x33d9('0x4a')](_0x1dd661);})['then'](function(_0x36b3b9){_0x23a54d[_0x33d9('0x4b')]=_0x36b3b9;return _0x23a54d;})[_0x33d9('0x1b')](respondWithFilteredResult(_0x5773f4,_0x1dd661))[_0x33d9('0x4c')](handleError(_0x5773f4,null));};exports['show']=function(_0x4653a6,_0x4e0656){var _0x5f5248={'raw':![],'where':{'id':_0x4653a6['params']['id']}},_0x4298b4={};_0x4298b4[_0x33d9('0x35')]=_[_0x33d9('0x37')](db[_0x33d9('0x31')][_0x33d9('0x32')]);_0x4298b4[_0x33d9('0x36')]=_[_0x33d9('0x37')](_0x4653a6['query']);_0x4298b4[_0x33d9('0x38')]=_[_0x33d9('0x3a')](_0x4298b4[_0x33d9('0x35')],_0x4298b4[_0x33d9('0x36')]);_0x5f5248['attributes']=_[_0x33d9('0x3a')](_0x4298b4[_0x33d9('0x35')],qs['fields'](_0x4653a6[_0x33d9('0x36')]['fields']));_0x5f5248[_0x33d9('0x39')]=_0x5f5248['attributes'][_0x33d9('0x3c')]?_0x5f5248['attributes']:_0x4298b4[_0x33d9('0x35')];if(_0x4653a6[_0x33d9('0x36')]['includeAll']){_0x5f5248['include']=[{'all':!![]}];}_0x5f5248=_[_0x33d9('0x45')]({},_0x5f5248,_0x4653a6[_0x33d9('0x47')]);return db[_0x33d9('0x31')][_0x33d9('0x4d')](_0x5f5248)[_0x33d9('0x1b')](handleEntityNotFound(_0x4e0656,null))['then'](respondWithResult(_0x4e0656,null))[_0x33d9('0x4c')](handleError(_0x4e0656,null));};exports['create']=function(_0x292ac0,_0x4b0787){return db[_0x33d9('0x31')][_0x33d9('0x4e')](_0x292ac0[_0x33d9('0x4f')],{})[_0x33d9('0x1b')](respondWithResult(_0x4b0787,0xc9))[_0x33d9('0x4c')](handleError(_0x4b0787,null));};exports[_0x33d9('0x2a')]=function(_0x1d8fbf,_0x10644b){if(_0x1d8fbf[_0x33d9('0x4f')]['id']){delete _0x1d8fbf['body']['id'];}return db[_0x33d9('0x31')]['find']({'where':{'id':_0x1d8fbf[_0x33d9('0x50')]['id']}})[_0x33d9('0x1b')](handleEntityNotFound(_0x10644b,null))['then'](saveUpdates(_0x1d8fbf[_0x33d9('0x4f')],null))[_0x33d9('0x1b')](respondWithResult(_0x10644b,null))[_0x33d9('0x4c')](handleError(_0x10644b,null));};exports[_0x33d9('0x2b')]=function(_0x356d35,_0x1ee2d3){return db[_0x33d9('0x31')][_0x33d9('0x4d')]({'where':{'id':_0x356d35[_0x33d9('0x50')]['id']}})[_0x33d9('0x1b')](handleEntityNotFound(_0x1ee2d3,null))['then'](removeEntity(_0x1ee2d3,null))[_0x33d9('0x4c')](handleError(_0x1ee2d3,null));};exports[_0x33d9('0x51')]=function(_0x33e179,_0x3f009b,_0x23b3b7){var _0x35c40c={};var _0x8da79e={};var _0x4a7d12;var _0x59d108;return db[_0x33d9('0x31')][_0x33d9('0x52')]({'where':{'id':_0x33e179[_0x33d9('0x50')]['id']}})[_0x33d9('0x1b')](handleEntityNotFound(_0x3f009b,null))[_0x33d9('0x1b')](function(_0x562822){if(_0x562822){_0x4a7d12=_0x562822;_0x8da79e[_0x33d9('0x35')]=_[_0x33d9('0x37')](db[_0x33d9('0x53')][_0x33d9('0x32')]);_0x8da79e['query']=_[_0x33d9('0x37')](_0x33e179[_0x33d9('0x36')]);_0x8da79e[_0x33d9('0x38')]=_['intersection'](_0x8da79e[_0x33d9('0x35')],_0x8da79e[_0x33d9('0x36')]);_0x35c40c[_0x33d9('0x39')]=_[_0x33d9('0x3a')](_0x8da79e[_0x33d9('0x35')],qs[_0x33d9('0x3b')](_0x33e179[_0x33d9('0x36')][_0x33d9('0x3b')]));_0x35c40c[_0x33d9('0x39')]=_0x35c40c[_0x33d9('0x39')][_0x33d9('0x3c')]?_0x35c40c[_0x33d9('0x39')]:_0x8da79e[_0x33d9('0x35')];_0x35c40c[_0x33d9('0x40')]=qs[_0x33d9('0x41')](_0x33e179[_0x33d9('0x36')][_0x33d9('0x41')]);_0x35c40c[_0x33d9('0x42')]=qs[_0x33d9('0x38')](_[_0x33d9('0x43')](_0x33e179['query'],_0x8da79e['filters']));if(_0x33e179[_0x33d9('0x36')][_0x33d9('0x44')]){_0x35c40c[_0x33d9('0x42')]=_[_0x33d9('0x45')](_0x35c40c[_0x33d9('0x42')],{'$or':_[_0x33d9('0x30')](_0x35c40c[_0x33d9('0x39')],function(_0x52b9bd){var _0x4781b0={};_0x4781b0[_0x52b9bd]={'$like':'%'+_0x33e179[_0x33d9('0x36')][_0x33d9('0x44')]+'%'};return _0x4781b0;})});}_0x35c40c=_[_0x33d9('0x45')]({},_0x35c40c,_0x33e179[_0x33d9('0x47')]);return _0x4a7d12['getFields'](_0x35c40c);}})[_0x33d9('0x1b')](function(_0x3bc68b){if(_0x3bc68b){_0x59d108=_0x3bc68b[_0x33d9('0x3c')];if(!_0x33e179['query'][_0x33d9('0x3d')]('nolimit')){_0x35c40c[_0x33d9('0x3f')]=qs[_0x33d9('0x3f')](_0x33e179['query'][_0x33d9('0x3f')]);_0x35c40c['offset']=qs['offset'](_0x33e179[_0x33d9('0x36')][_0x33d9('0x28')]);}return _0x4a7d12['getFields'](_0x35c40c);}})[_0x33d9('0x1b')](function(_0x3b43a3){if(_0x3b43a3){return _0x3b43a3?{'count':_0x59d108,'rows':_0x3b43a3}:null;}})[_0x33d9('0x1b')](respondWithResult(_0x3f009b,null))[_0x33d9('0x4c')](handleError(_0x3f009b,null));};exports[_0x33d9('0x54')]=function(_0x2c594c,_0x14f474,_0x20072e){var _0x7fc1fc={};var _0x529e08={};var _0x391b96;var _0x381ce9;return db[_0x33d9('0x31')]['findOne']({'where':{'id':_0x2c594c[_0x33d9('0x50')]['id']}})[_0x33d9('0x1b')](handleEntityNotFound(_0x14f474,null))[_0x33d9('0x1b')](function(_0x10e966){if(_0x10e966){_0x391b96=_0x10e966;_0x529e08[_0x33d9('0x35')]=_[_0x33d9('0x37')](db[_0x33d9('0x53')][_0x33d9('0x32')]);_0x529e08[_0x33d9('0x36')]=_['keys'](_0x2c594c[_0x33d9('0x36')]);_0x529e08[_0x33d9('0x38')]=_['intersection'](_0x529e08['model'],_0x529e08['query']);_0x7fc1fc['attributes']=_['intersection'](_0x529e08['model'],qs[_0x33d9('0x3b')](_0x2c594c['query'][_0x33d9('0x3b')]));_0x7fc1fc[_0x33d9('0x39')]=_0x7fc1fc['attributes']['length']?_0x7fc1fc[_0x33d9('0x39')]:_0x529e08['model'];_0x7fc1fc[_0x33d9('0x40')]=qs[_0x33d9('0x41')](_0x2c594c[_0x33d9('0x36')]['sort']);_0x7fc1fc['where']=qs[_0x33d9('0x38')](_[_0x33d9('0x43')](_0x2c594c[_0x33d9('0x36')],_0x529e08[_0x33d9('0x38')]));if(_0x2c594c[_0x33d9('0x36')][_0x33d9('0x44')]){_0x7fc1fc['where']=_[_0x33d9('0x45')](_0x7fc1fc[_0x33d9('0x42')],{'$or':_[_0x33d9('0x30')](_0x7fc1fc[_0x33d9('0x39')],function(_0x3a69b0){var _0xd9d094={};_0xd9d094[_0x3a69b0]={'$like':'%'+_0x2c594c[_0x33d9('0x36')]['filter']+'%'};return _0xd9d094;})});}_0x7fc1fc=_[_0x33d9('0x45')]({},_0x7fc1fc,_0x2c594c[_0x33d9('0x47')]);return _0x391b96[_0x33d9('0x54')](_0x7fc1fc);}})[_0x33d9('0x1b')](function(_0x3028eb){if(_0x3028eb){_0x381ce9=_0x3028eb[_0x33d9('0x3c')];if(!_0x2c594c[_0x33d9('0x36')][_0x33d9('0x3d')](_0x33d9('0x3e'))){_0x7fc1fc['limit']=qs[_0x33d9('0x3f')](_0x2c594c[_0x33d9('0x36')][_0x33d9('0x3f')]);_0x7fc1fc['offset']=qs[_0x33d9('0x28')](_0x2c594c['query'][_0x33d9('0x28')]);}return _0x391b96['getSubjects'](_0x7fc1fc);}})['then'](function(_0x4aaf69){if(_0x4aaf69){return _0x4aaf69?{'count':_0x381ce9,'rows':_0x4aaf69}:null;}})['then'](respondWithResult(_0x14f474,null))[_0x33d9('0x4c')](handleError(_0x14f474,null));};exports[_0x33d9('0x55')]=function(_0x3c5195,_0x379076,_0x201c1d){var _0x292a2d={};var _0x12a027={};var _0x1fc63c;var _0x4e6186;return db[_0x33d9('0x31')][_0x33d9('0x52')]({'where':{'id':_0x3c5195['params']['id']}})['then'](handleEntityNotFound(_0x379076,null))['then'](function(_0x38220e){if(_0x38220e){_0x1fc63c=_0x38220e;_0x12a027[_0x33d9('0x35')]=_[_0x33d9('0x37')](db[_0x33d9('0x53')][_0x33d9('0x32')]);_0x12a027[_0x33d9('0x36')]=_[_0x33d9('0x37')](_0x3c5195[_0x33d9('0x36')]);_0x12a027[_0x33d9('0x38')]=_[_0x33d9('0x3a')](_0x12a027[_0x33d9('0x35')],_0x12a027[_0x33d9('0x36')]);_0x292a2d[_0x33d9('0x39')]=_[_0x33d9('0x3a')](_0x12a027[_0x33d9('0x35')],qs[_0x33d9('0x3b')](_0x3c5195['query'][_0x33d9('0x3b')]));_0x292a2d[_0x33d9('0x39')]=_0x292a2d['attributes']['length']?_0x292a2d[_0x33d9('0x39')]:_0x12a027[_0x33d9('0x35')];_0x292a2d[_0x33d9('0x40')]=qs[_0x33d9('0x41')](_0x3c5195['query'][_0x33d9('0x41')]);_0x292a2d[_0x33d9('0x42')]=qs[_0x33d9('0x38')](_[_0x33d9('0x43')](_0x3c5195['query'],_0x12a027[_0x33d9('0x38')]));if(_0x3c5195['query'][_0x33d9('0x44')]){_0x292a2d[_0x33d9('0x42')]=_['merge'](_0x292a2d[_0x33d9('0x42')],{'$or':_[_0x33d9('0x30')](_0x292a2d['attributes'],function(_0xff01ec){var _0x17b1c5={};_0x17b1c5[_0xff01ec]={'$like':'%'+_0x3c5195[_0x33d9('0x36')]['filter']+'%'};return _0x17b1c5;})});}_0x292a2d=_[_0x33d9('0x45')]({},_0x292a2d,_0x3c5195[_0x33d9('0x47')]);return _0x1fc63c['getDescriptions'](_0x292a2d);}})[_0x33d9('0x1b')](function(_0x39b598){if(_0x39b598){_0x4e6186=_0x39b598[_0x33d9('0x3c')];if(!_0x3c5195[_0x33d9('0x36')][_0x33d9('0x3d')](_0x33d9('0x3e'))){_0x292a2d[_0x33d9('0x3f')]=qs['limit'](_0x3c5195[_0x33d9('0x36')][_0x33d9('0x3f')]);_0x292a2d[_0x33d9('0x28')]=qs[_0x33d9('0x28')](_0x3c5195[_0x33d9('0x36')]['offset']);}return _0x1fc63c['getDescriptions'](_0x292a2d);}})[_0x33d9('0x1b')](function(_0x23d0fa){if(_0x23d0fa){return _0x23d0fa?{'count':_0x4e6186,'rows':_0x23d0fa}:null;}})['then'](respondWithResult(_0x379076,null))['catch'](handleError(_0x379076,null));};