26411857fc12d70d83c98261500ceb02c55e78a2
[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 _0xa3b7=['desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','apply','reject','save','then','error','stack','name','send','index','map','Dynamics365Configuration','fieldName','type','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','rawAttributes','create','body','update','find','getFields','findOne','Dynamics365Field','order','getSubjects','nolimit','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce'];(function(_0x5c66a9,_0x2eb507){var _0x4783b1=function(_0x4f5db5){while(--_0x4f5db5){_0x5c66a9['push'](_0x5c66a9['shift']());}};_0x4783b1(++_0x2eb507);}(_0xa3b7,0xf4));var _0x7a3b=function(_0x238830,_0x545f75){_0x238830=_0x238830-0x0;var _0x5917f0=_0xa3b7[_0x238830];return _0x5917f0;};'use strict';var emlformat=require(_0x7a3b('0x0'));var rimraf=require(_0x7a3b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7a3b('0x2'));var rp=require(_0x7a3b('0x3'));var moment=require(_0x7a3b('0x4'));var BPromise=require(_0x7a3b('0x5'));var Mustache=require(_0x7a3b('0x6'));var util=require(_0x7a3b('0x7'));var path=require(_0x7a3b('0x8'));var sox=require(_0x7a3b('0x9'));var csv=require(_0x7a3b('0xa'));var ejs=require(_0x7a3b('0xb'));var fs=require('fs');var fs_extra=require(_0x7a3b('0xc'));var _=require(_0x7a3b('0xd'));var squel=require(_0x7a3b('0xe'));var crypto=require(_0x7a3b('0xf'));var jsforce=require(_0x7a3b('0x10'));var deskjs=require(_0x7a3b('0x11'));var toCsv=require(_0x7a3b('0xa'));var querystring=require(_0x7a3b('0x12'));var Papa=require(_0x7a3b('0x13'));var Redis=require(_0x7a3b('0x14'));var authService=require(_0x7a3b('0x15'));var qs=require(_0x7a3b('0x16'));var as=require(_0x7a3b('0x17'));var hardwareService=require(_0x7a3b('0x18'));var logger=require(_0x7a3b('0x19'))(_0x7a3b('0x1a'));var utils=require(_0x7a3b('0x1b'));var config=require(_0x7a3b('0x1c'));var licenseUtil=require(_0x7a3b('0x1d'));var db=require(_0x7a3b('0x1e'))['db'];function respondWithStatusCode(_0x1a1311,_0x1e9e7c){_0x1e9e7c=_0x1e9e7c||0xcc;return function(_0x448595){if(_0x448595){return _0x1a1311[_0x7a3b('0x1f')](_0x1e9e7c);}return _0x1a1311[_0x7a3b('0x20')](_0x1e9e7c)[_0x7a3b('0x21')]();};}function respondWithResult(_0x24ca86,_0x5a7a66){_0x5a7a66=_0x5a7a66||0xc8;return function(_0x2cc782){if(_0x2cc782){return _0x24ca86[_0x7a3b('0x20')](_0x5a7a66)['json'](_0x2cc782);}};}function respondWithFilteredResult(_0xbcf3e8,_0x4676dd){return function(_0x4c7640){if(_0x4c7640){var _0x256b5d=typeof _0x4676dd[_0x7a3b('0x22')]===_0x7a3b('0x23')&&typeof _0x4676dd[_0x7a3b('0x24')]==='undefined';var _0x3eab64=_0x4c7640[_0x7a3b('0x25')];var _0x339447=_0x256b5d?0x0:_0x4676dd[_0x7a3b('0x22')];var _0x999d55=_0x256b5d?_0x4c7640['count']:_0x4676dd[_0x7a3b('0x22')]+_0x4676dd[_0x7a3b('0x24')];var _0x5d6cef;if(_0x999d55>=_0x3eab64){_0x999d55=_0x3eab64;_0x5d6cef=0xc8;}else{_0x5d6cef=0xce;}_0xbcf3e8[_0x7a3b('0x20')](_0x5d6cef);return _0xbcf3e8[_0x7a3b('0x26')]('Content-Range',_0x339447+'-'+_0x999d55+'/'+_0x3eab64)['json'](_0x4c7640);}return null;};}function patchUpdates(_0x3db348){return function(_0x7f951f){try{jsonpatch[_0x7a3b('0x27')](_0x7f951f,_0x3db348,!![]);}catch(_0xf5ed53){return BPromise[_0x7a3b('0x28')](_0xf5ed53);}return _0x7f951f[_0x7a3b('0x29')]();};}function saveUpdates(_0x11d907,_0x47b61c){return function(_0x35f313){if(_0x35f313){return _0x35f313['update'](_0x11d907)[_0x7a3b('0x2a')](function(_0x662259){return _0x662259;});}return null;};}function removeEntity(_0xfa8425,_0x4c2880){return function(_0x47a199){if(_0x47a199){return _0x47a199['destroy']()['then'](function(){_0xfa8425[_0x7a3b('0x20')](0xcc)[_0x7a3b('0x21')]();});}};}function handleEntityNotFound(_0x3a6006,_0x5ed5f6){return function(_0x1aca4c){if(!_0x1aca4c){_0x3a6006[_0x7a3b('0x1f')](0x194);}return _0x1aca4c;};}function handleError(_0x588a7c,_0x4aa686){_0x4aa686=_0x4aa686||0x1f4;return function(_0x413082){logger[_0x7a3b('0x2b')](_0x413082[_0x7a3b('0x2c')]);if(_0x413082[_0x7a3b('0x2d')]){delete _0x413082[_0x7a3b('0x2d')];}_0x588a7c[_0x7a3b('0x20')](_0x4aa686)[_0x7a3b('0x2e')](_0x413082);};}exports[_0x7a3b('0x2f')]=function(_0x2b46cc,_0x1276b4){var _0x23143e={},_0x4b5552={},_0xa5b603={'count':0x0,'rows':[]};var _0xe465dc=_[_0x7a3b('0x30')](db[_0x7a3b('0x31')]['rawAttributes'],function(_0x1209f1){return{'name':_0x1209f1[_0x7a3b('0x32')],'type':_0x1209f1[_0x7a3b('0x33')][_0x7a3b('0x34')]};});_0x4b5552[_0x7a3b('0x35')]=_[_0x7a3b('0x30')](_0xe465dc,_0x7a3b('0x2d'));_0x4b5552['query']=_[_0x7a3b('0x36')](_0x2b46cc[_0x7a3b('0x37')]);_0x4b5552[_0x7a3b('0x38')]=_['intersection'](_0x4b5552['model'],_0x4b5552[_0x7a3b('0x37')]);_0x23143e[_0x7a3b('0x39')]=_[_0x7a3b('0x3a')](_0x4b5552[_0x7a3b('0x35')],qs[_0x7a3b('0x3b')](_0x2b46cc['query'][_0x7a3b('0x3b')]));_0x23143e[_0x7a3b('0x39')]=_0x23143e[_0x7a3b('0x39')][_0x7a3b('0x3c')]?_0x23143e[_0x7a3b('0x39')]:_0x4b5552['model'];if(!_0x2b46cc[_0x7a3b('0x37')][_0x7a3b('0x3d')]('nolimit')){_0x23143e[_0x7a3b('0x24')]=qs['limit'](_0x2b46cc[_0x7a3b('0x37')][_0x7a3b('0x24')]);_0x23143e[_0x7a3b('0x22')]=qs[_0x7a3b('0x22')](_0x2b46cc[_0x7a3b('0x37')]['offset']);}_0x23143e['order']=qs[_0x7a3b('0x3e')](_0x2b46cc[_0x7a3b('0x37')][_0x7a3b('0x3e')]);_0x23143e[_0x7a3b('0x3f')]=qs[_0x7a3b('0x38')](_[_0x7a3b('0x40')](_0x2b46cc['query'],_0x4b5552[_0x7a3b('0x38')]),_0xe465dc);if(_0x2b46cc[_0x7a3b('0x37')][_0x7a3b('0x41')]){_0x23143e[_0x7a3b('0x3f')]=_[_0x7a3b('0x42')](_0x23143e[_0x7a3b('0x3f')],{'$or':_[_0x7a3b('0x30')](_0xe465dc,function(_0x4686ec){if(_0x4686ec[_0x7a3b('0x33')]!==_0x7a3b('0x43')){var _0x2ec40c={};_0x2ec40c[_0x4686ec['name']]={'$like':'%'+_0x2b46cc['query']['filter']+'%'};return _0x2ec40c;}})});}_0x23143e=_[_0x7a3b('0x42')]({},_0x23143e,_0x2b46cc[_0x7a3b('0x44')]);var _0x5f2629={'where':_0x23143e['where']};return db[_0x7a3b('0x31')][_0x7a3b('0x25')](_0x5f2629)[_0x7a3b('0x2a')](function(_0x5e59dd){_0xa5b603['count']=_0x5e59dd;if(_0x2b46cc['query'][_0x7a3b('0x45')]){_0x23143e[_0x7a3b('0x46')]=[{'all':!![]}];}return db[_0x7a3b('0x31')][_0x7a3b('0x47')](_0x23143e);})[_0x7a3b('0x2a')](function(_0x72b6bb){_0xa5b603['rows']=_0x72b6bb;return _0xa5b603;})[_0x7a3b('0x2a')](respondWithFilteredResult(_0x1276b4,_0x23143e))[_0x7a3b('0x48')](handleError(_0x1276b4,null));};exports[_0x7a3b('0x49')]=function(_0x480d48,_0x24e3d4){var _0x3acbf6={'raw':![],'where':{'id':_0x480d48[_0x7a3b('0x4a')]['id']}},_0x2fe912={};_0x2fe912['model']=_[_0x7a3b('0x36')](db[_0x7a3b('0x31')][_0x7a3b('0x4b')]);_0x2fe912['query']=_[_0x7a3b('0x36')](_0x480d48[_0x7a3b('0x37')]);_0x2fe912[_0x7a3b('0x38')]=_[_0x7a3b('0x3a')](_0x2fe912[_0x7a3b('0x35')],_0x2fe912[_0x7a3b('0x37')]);_0x3acbf6[_0x7a3b('0x39')]=_[_0x7a3b('0x3a')](_0x2fe912[_0x7a3b('0x35')],qs[_0x7a3b('0x3b')](_0x480d48[_0x7a3b('0x37')]['fields']));_0x3acbf6[_0x7a3b('0x39')]=_0x3acbf6['attributes'][_0x7a3b('0x3c')]?_0x3acbf6[_0x7a3b('0x39')]:_0x2fe912[_0x7a3b('0x35')];if(_0x480d48[_0x7a3b('0x37')][_0x7a3b('0x45')]){_0x3acbf6['include']=[{'all':!![]}];}_0x3acbf6=_[_0x7a3b('0x42')]({},_0x3acbf6,_0x480d48[_0x7a3b('0x44')]);return db[_0x7a3b('0x31')]['find'](_0x3acbf6)['then'](handleEntityNotFound(_0x24e3d4,null))[_0x7a3b('0x2a')](respondWithResult(_0x24e3d4,null))[_0x7a3b('0x48')](handleError(_0x24e3d4,null));};exports[_0x7a3b('0x4c')]=function(_0x3d5c12,_0x426c0f){return db['Dynamics365Configuration'][_0x7a3b('0x4c')](_0x3d5c12[_0x7a3b('0x4d')],{})['then'](respondWithResult(_0x426c0f,0xc9))[_0x7a3b('0x48')](handleError(_0x426c0f,null));};exports[_0x7a3b('0x4e')]=function(_0x42f992,_0x3bd6af){if(_0x42f992['body']['id']){delete _0x42f992[_0x7a3b('0x4d')]['id'];}return db['Dynamics365Configuration']['find']({'where':{'id':_0x42f992[_0x7a3b('0x4a')]['id']}})[_0x7a3b('0x2a')](handleEntityNotFound(_0x3bd6af,null))[_0x7a3b('0x2a')](saveUpdates(_0x42f992[_0x7a3b('0x4d')],null))[_0x7a3b('0x2a')](respondWithResult(_0x3bd6af,null))[_0x7a3b('0x48')](handleError(_0x3bd6af,null));};exports['destroy']=function(_0x3da354,_0x28bb1e){return db[_0x7a3b('0x31')][_0x7a3b('0x4f')]({'where':{'id':_0x3da354[_0x7a3b('0x4a')]['id']}})[_0x7a3b('0x2a')](handleEntityNotFound(_0x28bb1e,null))[_0x7a3b('0x2a')](removeEntity(_0x28bb1e,null))[_0x7a3b('0x48')](handleError(_0x28bb1e,null));};exports[_0x7a3b('0x50')]=function(_0x5cb9c1,_0x1e7e8a,_0x4a204e){var _0x21fc18={};var _0xb5727e={};var _0x263487;var _0x2b5ce3;return db['Dynamics365Configuration'][_0x7a3b('0x51')]({'where':{'id':_0x5cb9c1['params']['id']}})[_0x7a3b('0x2a')](handleEntityNotFound(_0x1e7e8a,null))['then'](function(_0x5cba96){if(_0x5cba96){_0x263487=_0x5cba96;_0xb5727e[_0x7a3b('0x35')]=_[_0x7a3b('0x36')](db[_0x7a3b('0x52')][_0x7a3b('0x4b')]);_0xb5727e[_0x7a3b('0x37')]=_[_0x7a3b('0x36')](_0x5cb9c1['query']);_0xb5727e[_0x7a3b('0x38')]=_['intersection'](_0xb5727e[_0x7a3b('0x35')],_0xb5727e[_0x7a3b('0x37')]);_0x21fc18[_0x7a3b('0x39')]=_[_0x7a3b('0x3a')](_0xb5727e['model'],qs[_0x7a3b('0x3b')](_0x5cb9c1[_0x7a3b('0x37')][_0x7a3b('0x3b')]));_0x21fc18['attributes']=_0x21fc18['attributes'][_0x7a3b('0x3c')]?_0x21fc18[_0x7a3b('0x39')]:_0xb5727e[_0x7a3b('0x35')];_0x21fc18[_0x7a3b('0x53')]=qs[_0x7a3b('0x3e')](_0x5cb9c1['query'][_0x7a3b('0x3e')]);_0x21fc18[_0x7a3b('0x3f')]=qs['filters'](_[_0x7a3b('0x40')](_0x5cb9c1[_0x7a3b('0x37')],_0xb5727e['filters']));if(_0x5cb9c1[_0x7a3b('0x37')][_0x7a3b('0x41')]){_0x21fc18['where']=_[_0x7a3b('0x42')](_0x21fc18['where'],{'$or':_[_0x7a3b('0x30')](_0x21fc18['attributes'],function(_0x32500d){var _0x416c48={};_0x416c48[_0x32500d]={'$like':'%'+_0x5cb9c1[_0x7a3b('0x37')][_0x7a3b('0x41')]+'%'};return _0x416c48;})});}_0x21fc18=_['merge']({},_0x21fc18,_0x5cb9c1[_0x7a3b('0x44')]);return _0x263487[_0x7a3b('0x50')](_0x21fc18);}})['then'](function(_0x27c100){if(_0x27c100){_0x2b5ce3=_0x27c100[_0x7a3b('0x3c')];if(!_0x5cb9c1['query'][_0x7a3b('0x3d')]('nolimit')){_0x21fc18[_0x7a3b('0x24')]=qs[_0x7a3b('0x24')](_0x5cb9c1['query'][_0x7a3b('0x24')]);_0x21fc18[_0x7a3b('0x22')]=qs[_0x7a3b('0x22')](_0x5cb9c1[_0x7a3b('0x37')][_0x7a3b('0x22')]);}return _0x263487[_0x7a3b('0x50')](_0x21fc18);}})[_0x7a3b('0x2a')](function(_0x23332e){if(_0x23332e){return _0x23332e?{'count':_0x2b5ce3,'rows':_0x23332e}:null;}})['then'](respondWithResult(_0x1e7e8a,null))[_0x7a3b('0x48')](handleError(_0x1e7e8a,null));};exports[_0x7a3b('0x54')]=function(_0x39dae7,_0x558117,_0x47ddb7){var _0x185e65={};var _0x37367d={};var _0x3a5286;var _0x4754b0;return db[_0x7a3b('0x31')]['findOne']({'where':{'id':_0x39dae7[_0x7a3b('0x4a')]['id']}})[_0x7a3b('0x2a')](handleEntityNotFound(_0x558117,null))[_0x7a3b('0x2a')](function(_0xbf09b8){if(_0xbf09b8){_0x3a5286=_0xbf09b8;_0x37367d[_0x7a3b('0x35')]=_['keys'](db[_0x7a3b('0x52')][_0x7a3b('0x4b')]);_0x37367d['query']=_[_0x7a3b('0x36')](_0x39dae7[_0x7a3b('0x37')]);_0x37367d[_0x7a3b('0x38')]=_[_0x7a3b('0x3a')](_0x37367d['model'],_0x37367d['query']);_0x185e65[_0x7a3b('0x39')]=_['intersection'](_0x37367d[_0x7a3b('0x35')],qs[_0x7a3b('0x3b')](_0x39dae7[_0x7a3b('0x37')][_0x7a3b('0x3b')]));_0x185e65['attributes']=_0x185e65['attributes'][_0x7a3b('0x3c')]?_0x185e65[_0x7a3b('0x39')]:_0x37367d[_0x7a3b('0x35')];_0x185e65[_0x7a3b('0x53')]=qs[_0x7a3b('0x3e')](_0x39dae7[_0x7a3b('0x37')][_0x7a3b('0x3e')]);_0x185e65[_0x7a3b('0x3f')]=qs[_0x7a3b('0x38')](_[_0x7a3b('0x40')](_0x39dae7[_0x7a3b('0x37')],_0x37367d['filters']));if(_0x39dae7[_0x7a3b('0x37')]['filter']){_0x185e65['where']=_[_0x7a3b('0x42')](_0x185e65[_0x7a3b('0x3f')],{'$or':_[_0x7a3b('0x30')](_0x185e65[_0x7a3b('0x39')],function(_0x3a1d8d){var _0x3873a0={};_0x3873a0[_0x3a1d8d]={'$like':'%'+_0x39dae7['query'][_0x7a3b('0x41')]+'%'};return _0x3873a0;})});}_0x185e65=_[_0x7a3b('0x42')]({},_0x185e65,_0x39dae7[_0x7a3b('0x44')]);return _0x3a5286[_0x7a3b('0x54')](_0x185e65);}})[_0x7a3b('0x2a')](function(_0x51968c){if(_0x51968c){_0x4754b0=_0x51968c['length'];if(!_0x39dae7[_0x7a3b('0x37')][_0x7a3b('0x3d')](_0x7a3b('0x55'))){_0x185e65[_0x7a3b('0x24')]=qs['limit'](_0x39dae7[_0x7a3b('0x37')][_0x7a3b('0x24')]);_0x185e65['offset']=qs[_0x7a3b('0x22')](_0x39dae7['query'][_0x7a3b('0x22')]);}return _0x3a5286[_0x7a3b('0x54')](_0x185e65);}})['then'](function(_0x21985c){if(_0x21985c){return _0x21985c?{'count':_0x4754b0,'rows':_0x21985c}:null;}})[_0x7a3b('0x2a')](respondWithResult(_0x558117,null))[_0x7a3b('0x48')](handleError(_0x558117,null));};exports[_0x7a3b('0x56')]=function(_0x1ccc3b,_0x7750bc,_0x4824f3){var _0x377d9b={};var _0x168e2d={};var _0x59e11d;var _0xfe9a22;return db[_0x7a3b('0x31')][_0x7a3b('0x51')]({'where':{'id':_0x1ccc3b[_0x7a3b('0x4a')]['id']}})[_0x7a3b('0x2a')](handleEntityNotFound(_0x7750bc,null))['then'](function(_0x18d7af){if(_0x18d7af){_0x59e11d=_0x18d7af;_0x168e2d[_0x7a3b('0x35')]=_[_0x7a3b('0x36')](db[_0x7a3b('0x52')][_0x7a3b('0x4b')]);_0x168e2d[_0x7a3b('0x37')]=_[_0x7a3b('0x36')](_0x1ccc3b[_0x7a3b('0x37')]);_0x168e2d['filters']=_[_0x7a3b('0x3a')](_0x168e2d[_0x7a3b('0x35')],_0x168e2d['query']);_0x377d9b[_0x7a3b('0x39')]=_[_0x7a3b('0x3a')](_0x168e2d[_0x7a3b('0x35')],qs[_0x7a3b('0x3b')](_0x1ccc3b['query'][_0x7a3b('0x3b')]));_0x377d9b['attributes']=_0x377d9b[_0x7a3b('0x39')]['length']?_0x377d9b['attributes']:_0x168e2d['model'];_0x377d9b[_0x7a3b('0x53')]=qs[_0x7a3b('0x3e')](_0x1ccc3b[_0x7a3b('0x37')][_0x7a3b('0x3e')]);_0x377d9b[_0x7a3b('0x3f')]=qs[_0x7a3b('0x38')](_['pick'](_0x1ccc3b[_0x7a3b('0x37')],_0x168e2d[_0x7a3b('0x38')]));if(_0x1ccc3b[_0x7a3b('0x37')]['filter']){_0x377d9b[_0x7a3b('0x3f')]=_['merge'](_0x377d9b[_0x7a3b('0x3f')],{'$or':_['map'](_0x377d9b['attributes'],function(_0x40dcf6){var _0x638aec={};_0x638aec[_0x40dcf6]={'$like':'%'+_0x1ccc3b[_0x7a3b('0x37')][_0x7a3b('0x41')]+'%'};return _0x638aec;})});}_0x377d9b=_[_0x7a3b('0x42')]({},_0x377d9b,_0x1ccc3b[_0x7a3b('0x44')]);return _0x59e11d[_0x7a3b('0x56')](_0x377d9b);}})[_0x7a3b('0x2a')](function(_0x4767f0){if(_0x4767f0){_0xfe9a22=_0x4767f0[_0x7a3b('0x3c')];if(!_0x1ccc3b[_0x7a3b('0x37')][_0x7a3b('0x3d')](_0x7a3b('0x55'))){_0x377d9b['limit']=qs['limit'](_0x1ccc3b[_0x7a3b('0x37')][_0x7a3b('0x24')]);_0x377d9b[_0x7a3b('0x22')]=qs['offset'](_0x1ccc3b[_0x7a3b('0x37')]['offset']);}return _0x59e11d[_0x7a3b('0x56')](_0x377d9b);}})['then'](function(_0x16d6b8){if(_0x16d6b8){return _0x16d6b8?{'count':_0xfe9a22,'rows':_0x16d6b8}:null;}})['then'](respondWithResult(_0x7750bc,null))[_0x7a3b('0x48')](handleError(_0x7750bc,null));};