e28183ae2a470377f6b0d807da7ee32221e0334a
[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 _0x5840=['rimraf','zip-dir','request-promise','moment','bluebird','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','status','send','index','Dynamics365Configuration','rawAttributes','type','key','map','name','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','query','sort','where','filter','VIRTUAL','merge','options','includeAll','include','rows','catch','show','find','create','body','params','findOne','pick','getFields','getSubjects','Dynamics365Field','nolimit','getDescriptions','order','eml-format'];(function(_0x13a2d9,_0x562975){var _0x189d24=function(_0x21dedc){while(--_0x21dedc){_0x13a2d9['push'](_0x13a2d9['shift']());}};_0x189d24(++_0x562975);}(_0x5840,0xec));var _0x0584=function(_0x1c57ea,_0x332559){_0x1c57ea=_0x1c57ea-0x0;var _0x3a976e=_0x5840[_0x1c57ea];return _0x3a976e;};'use strict';var emlformat=require(_0x0584('0x0'));var rimraf=require(_0x0584('0x1'));var zipdir=require(_0x0584('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0584('0x3'));var moment=require(_0x0584('0x4'));var BPromise=require(_0x0584('0x5'));var Mustache=require('mustache');var util=require(_0x0584('0x6'));var path=require(_0x0584('0x7'));var sox=require('sox');var csv=require(_0x0584('0x8'));var ejs=require(_0x0584('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0584('0xa'));var squel=require(_0x0584('0xb'));var crypto=require('crypto');var jsforce=require(_0x0584('0xc'));var deskjs=require(_0x0584('0xd'));var toCsv=require(_0x0584('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x0584('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x0584('0xf'));var hardwareService=require(_0x0584('0x10'));var logger=require(_0x0584('0x11'))('api');var utils=require(_0x0584('0x12'));var config=require(_0x0584('0x13'));var licenseUtil=require(_0x0584('0x14'));var db=require(_0x0584('0x15'))['db'];function respondWithStatusCode(_0x30fec1,_0x50a0fe){_0x50a0fe=_0x50a0fe||0xcc;return function(_0x8d957d){if(_0x8d957d){return _0x30fec1['sendStatus'](_0x50a0fe);}return _0x30fec1['status'](_0x50a0fe)[_0x0584('0x16')]();};}function respondWithResult(_0x53f0c0,_0x11bb05){_0x11bb05=_0x11bb05||0xc8;return function(_0x55d131){if(_0x55d131){return _0x53f0c0['status'](_0x11bb05)[_0x0584('0x17')](_0x55d131);}};}function respondWithFilteredResult(_0x51e000,_0x232f06){return function(_0x1d470d){if(_0x1d470d){var _0x3c1c8b=typeof _0x232f06[_0x0584('0x18')]===_0x0584('0x19')&&typeof _0x232f06[_0x0584('0x1a')]===_0x0584('0x19');var _0x122776=_0x1d470d[_0x0584('0x1b')];var _0x4cd5e8=_0x3c1c8b?0x0:_0x232f06[_0x0584('0x18')];var _0x285aed=_0x3c1c8b?_0x1d470d['count']:_0x232f06[_0x0584('0x18')]+_0x232f06[_0x0584('0x1a')];var _0x52e2fa;if(_0x285aed>=_0x122776){_0x285aed=_0x122776;_0x52e2fa=0xc8;}else{_0x52e2fa=0xce;}_0x51e000['status'](_0x52e2fa);return _0x51e000['set'](_0x0584('0x1c'),_0x4cd5e8+'-'+_0x285aed+'/'+_0x122776)['json'](_0x1d470d);}return null;};}function patchUpdates(_0x4c2db2){return function(_0x235a2e){try{jsonpatch[_0x0584('0x1d')](_0x235a2e,_0x4c2db2,!![]);}catch(_0x50fba1){return BPromise[_0x0584('0x1e')](_0x50fba1);}return _0x235a2e[_0x0584('0x1f')]();};}function saveUpdates(_0x480793,_0x9c53c0){return function(_0x415657){if(_0x415657){return _0x415657[_0x0584('0x20')](_0x480793)[_0x0584('0x21')](function(_0x4ae180){return _0x4ae180;});}return null;};}function removeEntity(_0x4ffadd,_0x50db66){return function(_0x2a7967){if(_0x2a7967){return _0x2a7967[_0x0584('0x22')]()[_0x0584('0x21')](function(){_0x4ffadd['status'](0xcc)[_0x0584('0x16')]();});}};}function handleEntityNotFound(_0x4fc911,_0xef27c0){return function(_0x2132b2){if(!_0x2132b2){_0x4fc911[_0x0584('0x23')](0x194);}return _0x2132b2;};}function handleError(_0x589f3a,_0x5d3ecb){_0x5d3ecb=_0x5d3ecb||0x1f4;return function(_0xa2f9c9){logger[_0x0584('0x24')](_0xa2f9c9[_0x0584('0x25')]);if(_0xa2f9c9['name']){delete _0xa2f9c9['name'];}_0x589f3a[_0x0584('0x26')](_0x5d3ecb)[_0x0584('0x27')](_0xa2f9c9);};}exports[_0x0584('0x28')]=function(_0x51b19f,_0x4ff912){var _0x461e9c={},_0x534599={},_0x455480={'count':0x0,'rows':[]};var _0x3c18b2=_['map'](db[_0x0584('0x29')][_0x0584('0x2a')],function(_0x2867ee){return{'name':_0x2867ee['fieldName'],'type':_0x2867ee[_0x0584('0x2b')][_0x0584('0x2c')]};});_0x534599['model']=_[_0x0584('0x2d')](_0x3c18b2,_0x0584('0x2e'));_0x534599['query']=_[_0x0584('0x2f')](_0x51b19f['query']);_0x534599[_0x0584('0x30')]=_[_0x0584('0x31')](_0x534599[_0x0584('0x32')],_0x534599['query']);_0x461e9c['attributes']=_[_0x0584('0x31')](_0x534599[_0x0584('0x32')],qs[_0x0584('0x33')](_0x51b19f['query'][_0x0584('0x33')]));_0x461e9c[_0x0584('0x34')]=_0x461e9c[_0x0584('0x34')][_0x0584('0x35')]?_0x461e9c[_0x0584('0x34')]:_0x534599[_0x0584('0x32')];if(!_0x51b19f['query'][_0x0584('0x36')]('nolimit')){_0x461e9c[_0x0584('0x1a')]=qs[_0x0584('0x1a')](_0x51b19f['query'][_0x0584('0x1a')]);_0x461e9c[_0x0584('0x18')]=qs['offset'](_0x51b19f[_0x0584('0x37')][_0x0584('0x18')]);}_0x461e9c['order']=qs['sort'](_0x51b19f['query'][_0x0584('0x38')]);_0x461e9c[_0x0584('0x39')]=qs['filters'](_['pick'](_0x51b19f['query'],_0x534599['filters']),_0x3c18b2);if(_0x51b19f[_0x0584('0x37')][_0x0584('0x3a')]){_0x461e9c[_0x0584('0x39')]=_['merge'](_0x461e9c[_0x0584('0x39')],{'$or':_['map'](_0x3c18b2,function(_0x11ac5c){if(_0x11ac5c[_0x0584('0x2b')]!==_0x0584('0x3b')){var _0x3e4a82={};_0x3e4a82[_0x11ac5c[_0x0584('0x2e')]]={'$like':'%'+_0x51b19f['query'][_0x0584('0x3a')]+'%'};return _0x3e4a82;}})});}_0x461e9c=_[_0x0584('0x3c')]({},_0x461e9c,_0x51b19f[_0x0584('0x3d')]);var _0x208cb6={'where':_0x461e9c[_0x0584('0x39')]};return db[_0x0584('0x29')][_0x0584('0x1b')](_0x208cb6)['then'](function(_0x59af05){_0x455480[_0x0584('0x1b')]=_0x59af05;if(_0x51b19f[_0x0584('0x37')][_0x0584('0x3e')]){_0x461e9c[_0x0584('0x3f')]=[{'all':!![]}];}return db[_0x0584('0x29')]['findAll'](_0x461e9c);})[_0x0584('0x21')](function(_0x3d381d){_0x455480[_0x0584('0x40')]=_0x3d381d;return _0x455480;})[_0x0584('0x21')](respondWithFilteredResult(_0x4ff912,_0x461e9c))[_0x0584('0x41')](handleError(_0x4ff912,null));};exports[_0x0584('0x42')]=function(_0x586f73,_0x48d534){var _0x5cb9fb={'raw':![],'where':{'id':_0x586f73['params']['id']}},_0x33a62a={};_0x33a62a['model']=_[_0x0584('0x2f')](db['Dynamics365Configuration'][_0x0584('0x2a')]);_0x33a62a['query']=_[_0x0584('0x2f')](_0x586f73['query']);_0x33a62a[_0x0584('0x30')]=_['intersection'](_0x33a62a[_0x0584('0x32')],_0x33a62a[_0x0584('0x37')]);_0x5cb9fb[_0x0584('0x34')]=_[_0x0584('0x31')](_0x33a62a[_0x0584('0x32')],qs['fields'](_0x586f73[_0x0584('0x37')][_0x0584('0x33')]));_0x5cb9fb[_0x0584('0x34')]=_0x5cb9fb[_0x0584('0x34')][_0x0584('0x35')]?_0x5cb9fb[_0x0584('0x34')]:_0x33a62a[_0x0584('0x32')];if(_0x586f73[_0x0584('0x37')][_0x0584('0x3e')]){_0x5cb9fb['include']=[{'all':!![]}];}_0x5cb9fb=_[_0x0584('0x3c')]({},_0x5cb9fb,_0x586f73['options']);return db[_0x0584('0x29')][_0x0584('0x43')](_0x5cb9fb)['then'](handleEntityNotFound(_0x48d534,null))[_0x0584('0x21')](respondWithResult(_0x48d534,null))[_0x0584('0x41')](handleError(_0x48d534,null));};exports[_0x0584('0x44')]=function(_0x4cfb72,_0x5d86e7){return db[_0x0584('0x29')][_0x0584('0x44')](_0x4cfb72[_0x0584('0x45')],{})[_0x0584('0x21')](respondWithResult(_0x5d86e7,0xc9))[_0x0584('0x41')](handleError(_0x5d86e7,null));};exports[_0x0584('0x20')]=function(_0x192992,_0x47fca8){if(_0x192992[_0x0584('0x45')]['id']){delete _0x192992[_0x0584('0x45')]['id'];}return db[_0x0584('0x29')]['find']({'where':{'id':_0x192992[_0x0584('0x46')]['id']}})['then'](handleEntityNotFound(_0x47fca8,null))[_0x0584('0x21')](saveUpdates(_0x192992['body'],null))[_0x0584('0x21')](respondWithResult(_0x47fca8,null))[_0x0584('0x41')](handleError(_0x47fca8,null));};exports[_0x0584('0x22')]=function(_0x254ac5,_0x983bad){return db[_0x0584('0x29')]['find']({'where':{'id':_0x254ac5[_0x0584('0x46')]['id']}})[_0x0584('0x21')](handleEntityNotFound(_0x983bad,null))[_0x0584('0x21')](removeEntity(_0x983bad,null))['catch'](handleError(_0x983bad,null));};exports['getFields']=function(_0x35cfd2,_0xdc0ec2,_0xd5d8c0){var _0x2c0a05={};var _0x17112a={};var _0xe789dc;var _0x2edf86;return db[_0x0584('0x29')][_0x0584('0x47')]({'where':{'id':_0x35cfd2['params']['id']}})['then'](handleEntityNotFound(_0xdc0ec2,null))['then'](function(_0x5d30b8){if(_0x5d30b8){_0xe789dc=_0x5d30b8;_0x17112a['model']=_[_0x0584('0x2f')](db['Dynamics365Field']['rawAttributes']);_0x17112a[_0x0584('0x37')]=_[_0x0584('0x2f')](_0x35cfd2[_0x0584('0x37')]);_0x17112a[_0x0584('0x30')]=_['intersection'](_0x17112a['model'],_0x17112a[_0x0584('0x37')]);_0x2c0a05[_0x0584('0x34')]=_[_0x0584('0x31')](_0x17112a[_0x0584('0x32')],qs[_0x0584('0x33')](_0x35cfd2[_0x0584('0x37')][_0x0584('0x33')]));_0x2c0a05[_0x0584('0x34')]=_0x2c0a05['attributes'][_0x0584('0x35')]?_0x2c0a05['attributes']:_0x17112a[_0x0584('0x32')];_0x2c0a05['order']=qs[_0x0584('0x38')](_0x35cfd2[_0x0584('0x37')][_0x0584('0x38')]);_0x2c0a05[_0x0584('0x39')]=qs['filters'](_[_0x0584('0x48')](_0x35cfd2[_0x0584('0x37')],_0x17112a[_0x0584('0x30')]));if(_0x35cfd2[_0x0584('0x37')][_0x0584('0x3a')]){_0x2c0a05[_0x0584('0x39')]=_[_0x0584('0x3c')](_0x2c0a05[_0x0584('0x39')],{'$or':_['map'](_0x2c0a05['attributes'],function(_0x2646c7){var _0xb5aebc={};_0xb5aebc[_0x2646c7]={'$like':'%'+_0x35cfd2[_0x0584('0x37')][_0x0584('0x3a')]+'%'};return _0xb5aebc;})});}_0x2c0a05=_['merge']({},_0x2c0a05,_0x35cfd2['options']);return _0xe789dc[_0x0584('0x49')](_0x2c0a05);}})[_0x0584('0x21')](function(_0x29c738){if(_0x29c738){_0x2edf86=_0x29c738[_0x0584('0x35')];if(!_0x35cfd2['query'][_0x0584('0x36')]('nolimit')){_0x2c0a05['limit']=qs[_0x0584('0x1a')](_0x35cfd2['query'][_0x0584('0x1a')]);_0x2c0a05[_0x0584('0x18')]=qs[_0x0584('0x18')](_0x35cfd2[_0x0584('0x37')][_0x0584('0x18')]);}return _0xe789dc[_0x0584('0x49')](_0x2c0a05);}})[_0x0584('0x21')](function(_0x693e34){if(_0x693e34){return _0x693e34?{'count':_0x2edf86,'rows':_0x693e34}:null;}})['then'](respondWithResult(_0xdc0ec2,null))['catch'](handleError(_0xdc0ec2,null));};exports[_0x0584('0x4a')]=function(_0x44b0a8,_0x514dfb,_0x481cb9){var _0x320b1b={};var _0x4f7d16={};var _0x58e0d7;var _0x1145b4;return db[_0x0584('0x29')][_0x0584('0x47')]({'where':{'id':_0x44b0a8['params']['id']}})[_0x0584('0x21')](handleEntityNotFound(_0x514dfb,null))[_0x0584('0x21')](function(_0x33d879){if(_0x33d879){_0x58e0d7=_0x33d879;_0x4f7d16['model']=_['keys'](db[_0x0584('0x4b')]['rawAttributes']);_0x4f7d16['query']=_[_0x0584('0x2f')](_0x44b0a8[_0x0584('0x37')]);_0x4f7d16['filters']=_[_0x0584('0x31')](_0x4f7d16[_0x0584('0x32')],_0x4f7d16[_0x0584('0x37')]);_0x320b1b[_0x0584('0x34')]=_[_0x0584('0x31')](_0x4f7d16['model'],qs[_0x0584('0x33')](_0x44b0a8[_0x0584('0x37')][_0x0584('0x33')]));_0x320b1b[_0x0584('0x34')]=_0x320b1b[_0x0584('0x34')][_0x0584('0x35')]?_0x320b1b[_0x0584('0x34')]:_0x4f7d16['model'];_0x320b1b['order']=qs[_0x0584('0x38')](_0x44b0a8[_0x0584('0x37')][_0x0584('0x38')]);_0x320b1b[_0x0584('0x39')]=qs[_0x0584('0x30')](_[_0x0584('0x48')](_0x44b0a8[_0x0584('0x37')],_0x4f7d16[_0x0584('0x30')]));if(_0x44b0a8[_0x0584('0x37')]['filter']){_0x320b1b[_0x0584('0x39')]=_[_0x0584('0x3c')](_0x320b1b[_0x0584('0x39')],{'$or':_[_0x0584('0x2d')](_0x320b1b[_0x0584('0x34')],function(_0x8a5b89){var _0x35b162={};_0x35b162[_0x8a5b89]={'$like':'%'+_0x44b0a8[_0x0584('0x37')][_0x0584('0x3a')]+'%'};return _0x35b162;})});}_0x320b1b=_[_0x0584('0x3c')]({},_0x320b1b,_0x44b0a8[_0x0584('0x3d')]);return _0x58e0d7[_0x0584('0x4a')](_0x320b1b);}})[_0x0584('0x21')](function(_0x58b16a){if(_0x58b16a){_0x1145b4=_0x58b16a[_0x0584('0x35')];if(!_0x44b0a8[_0x0584('0x37')][_0x0584('0x36')](_0x0584('0x4c'))){_0x320b1b[_0x0584('0x1a')]=qs[_0x0584('0x1a')](_0x44b0a8[_0x0584('0x37')][_0x0584('0x1a')]);_0x320b1b['offset']=qs[_0x0584('0x18')](_0x44b0a8[_0x0584('0x37')][_0x0584('0x18')]);}return _0x58e0d7[_0x0584('0x4a')](_0x320b1b);}})[_0x0584('0x21')](function(_0x368463){if(_0x368463){return _0x368463?{'count':_0x1145b4,'rows':_0x368463}:null;}})[_0x0584('0x21')](respondWithResult(_0x514dfb,null))[_0x0584('0x41')](handleError(_0x514dfb,null));};exports[_0x0584('0x4d')]=function(_0x5e0cdd,_0x3b0ae6,_0x202a4a){var _0x58e25e={};var _0x2aa3e5={};var _0x4158f3;var _0x4fcf57;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x5e0cdd[_0x0584('0x46')]['id']}})[_0x0584('0x21')](handleEntityNotFound(_0x3b0ae6,null))[_0x0584('0x21')](function(_0x531b13){if(_0x531b13){_0x4158f3=_0x531b13;_0x2aa3e5[_0x0584('0x32')]=_[_0x0584('0x2f')](db[_0x0584('0x4b')]['rawAttributes']);_0x2aa3e5[_0x0584('0x37')]=_[_0x0584('0x2f')](_0x5e0cdd[_0x0584('0x37')]);_0x2aa3e5[_0x0584('0x30')]=_[_0x0584('0x31')](_0x2aa3e5[_0x0584('0x32')],_0x2aa3e5[_0x0584('0x37')]);_0x58e25e[_0x0584('0x34')]=_[_0x0584('0x31')](_0x2aa3e5[_0x0584('0x32')],qs[_0x0584('0x33')](_0x5e0cdd[_0x0584('0x37')][_0x0584('0x33')]));_0x58e25e[_0x0584('0x34')]=_0x58e25e[_0x0584('0x34')]['length']?_0x58e25e[_0x0584('0x34')]:_0x2aa3e5[_0x0584('0x32')];_0x58e25e[_0x0584('0x4e')]=qs[_0x0584('0x38')](_0x5e0cdd[_0x0584('0x37')][_0x0584('0x38')]);_0x58e25e['where']=qs[_0x0584('0x30')](_[_0x0584('0x48')](_0x5e0cdd['query'],_0x2aa3e5[_0x0584('0x30')]));if(_0x5e0cdd[_0x0584('0x37')][_0x0584('0x3a')]){_0x58e25e[_0x0584('0x39')]=_[_0x0584('0x3c')](_0x58e25e[_0x0584('0x39')],{'$or':_['map'](_0x58e25e[_0x0584('0x34')],function(_0x186147){var _0x174f24={};_0x174f24[_0x186147]={'$like':'%'+_0x5e0cdd['query'][_0x0584('0x3a')]+'%'};return _0x174f24;})});}_0x58e25e=_[_0x0584('0x3c')]({},_0x58e25e,_0x5e0cdd[_0x0584('0x3d')]);return _0x4158f3[_0x0584('0x4d')](_0x58e25e);}})[_0x0584('0x21')](function(_0x5224ce){if(_0x5224ce){_0x4fcf57=_0x5224ce[_0x0584('0x35')];if(!_0x5e0cdd['query']['hasOwnProperty'](_0x0584('0x4c'))){_0x58e25e[_0x0584('0x1a')]=qs[_0x0584('0x1a')](_0x5e0cdd[_0x0584('0x37')][_0x0584('0x1a')]);_0x58e25e[_0x0584('0x18')]=qs[_0x0584('0x18')](_0x5e0cdd[_0x0584('0x37')]['offset']);}return _0x4158f3[_0x0584('0x4d')](_0x58e25e);}})[_0x0584('0x21')](function(_0x2ba99b){if(_0x2ba99b){return _0x2ba99b?{'count':_0x4fcf57,'rows':_0x2ba99b}:null;}})[_0x0584('0x21')](respondWithResult(_0x3b0ae6,null))[_0x0584('0x41')](handleError(_0x3b0ae6,null));};