a675ae106d23015065ba1005db58bd33344dc5da
[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 _0x2e09=['papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','end','undefined','offset','limit','set','Content-Range','json','apply','save','update','then','destroy','error','stack','name','send','index','map','Dynamics365Configuration','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','model','fields','length','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','count','include','findAll','catch','show','params','includeAll','find','body','getFields','findOne','Dynamics365Field','hasOwnProperty','order','getSubjects','getDescriptions','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring'];(function(_0x12bfcd,_0x37864a){var _0x2b2c31=function(_0x464634){while(--_0x464634){_0x12bfcd['push'](_0x12bfcd['shift']());}};_0x2b2c31(++_0x37864a);}(_0x2e09,0x1e7));var _0x92e0=function(_0xd42315,_0x5cf89a){_0xd42315=_0xd42315-0x0;var _0x311ad8=_0x2e09[_0xd42315];return _0x311ad8;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x92e0('0x0'));var zipdir=require(_0x92e0('0x1'));var jsonpatch=require(_0x92e0('0x2'));var rp=require(_0x92e0('0x3'));var moment=require(_0x92e0('0x4'));var BPromise=require(_0x92e0('0x5'));var Mustache=require(_0x92e0('0x6'));var util=require(_0x92e0('0x7'));var path=require(_0x92e0('0x8'));var sox=require(_0x92e0('0x9'));var csv=require(_0x92e0('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x92e0('0xb'));var _=require(_0x92e0('0xc'));var squel=require(_0x92e0('0xd'));var crypto=require(_0x92e0('0xe'));var jsforce=require(_0x92e0('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x92e0('0xa'));var querystring=require(_0x92e0('0x10'));var Papa=require(_0x92e0('0x11'));var Redis=require(_0x92e0('0x12'));var authService=require(_0x92e0('0x13'));var qs=require(_0x92e0('0x14'));var as=require(_0x92e0('0x15'));var hardwareService=require(_0x92e0('0x16'));var logger=require(_0x92e0('0x17'))(_0x92e0('0x18'));var utils=require(_0x92e0('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x92e0('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x402174,_0x926001){_0x926001=_0x926001||0xcc;return function(_0x214806){if(_0x214806){return _0x402174[_0x92e0('0x1b')](_0x926001);}return _0x402174[_0x92e0('0x1c')](_0x926001)[_0x92e0('0x1d')]();};}function respondWithResult(_0x455fc5,_0x27b0a5){_0x27b0a5=_0x27b0a5||0xc8;return function(_0x3f4fdf){if(_0x3f4fdf){return _0x455fc5[_0x92e0('0x1c')](_0x27b0a5)['json'](_0x3f4fdf);}};}function respondWithFilteredResult(_0x548dd9,_0x574396){return function(_0x1cee0f){if(_0x1cee0f){var _0x1adf11=typeof _0x574396['offset']==='undefined'&&typeof _0x574396['limit']===_0x92e0('0x1e');var _0x100c1e=_0x1cee0f['count'];var _0x14a355=_0x1adf11?0x0:_0x574396[_0x92e0('0x1f')];var _0x1f3bd=_0x1adf11?_0x1cee0f['count']:_0x574396[_0x92e0('0x1f')]+_0x574396[_0x92e0('0x20')];var _0x438744;if(_0x1f3bd>=_0x100c1e){_0x1f3bd=_0x100c1e;_0x438744=0xc8;}else{_0x438744=0xce;}_0x548dd9[_0x92e0('0x1c')](_0x438744);return _0x548dd9[_0x92e0('0x21')](_0x92e0('0x22'),_0x14a355+'-'+_0x1f3bd+'/'+_0x100c1e)[_0x92e0('0x23')](_0x1cee0f);}return null;};}function patchUpdates(_0xc1833b){return function(_0x32b588){try{jsonpatch[_0x92e0('0x24')](_0x32b588,_0xc1833b,!![]);}catch(_0x17dfe6){return BPromise['reject'](_0x17dfe6);}return _0x32b588[_0x92e0('0x25')]();};}function saveUpdates(_0x27b9cf,_0x49aa14){return function(_0x1d8758){if(_0x1d8758){return _0x1d8758[_0x92e0('0x26')](_0x27b9cf)[_0x92e0('0x27')](function(_0x205501){return _0x205501;});}return null;};}function removeEntity(_0x2c953c,_0x5e8fc0){return function(_0x148de4){if(_0x148de4){return _0x148de4[_0x92e0('0x28')]()['then'](function(){_0x2c953c[_0x92e0('0x1c')](0xcc)[_0x92e0('0x1d')]();});}};}function handleEntityNotFound(_0x31b5ca,_0x54e96f){return function(_0x37e8c7){if(!_0x37e8c7){_0x31b5ca['sendStatus'](0x194);}return _0x37e8c7;};}function handleError(_0x1815bc,_0x299788){_0x299788=_0x299788||0x1f4;return function(_0x32d72a){logger[_0x92e0('0x29')](_0x32d72a[_0x92e0('0x2a')]);if(_0x32d72a['name']){delete _0x32d72a[_0x92e0('0x2b')];}_0x1815bc[_0x92e0('0x1c')](_0x299788)[_0x92e0('0x2c')](_0x32d72a);};}exports[_0x92e0('0x2d')]=function(_0x273e59,_0x23b4e3){var _0x2f0eee={},_0x265f6c={},_0x305ed5={'count':0x0,'rows':[]};var _0xb538ed=_[_0x92e0('0x2e')](db[_0x92e0('0x2f')][_0x92e0('0x30')],function(_0x2b83b2){return{'name':_0x2b83b2[_0x92e0('0x31')],'type':_0x2b83b2[_0x92e0('0x32')][_0x92e0('0x33')]};});_0x265f6c['model']=_[_0x92e0('0x2e')](_0xb538ed,_0x92e0('0x2b'));_0x265f6c[_0x92e0('0x34')]=_[_0x92e0('0x35')](_0x273e59[_0x92e0('0x34')]);_0x265f6c[_0x92e0('0x36')]=_[_0x92e0('0x37')](_0x265f6c['model'],_0x265f6c[_0x92e0('0x34')]);_0x2f0eee[_0x92e0('0x38')]=_[_0x92e0('0x37')](_0x265f6c[_0x92e0('0x39')],qs[_0x92e0('0x3a')](_0x273e59['query'][_0x92e0('0x3a')]));_0x2f0eee['attributes']=_0x2f0eee[_0x92e0('0x38')][_0x92e0('0x3b')]?_0x2f0eee['attributes']:_0x265f6c[_0x92e0('0x39')];if(!_0x273e59['query']['hasOwnProperty'](_0x92e0('0x3c'))){_0x2f0eee[_0x92e0('0x20')]=qs[_0x92e0('0x20')](_0x273e59['query'][_0x92e0('0x20')]);_0x2f0eee[_0x92e0('0x1f')]=qs[_0x92e0('0x1f')](_0x273e59['query'][_0x92e0('0x1f')]);}_0x2f0eee['order']=qs[_0x92e0('0x3d')](_0x273e59[_0x92e0('0x34')]['sort']);_0x2f0eee[_0x92e0('0x3e')]=qs[_0x92e0('0x36')](_[_0x92e0('0x3f')](_0x273e59['query'],_0x265f6c[_0x92e0('0x36')]),_0xb538ed);if(_0x273e59[_0x92e0('0x34')][_0x92e0('0x40')]){_0x2f0eee[_0x92e0('0x3e')]=_[_0x92e0('0x41')](_0x2f0eee[_0x92e0('0x3e')],{'$or':_[_0x92e0('0x2e')](_0xb538ed,function(_0x154f9f){if(_0x154f9f[_0x92e0('0x32')]!==_0x92e0('0x42')){var _0x20a02a={};_0x20a02a[_0x154f9f['name']]={'$like':'%'+_0x273e59['query'][_0x92e0('0x40')]+'%'};return _0x20a02a;}})});}_0x2f0eee=_[_0x92e0('0x41')]({},_0x2f0eee,_0x273e59[_0x92e0('0x43')]);var _0x8504b4={'where':_0x2f0eee[_0x92e0('0x3e')]};return db['Dynamics365Configuration'][_0x92e0('0x44')](_0x8504b4)[_0x92e0('0x27')](function(_0x9cdb85){_0x305ed5[_0x92e0('0x44')]=_0x9cdb85;if(_0x273e59[_0x92e0('0x34')]['includeAll']){_0x2f0eee[_0x92e0('0x45')]=[{'all':!![]}];}return db[_0x92e0('0x2f')][_0x92e0('0x46')](_0x2f0eee);})[_0x92e0('0x27')](function(_0x4d0bd5){_0x305ed5['rows']=_0x4d0bd5;return _0x305ed5;})[_0x92e0('0x27')](respondWithFilteredResult(_0x23b4e3,_0x2f0eee))[_0x92e0('0x47')](handleError(_0x23b4e3,null));};exports[_0x92e0('0x48')]=function(_0x37d4b7,_0x3777b5){var _0x3b2c85={'raw':![],'where':{'id':_0x37d4b7[_0x92e0('0x49')]['id']}},_0x315074={};_0x315074[_0x92e0('0x39')]=_[_0x92e0('0x35')](db['Dynamics365Configuration'][_0x92e0('0x30')]);_0x315074['query']=_[_0x92e0('0x35')](_0x37d4b7['query']);_0x315074['filters']=_[_0x92e0('0x37')](_0x315074[_0x92e0('0x39')],_0x315074['query']);_0x3b2c85[_0x92e0('0x38')]=_[_0x92e0('0x37')](_0x315074['model'],qs[_0x92e0('0x3a')](_0x37d4b7[_0x92e0('0x34')][_0x92e0('0x3a')]));_0x3b2c85[_0x92e0('0x38')]=_0x3b2c85['attributes']['length']?_0x3b2c85[_0x92e0('0x38')]:_0x315074[_0x92e0('0x39')];if(_0x37d4b7[_0x92e0('0x34')][_0x92e0('0x4a')]){_0x3b2c85[_0x92e0('0x45')]=[{'all':!![]}];}_0x3b2c85=_[_0x92e0('0x41')]({},_0x3b2c85,_0x37d4b7[_0x92e0('0x43')]);return db['Dynamics365Configuration'][_0x92e0('0x4b')](_0x3b2c85)['then'](handleEntityNotFound(_0x3777b5,null))['then'](respondWithResult(_0x3777b5,null))[_0x92e0('0x47')](handleError(_0x3777b5,null));};exports['create']=function(_0xc867a0,_0x43f4f2){return db[_0x92e0('0x2f')]['create'](_0xc867a0[_0x92e0('0x4c')],{})[_0x92e0('0x27')](respondWithResult(_0x43f4f2,0xc9))['catch'](handleError(_0x43f4f2,null));};exports[_0x92e0('0x26')]=function(_0x4ce76a,_0x4f07b9){if(_0x4ce76a[_0x92e0('0x4c')]['id']){delete _0x4ce76a['body']['id'];}return db['Dynamics365Configuration'][_0x92e0('0x4b')]({'where':{'id':_0x4ce76a[_0x92e0('0x49')]['id']}})['then'](handleEntityNotFound(_0x4f07b9,null))[_0x92e0('0x27')](saveUpdates(_0x4ce76a[_0x92e0('0x4c')],null))[_0x92e0('0x27')](respondWithResult(_0x4f07b9,null))[_0x92e0('0x47')](handleError(_0x4f07b9,null));};exports[_0x92e0('0x28')]=function(_0x2e67c1,_0x1bad55){return db[_0x92e0('0x2f')][_0x92e0('0x4b')]({'where':{'id':_0x2e67c1[_0x92e0('0x49')]['id']}})[_0x92e0('0x27')](handleEntityNotFound(_0x1bad55,null))[_0x92e0('0x27')](removeEntity(_0x1bad55,null))['catch'](handleError(_0x1bad55,null));};exports[_0x92e0('0x4d')]=function(_0x7c5f72,_0x5042a6,_0x1f7be4){var _0x395c70={};var _0x403115={};var _0x3c8909;var _0x22fa60;return db[_0x92e0('0x2f')][_0x92e0('0x4e')]({'where':{'id':_0x7c5f72[_0x92e0('0x49')]['id']}})['then'](handleEntityNotFound(_0x5042a6,null))[_0x92e0('0x27')](function(_0x285aab){if(_0x285aab){_0x3c8909=_0x285aab;_0x403115[_0x92e0('0x39')]=_[_0x92e0('0x35')](db[_0x92e0('0x4f')][_0x92e0('0x30')]);_0x403115[_0x92e0('0x34')]=_[_0x92e0('0x35')](_0x7c5f72[_0x92e0('0x34')]);_0x403115['filters']=_[_0x92e0('0x37')](_0x403115[_0x92e0('0x39')],_0x403115['query']);_0x395c70[_0x92e0('0x38')]=_[_0x92e0('0x37')](_0x403115[_0x92e0('0x39')],qs['fields'](_0x7c5f72[_0x92e0('0x34')][_0x92e0('0x3a')]));_0x395c70[_0x92e0('0x38')]=_0x395c70[_0x92e0('0x38')][_0x92e0('0x3b')]?_0x395c70['attributes']:_0x403115[_0x92e0('0x39')];_0x395c70['order']=qs[_0x92e0('0x3d')](_0x7c5f72[_0x92e0('0x34')][_0x92e0('0x3d')]);_0x395c70[_0x92e0('0x3e')]=qs[_0x92e0('0x36')](_[_0x92e0('0x3f')](_0x7c5f72[_0x92e0('0x34')],_0x403115[_0x92e0('0x36')]));if(_0x7c5f72['query'][_0x92e0('0x40')]){_0x395c70['where']=_[_0x92e0('0x41')](_0x395c70[_0x92e0('0x3e')],{'$or':_[_0x92e0('0x2e')](_0x395c70[_0x92e0('0x38')],function(_0x5a8806){var _0x3a6982={};_0x3a6982[_0x5a8806]={'$like':'%'+_0x7c5f72[_0x92e0('0x34')]['filter']+'%'};return _0x3a6982;})});}_0x395c70=_[_0x92e0('0x41')]({},_0x395c70,_0x7c5f72[_0x92e0('0x43')]);return _0x3c8909[_0x92e0('0x4d')](_0x395c70);}})['then'](function(_0x294205){if(_0x294205){_0x22fa60=_0x294205[_0x92e0('0x3b')];if(!_0x7c5f72['query'][_0x92e0('0x50')]('nolimit')){_0x395c70['limit']=qs[_0x92e0('0x20')](_0x7c5f72[_0x92e0('0x34')][_0x92e0('0x20')]);_0x395c70[_0x92e0('0x1f')]=qs[_0x92e0('0x1f')](_0x7c5f72[_0x92e0('0x34')][_0x92e0('0x1f')]);}return _0x3c8909[_0x92e0('0x4d')](_0x395c70);}})[_0x92e0('0x27')](function(_0x243d45){if(_0x243d45){return _0x243d45?{'count':_0x22fa60,'rows':_0x243d45}:null;}})[_0x92e0('0x27')](respondWithResult(_0x5042a6,null))['catch'](handleError(_0x5042a6,null));};exports['getSubjects']=function(_0x679ba2,_0x2ee6d2,_0x4aa40a){var _0x795aa5={};var _0x25dbb1={};var _0x546ca6;var _0x2eb834;return db['Dynamics365Configuration'][_0x92e0('0x4e')]({'where':{'id':_0x679ba2[_0x92e0('0x49')]['id']}})['then'](handleEntityNotFound(_0x2ee6d2,null))['then'](function(_0x94f1){if(_0x94f1){_0x546ca6=_0x94f1;_0x25dbb1[_0x92e0('0x39')]=_['keys'](db[_0x92e0('0x4f')]['rawAttributes']);_0x25dbb1[_0x92e0('0x34')]=_[_0x92e0('0x35')](_0x679ba2[_0x92e0('0x34')]);_0x25dbb1[_0x92e0('0x36')]=_[_0x92e0('0x37')](_0x25dbb1['model'],_0x25dbb1[_0x92e0('0x34')]);_0x795aa5[_0x92e0('0x38')]=_[_0x92e0('0x37')](_0x25dbb1[_0x92e0('0x39')],qs['fields'](_0x679ba2[_0x92e0('0x34')][_0x92e0('0x3a')]));_0x795aa5['attributes']=_0x795aa5[_0x92e0('0x38')]['length']?_0x795aa5[_0x92e0('0x38')]:_0x25dbb1['model'];_0x795aa5[_0x92e0('0x51')]=qs[_0x92e0('0x3d')](_0x679ba2[_0x92e0('0x34')][_0x92e0('0x3d')]);_0x795aa5['where']=qs['filters'](_[_0x92e0('0x3f')](_0x679ba2[_0x92e0('0x34')],_0x25dbb1[_0x92e0('0x36')]));if(_0x679ba2['query'][_0x92e0('0x40')]){_0x795aa5['where']=_['merge'](_0x795aa5[_0x92e0('0x3e')],{'$or':_[_0x92e0('0x2e')](_0x795aa5[_0x92e0('0x38')],function(_0x59a0a6){var _0x3c42c6={};_0x3c42c6[_0x59a0a6]={'$like':'%'+_0x679ba2[_0x92e0('0x34')][_0x92e0('0x40')]+'%'};return _0x3c42c6;})});}_0x795aa5=_[_0x92e0('0x41')]({},_0x795aa5,_0x679ba2['options']);return _0x546ca6[_0x92e0('0x52')](_0x795aa5);}})[_0x92e0('0x27')](function(_0x5015f3){if(_0x5015f3){_0x2eb834=_0x5015f3[_0x92e0('0x3b')];if(!_0x679ba2[_0x92e0('0x34')]['hasOwnProperty']('nolimit')){_0x795aa5['limit']=qs[_0x92e0('0x20')](_0x679ba2[_0x92e0('0x34')]['limit']);_0x795aa5[_0x92e0('0x1f')]=qs[_0x92e0('0x1f')](_0x679ba2[_0x92e0('0x34')][_0x92e0('0x1f')]);}return _0x546ca6[_0x92e0('0x52')](_0x795aa5);}})[_0x92e0('0x27')](function(_0x27173d){if(_0x27173d){return _0x27173d?{'count':_0x2eb834,'rows':_0x27173d}:null;}})[_0x92e0('0x27')](respondWithResult(_0x2ee6d2,null))[_0x92e0('0x47')](handleError(_0x2ee6d2,null));};exports[_0x92e0('0x53')]=function(_0x45c652,_0x279e4b,_0x1dc99f){var _0x128ae4={};var _0x3bf6c1={};var _0x56e378;var _0xf1b2b1;return db[_0x92e0('0x2f')][_0x92e0('0x4e')]({'where':{'id':_0x45c652[_0x92e0('0x49')]['id']}})[_0x92e0('0x27')](handleEntityNotFound(_0x279e4b,null))[_0x92e0('0x27')](function(_0x33dcb5){if(_0x33dcb5){_0x56e378=_0x33dcb5;_0x3bf6c1[_0x92e0('0x39')]=_[_0x92e0('0x35')](db['Dynamics365Field']['rawAttributes']);_0x3bf6c1[_0x92e0('0x34')]=_[_0x92e0('0x35')](_0x45c652[_0x92e0('0x34')]);_0x3bf6c1[_0x92e0('0x36')]=_[_0x92e0('0x37')](_0x3bf6c1[_0x92e0('0x39')],_0x3bf6c1[_0x92e0('0x34')]);_0x128ae4[_0x92e0('0x38')]=_[_0x92e0('0x37')](_0x3bf6c1[_0x92e0('0x39')],qs['fields'](_0x45c652['query']['fields']));_0x128ae4[_0x92e0('0x38')]=_0x128ae4[_0x92e0('0x38')][_0x92e0('0x3b')]?_0x128ae4[_0x92e0('0x38')]:_0x3bf6c1[_0x92e0('0x39')];_0x128ae4[_0x92e0('0x51')]=qs['sort'](_0x45c652[_0x92e0('0x34')][_0x92e0('0x3d')]);_0x128ae4['where']=qs['filters'](_[_0x92e0('0x3f')](_0x45c652[_0x92e0('0x34')],_0x3bf6c1[_0x92e0('0x36')]));if(_0x45c652[_0x92e0('0x34')][_0x92e0('0x40')]){_0x128ae4[_0x92e0('0x3e')]=_['merge'](_0x128ae4[_0x92e0('0x3e')],{'$or':_['map'](_0x128ae4['attributes'],function(_0x24a90a){var _0xb19862={};_0xb19862[_0x24a90a]={'$like':'%'+_0x45c652['query'][_0x92e0('0x40')]+'%'};return _0xb19862;})});}_0x128ae4=_[_0x92e0('0x41')]({},_0x128ae4,_0x45c652[_0x92e0('0x43')]);return _0x56e378['getDescriptions'](_0x128ae4);}})['then'](function(_0x594a7e){if(_0x594a7e){_0xf1b2b1=_0x594a7e[_0x92e0('0x3b')];if(!_0x45c652[_0x92e0('0x34')][_0x92e0('0x50')](_0x92e0('0x3c'))){_0x128ae4[_0x92e0('0x20')]=qs['limit'](_0x45c652[_0x92e0('0x34')][_0x92e0('0x20')]);_0x128ae4[_0x92e0('0x1f')]=qs[_0x92e0('0x1f')](_0x45c652[_0x92e0('0x34')][_0x92e0('0x1f')]);}return _0x56e378[_0x92e0('0x53')](_0x128ae4);}})[_0x92e0('0x27')](function(_0x3880dd){if(_0x3880dd){return _0x3880dd?{'count':_0xf1b2b1,'rows':_0x3880dd}:null;}})['then'](respondWithResult(_0x279e4b,null))[_0x92e0('0x47')](handleError(_0x279e4b,null));};