c2e956446283c978eb31901e8cde06bc8a7a60b9
[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 _0xc9e0=['attributes','hasOwnProperty','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','length','include','find','create','body','params','getFields','findOne','Dynamics365Field','rawAttributes','nolimit','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','moment','path','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','then','destroy','error','name','send','index','map','Dynamics365Configuration','type','model','keys','query','intersection','fields'];(function(_0x4d36a4,_0x303dd0){var _0x8d4548=function(_0x295887){while(--_0x295887){_0x4d36a4['push'](_0x4d36a4['shift']());}};_0x8d4548(++_0x303dd0);}(_0xc9e0,0xb4));var _0x0c9e=function(_0x41245d,_0x4fbee2){_0x41245d=_0x41245d-0x0;var _0x3e6f5c=_0xc9e0[_0x41245d];return _0x3e6f5c;};'use strict';var emlformat=require(_0x0c9e('0x0'));var rimraf=require(_0x0c9e('0x1'));var zipdir=require(_0x0c9e('0x2'));var jsonpatch=require(_0x0c9e('0x3'));var rp=require('request-promise');var moment=require(_0x0c9e('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x0c9e('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x0c9e('0x6'));var crypto=require(_0x0c9e('0x7'));var jsforce=require(_0x0c9e('0x8'));var deskjs=require(_0x0c9e('0x9'));var toCsv=require(_0x0c9e('0xa'));var querystring=require(_0x0c9e('0xb'));var Papa=require('papaparse');var Redis=require(_0x0c9e('0xc'));var authService=require(_0x0c9e('0xd'));var qs=require(_0x0c9e('0xe'));var as=require(_0x0c9e('0xf'));var hardwareService=require(_0x0c9e('0x10'));var logger=require(_0x0c9e('0x11'))(_0x0c9e('0x12'));var utils=require(_0x0c9e('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x0c9e('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x23374c,_0x7118ca){_0x7118ca=_0x7118ca||0xcc;return function(_0x330929){if(_0x330929){return _0x23374c[_0x0c9e('0x15')](_0x7118ca);}return _0x23374c[_0x0c9e('0x16')](_0x7118ca)[_0x0c9e('0x17')]();};}function respondWithResult(_0x3fa2e4,_0x2fbf5c){_0x2fbf5c=_0x2fbf5c||0xc8;return function(_0x479c7a){if(_0x479c7a){return _0x3fa2e4['status'](_0x2fbf5c)[_0x0c9e('0x18')](_0x479c7a);}};}function respondWithFilteredResult(_0x87630f,_0x330fe2){return function(_0x50c67a){if(_0x50c67a){var _0x4ee66e=typeof _0x330fe2['offset']===_0x0c9e('0x19')&&typeof _0x330fe2[_0x0c9e('0x1a')]===_0x0c9e('0x19');var _0x12abbf=_0x50c67a[_0x0c9e('0x1b')];var _0x227207=_0x4ee66e?0x0:_0x330fe2[_0x0c9e('0x1c')];var _0x5810bf=_0x4ee66e?_0x50c67a[_0x0c9e('0x1b')]:_0x330fe2[_0x0c9e('0x1c')]+_0x330fe2[_0x0c9e('0x1a')];var _0x5ba8da;if(_0x5810bf>=_0x12abbf){_0x5810bf=_0x12abbf;_0x5ba8da=0xc8;}else{_0x5ba8da=0xce;}_0x87630f[_0x0c9e('0x16')](_0x5ba8da);return _0x87630f[_0x0c9e('0x1d')](_0x0c9e('0x1e'),_0x227207+'-'+_0x5810bf+'/'+_0x12abbf)[_0x0c9e('0x18')](_0x50c67a);}return null;};}function patchUpdates(_0x111b83){return function(_0x127abb){try{jsonpatch[_0x0c9e('0x1f')](_0x127abb,_0x111b83,!![]);}catch(_0x69560f){return BPromise['reject'](_0x69560f);}return _0x127abb[_0x0c9e('0x20')]();};}function saveUpdates(_0x5037a7,_0x2abc4e){return function(_0x362190){if(_0x362190){return _0x362190[_0x0c9e('0x21')](_0x5037a7)[_0x0c9e('0x22')](function(_0x1708ed){return _0x1708ed;});}return null;};}function removeEntity(_0x8f0b59,_0x5e7f0a){return function(_0x185e70){if(_0x185e70){return _0x185e70[_0x0c9e('0x23')]()[_0x0c9e('0x22')](function(){_0x8f0b59[_0x0c9e('0x16')](0xcc)[_0x0c9e('0x17')]();});}};}function handleEntityNotFound(_0x5dd55d,_0x17ad4b){return function(_0x3256d4){if(!_0x3256d4){_0x5dd55d[_0x0c9e('0x15')](0x194);}return _0x3256d4;};}function handleError(_0x1a05c1,_0xbd4234){_0xbd4234=_0xbd4234||0x1f4;return function(_0x41ec38){logger[_0x0c9e('0x24')](_0x41ec38['stack']);if(_0x41ec38[_0x0c9e('0x25')]){delete _0x41ec38[_0x0c9e('0x25')];}_0x1a05c1[_0x0c9e('0x16')](_0xbd4234)[_0x0c9e('0x26')](_0x41ec38);};}exports[_0x0c9e('0x27')]=function(_0x26ea2f,_0x54f591){var _0xe60912={},_0x49ec8a={},_0x217f23={'count':0x0,'rows':[]};var _0x599f2f=_[_0x0c9e('0x28')](db[_0x0c9e('0x29')]['rawAttributes'],function(_0x1cf11f){return{'name':_0x1cf11f['fieldName'],'type':_0x1cf11f[_0x0c9e('0x2a')]['key']};});_0x49ec8a[_0x0c9e('0x2b')]=_[_0x0c9e('0x28')](_0x599f2f,_0x0c9e('0x25'));_0x49ec8a['query']=_[_0x0c9e('0x2c')](_0x26ea2f[_0x0c9e('0x2d')]);_0x49ec8a['filters']=_['intersection'](_0x49ec8a['model'],_0x49ec8a['query']);_0xe60912['attributes']=_[_0x0c9e('0x2e')](_0x49ec8a[_0x0c9e('0x2b')],qs[_0x0c9e('0x2f')](_0x26ea2f[_0x0c9e('0x2d')][_0x0c9e('0x2f')]));_0xe60912[_0x0c9e('0x30')]=_0xe60912['attributes']['length']?_0xe60912[_0x0c9e('0x30')]:_0x49ec8a[_0x0c9e('0x2b')];if(!_0x26ea2f[_0x0c9e('0x2d')][_0x0c9e('0x31')]('nolimit')){_0xe60912[_0x0c9e('0x1a')]=qs[_0x0c9e('0x1a')](_0x26ea2f[_0x0c9e('0x2d')][_0x0c9e('0x1a')]);_0xe60912['offset']=qs[_0x0c9e('0x1c')](_0x26ea2f[_0x0c9e('0x2d')][_0x0c9e('0x1c')]);}_0xe60912[_0x0c9e('0x32')]=qs[_0x0c9e('0x33')](_0x26ea2f['query'][_0x0c9e('0x33')]);_0xe60912[_0x0c9e('0x34')]=qs[_0x0c9e('0x35')](_[_0x0c9e('0x36')](_0x26ea2f[_0x0c9e('0x2d')],_0x49ec8a[_0x0c9e('0x35')]),_0x599f2f);if(_0x26ea2f[_0x0c9e('0x2d')][_0x0c9e('0x37')]){_0xe60912['where']=_['merge'](_0xe60912[_0x0c9e('0x34')],{'$or':_[_0x0c9e('0x28')](_0x599f2f,function(_0x410775){if(_0x410775['type']!==_0x0c9e('0x38')){var _0x338c1b={};_0x338c1b[_0x410775[_0x0c9e('0x25')]]={'$like':'%'+_0x26ea2f[_0x0c9e('0x2d')]['filter']+'%'};return _0x338c1b;}})});}_0xe60912=_[_0x0c9e('0x39')]({},_0xe60912,_0x26ea2f[_0x0c9e('0x3a')]);var _0x2d1c00={'where':_0xe60912[_0x0c9e('0x34')]};return db['Dynamics365Configuration'][_0x0c9e('0x1b')](_0x2d1c00)['then'](function(_0x3a7e86){_0x217f23[_0x0c9e('0x1b')]=_0x3a7e86;if(_0x26ea2f['query'][_0x0c9e('0x3b')]){_0xe60912['include']=[{'all':!![]}];}return db[_0x0c9e('0x29')][_0x0c9e('0x3c')](_0xe60912);})['then'](function(_0x52d81c){_0x217f23[_0x0c9e('0x3d')]=_0x52d81c;return _0x217f23;})[_0x0c9e('0x22')](respondWithFilteredResult(_0x54f591,_0xe60912))[_0x0c9e('0x3e')](handleError(_0x54f591,null));};exports['show']=function(_0x398473,_0x2ec8ba){var _0x54c00c={'raw':![],'where':{'id':_0x398473['params']['id']}},_0x449f34={};_0x449f34[_0x0c9e('0x2b')]=_[_0x0c9e('0x2c')](db[_0x0c9e('0x29')]['rawAttributes']);_0x449f34[_0x0c9e('0x2d')]=_[_0x0c9e('0x2c')](_0x398473[_0x0c9e('0x2d')]);_0x449f34['filters']=_[_0x0c9e('0x2e')](_0x449f34[_0x0c9e('0x2b')],_0x449f34[_0x0c9e('0x2d')]);_0x54c00c[_0x0c9e('0x30')]=_[_0x0c9e('0x2e')](_0x449f34['model'],qs[_0x0c9e('0x2f')](_0x398473[_0x0c9e('0x2d')]['fields']));_0x54c00c['attributes']=_0x54c00c[_0x0c9e('0x30')][_0x0c9e('0x3f')]?_0x54c00c[_0x0c9e('0x30')]:_0x449f34['model'];if(_0x398473[_0x0c9e('0x2d')][_0x0c9e('0x3b')]){_0x54c00c[_0x0c9e('0x40')]=[{'all':!![]}];}_0x54c00c=_[_0x0c9e('0x39')]({},_0x54c00c,_0x398473[_0x0c9e('0x3a')]);return db[_0x0c9e('0x29')][_0x0c9e('0x41')](_0x54c00c)[_0x0c9e('0x22')](handleEntityNotFound(_0x2ec8ba,null))[_0x0c9e('0x22')](respondWithResult(_0x2ec8ba,null))[_0x0c9e('0x3e')](handleError(_0x2ec8ba,null));};exports['create']=function(_0x4b2894,_0x4becfc){return db[_0x0c9e('0x29')][_0x0c9e('0x42')](_0x4b2894[_0x0c9e('0x43')],{})[_0x0c9e('0x22')](respondWithResult(_0x4becfc,0xc9))[_0x0c9e('0x3e')](handleError(_0x4becfc,null));};exports[_0x0c9e('0x21')]=function(_0x2e9b8c,_0x3861d9){if(_0x2e9b8c[_0x0c9e('0x43')]['id']){delete _0x2e9b8c['body']['id'];}return db[_0x0c9e('0x29')][_0x0c9e('0x41')]({'where':{'id':_0x2e9b8c[_0x0c9e('0x44')]['id']}})['then'](handleEntityNotFound(_0x3861d9,null))['then'](saveUpdates(_0x2e9b8c[_0x0c9e('0x43')],null))[_0x0c9e('0x22')](respondWithResult(_0x3861d9,null))[_0x0c9e('0x3e')](handleError(_0x3861d9,null));};exports['destroy']=function(_0x237148,_0x47d161){return db[_0x0c9e('0x29')]['find']({'where':{'id':_0x237148['params']['id']}})[_0x0c9e('0x22')](handleEntityNotFound(_0x47d161,null))['then'](removeEntity(_0x47d161,null))['catch'](handleError(_0x47d161,null));};exports[_0x0c9e('0x45')]=function(_0x3397e1,_0x3ab6df,_0x130b35){var _0x4ce55b={};var _0xc83305={};var _0x10994e;var _0x23caee;return db[_0x0c9e('0x29')][_0x0c9e('0x46')]({'where':{'id':_0x3397e1['params']['id']}})['then'](handleEntityNotFound(_0x3ab6df,null))[_0x0c9e('0x22')](function(_0x1386bd){if(_0x1386bd){_0x10994e=_0x1386bd;_0xc83305['model']=_[_0x0c9e('0x2c')](db[_0x0c9e('0x47')][_0x0c9e('0x48')]);_0xc83305[_0x0c9e('0x2d')]=_[_0x0c9e('0x2c')](_0x3397e1['query']);_0xc83305['filters']=_[_0x0c9e('0x2e')](_0xc83305['model'],_0xc83305[_0x0c9e('0x2d')]);_0x4ce55b[_0x0c9e('0x30')]=_[_0x0c9e('0x2e')](_0xc83305[_0x0c9e('0x2b')],qs[_0x0c9e('0x2f')](_0x3397e1['query'][_0x0c9e('0x2f')]));_0x4ce55b[_0x0c9e('0x30')]=_0x4ce55b[_0x0c9e('0x30')][_0x0c9e('0x3f')]?_0x4ce55b['attributes']:_0xc83305[_0x0c9e('0x2b')];_0x4ce55b[_0x0c9e('0x32')]=qs[_0x0c9e('0x33')](_0x3397e1[_0x0c9e('0x2d')][_0x0c9e('0x33')]);_0x4ce55b['where']=qs[_0x0c9e('0x35')](_[_0x0c9e('0x36')](_0x3397e1[_0x0c9e('0x2d')],_0xc83305[_0x0c9e('0x35')]));if(_0x3397e1[_0x0c9e('0x2d')]['filter']){_0x4ce55b[_0x0c9e('0x34')]=_[_0x0c9e('0x39')](_0x4ce55b[_0x0c9e('0x34')],{'$or':_[_0x0c9e('0x28')](_0x4ce55b[_0x0c9e('0x30')],function(_0x1a7bea){var _0x28064c={};_0x28064c[_0x1a7bea]={'$like':'%'+_0x3397e1['query'][_0x0c9e('0x37')]+'%'};return _0x28064c;})});}_0x4ce55b=_[_0x0c9e('0x39')]({},_0x4ce55b,_0x3397e1[_0x0c9e('0x3a')]);return _0x10994e[_0x0c9e('0x45')](_0x4ce55b);}})[_0x0c9e('0x22')](function(_0x54888d){if(_0x54888d){_0x23caee=_0x54888d[_0x0c9e('0x3f')];if(!_0x3397e1[_0x0c9e('0x2d')][_0x0c9e('0x31')](_0x0c9e('0x49'))){_0x4ce55b[_0x0c9e('0x1a')]=qs['limit'](_0x3397e1[_0x0c9e('0x2d')]['limit']);_0x4ce55b[_0x0c9e('0x1c')]=qs['offset'](_0x3397e1['query'][_0x0c9e('0x1c')]);}return _0x10994e[_0x0c9e('0x45')](_0x4ce55b);}})[_0x0c9e('0x22')](function(_0x1f011c){if(_0x1f011c){return _0x1f011c?{'count':_0x23caee,'rows':_0x1f011c}:null;}})[_0x0c9e('0x22')](respondWithResult(_0x3ab6df,null))['catch'](handleError(_0x3ab6df,null));};exports[_0x0c9e('0x4a')]=function(_0x11cd07,_0xc4c579,_0x33af7b){var _0x5f2eff={};var _0x263454={};var _0x19d7c9;var _0x4c5fe0;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x11cd07[_0x0c9e('0x44')]['id']}})[_0x0c9e('0x22')](handleEntityNotFound(_0xc4c579,null))[_0x0c9e('0x22')](function(_0x3f1a21){if(_0x3f1a21){_0x19d7c9=_0x3f1a21;_0x263454[_0x0c9e('0x2b')]=_[_0x0c9e('0x2c')](db['Dynamics365Field'][_0x0c9e('0x48')]);_0x263454[_0x0c9e('0x2d')]=_[_0x0c9e('0x2c')](_0x11cd07[_0x0c9e('0x2d')]);_0x263454['filters']=_[_0x0c9e('0x2e')](_0x263454[_0x0c9e('0x2b')],_0x263454['query']);_0x5f2eff[_0x0c9e('0x30')]=_[_0x0c9e('0x2e')](_0x263454['model'],qs[_0x0c9e('0x2f')](_0x11cd07[_0x0c9e('0x2d')][_0x0c9e('0x2f')]));_0x5f2eff[_0x0c9e('0x30')]=_0x5f2eff[_0x0c9e('0x30')][_0x0c9e('0x3f')]?_0x5f2eff[_0x0c9e('0x30')]:_0x263454[_0x0c9e('0x2b')];_0x5f2eff[_0x0c9e('0x32')]=qs['sort'](_0x11cd07['query'][_0x0c9e('0x33')]);_0x5f2eff[_0x0c9e('0x34')]=qs[_0x0c9e('0x35')](_[_0x0c9e('0x36')](_0x11cd07[_0x0c9e('0x2d')],_0x263454[_0x0c9e('0x35')]));if(_0x11cd07[_0x0c9e('0x2d')][_0x0c9e('0x37')]){_0x5f2eff[_0x0c9e('0x34')]=_[_0x0c9e('0x39')](_0x5f2eff['where'],{'$or':_[_0x0c9e('0x28')](_0x5f2eff[_0x0c9e('0x30')],function(_0x46dd73){var _0xe2b479={};_0xe2b479[_0x46dd73]={'$like':'%'+_0x11cd07[_0x0c9e('0x2d')][_0x0c9e('0x37')]+'%'};return _0xe2b479;})});}_0x5f2eff=_[_0x0c9e('0x39')]({},_0x5f2eff,_0x11cd07['options']);return _0x19d7c9['getSubjects'](_0x5f2eff);}})[_0x0c9e('0x22')](function(_0x230f11){if(_0x230f11){_0x4c5fe0=_0x230f11[_0x0c9e('0x3f')];if(!_0x11cd07[_0x0c9e('0x2d')]['hasOwnProperty']('nolimit')){_0x5f2eff[_0x0c9e('0x1a')]=qs['limit'](_0x11cd07[_0x0c9e('0x2d')][_0x0c9e('0x1a')]);_0x5f2eff[_0x0c9e('0x1c')]=qs[_0x0c9e('0x1c')](_0x11cd07['query'][_0x0c9e('0x1c')]);}return _0x19d7c9[_0x0c9e('0x4a')](_0x5f2eff);}})[_0x0c9e('0x22')](function(_0x1765ad){if(_0x1765ad){return _0x1765ad?{'count':_0x4c5fe0,'rows':_0x1765ad}:null;}})[_0x0c9e('0x22')](respondWithResult(_0xc4c579,null))[_0x0c9e('0x3e')](handleError(_0xc4c579,null));};exports[_0x0c9e('0x4b')]=function(_0x5371be,_0x510ac6,_0x52e2cb){var _0x2d4a18={};var _0x293faf={};var _0x1bb558;var _0x43a0b8;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x5371be[_0x0c9e('0x44')]['id']}})['then'](handleEntityNotFound(_0x510ac6,null))['then'](function(_0x53d17d){if(_0x53d17d){_0x1bb558=_0x53d17d;_0x293faf[_0x0c9e('0x2b')]=_[_0x0c9e('0x2c')](db[_0x0c9e('0x47')][_0x0c9e('0x48')]);_0x293faf['query']=_[_0x0c9e('0x2c')](_0x5371be['query']);_0x293faf[_0x0c9e('0x35')]=_[_0x0c9e('0x2e')](_0x293faf[_0x0c9e('0x2b')],_0x293faf[_0x0c9e('0x2d')]);_0x2d4a18['attributes']=_['intersection'](_0x293faf[_0x0c9e('0x2b')],qs[_0x0c9e('0x2f')](_0x5371be['query'][_0x0c9e('0x2f')]));_0x2d4a18['attributes']=_0x2d4a18['attributes']['length']?_0x2d4a18['attributes']:_0x293faf[_0x0c9e('0x2b')];_0x2d4a18[_0x0c9e('0x32')]=qs[_0x0c9e('0x33')](_0x5371be['query'][_0x0c9e('0x33')]);_0x2d4a18[_0x0c9e('0x34')]=qs[_0x0c9e('0x35')](_[_0x0c9e('0x36')](_0x5371be[_0x0c9e('0x2d')],_0x293faf[_0x0c9e('0x35')]));if(_0x5371be[_0x0c9e('0x2d')]['filter']){_0x2d4a18[_0x0c9e('0x34')]=_[_0x0c9e('0x39')](_0x2d4a18[_0x0c9e('0x34')],{'$or':_['map'](_0x2d4a18[_0x0c9e('0x30')],function(_0x550093){var _0x20c9e8={};_0x20c9e8[_0x550093]={'$like':'%'+_0x5371be[_0x0c9e('0x2d')][_0x0c9e('0x37')]+'%'};return _0x20c9e8;})});}_0x2d4a18=_['merge']({},_0x2d4a18,_0x5371be[_0x0c9e('0x3a')]);return _0x1bb558['getDescriptions'](_0x2d4a18);}})[_0x0c9e('0x22')](function(_0x124636){if(_0x124636){_0x43a0b8=_0x124636[_0x0c9e('0x3f')];if(!_0x5371be[_0x0c9e('0x2d')][_0x0c9e('0x31')](_0x0c9e('0x49'))){_0x2d4a18['limit']=qs[_0x0c9e('0x1a')](_0x5371be[_0x0c9e('0x2d')]['limit']);_0x2d4a18[_0x0c9e('0x1c')]=qs['offset'](_0x5371be[_0x0c9e('0x2d')][_0x0c9e('0x1c')]);}return _0x1bb558[_0x0c9e('0x4b')](_0x2d4a18);}})[_0x0c9e('0x22')](function(_0x92a2d1){if(_0x92a2d1){return _0x92a2d1?{'count':_0x43a0b8,'rows':_0x92a2d1}:null;}})['then'](respondWithResult(_0x510ac6,null))[_0x0c9e('0x3e')](handleError(_0x510ac6,null));};