160346fb7e56c26aed714b8b7efa65b640332b00
[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 _0x49fe=['sort','where','pick','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','params','keys','find','create','update','body','getFields','findOne','Dynamics365Field','hasOwnProperty','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','request-promise','moment','util','sox','ejs','fs-extra','lodash','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','status','end','json','offset','undefined','limit','count','Content-Range','reject','save','then','destroy','sendStatus','error','stack','name','index','map','Dynamics365Configuration','rawAttributes','key','model','query','filters','intersection','attributes','fields','length','nolimit','order'];(function(_0x102cba,_0x254fa7){var _0x232493=function(_0x468dbd){while(--_0x468dbd){_0x102cba['push'](_0x102cba['shift']());}};_0x232493(++_0x254fa7);}(_0x49fe,0x1e7));var _0xe49f=function(_0x480ee3,_0x32910c){_0x480ee3=_0x480ee3-0x0;var _0x4a6af4=_0x49fe[_0x480ee3];return _0x4a6af4;};'use strict';var emlformat=require(_0xe49f('0x0'));var rimraf=require(_0xe49f('0x1'));var zipdir=require(_0xe49f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe49f('0x3'));var moment=require(_0xe49f('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xe49f('0x5'));var path=require('path');var sox=require(_0xe49f('0x6'));var csv=require('to-csv');var ejs=require(_0xe49f('0x7'));var fs=require('fs');var fs_extra=require(_0xe49f('0x8'));var _=require(_0xe49f('0x9'));var squel=require(_0xe49f('0xa'));var crypto=require('crypto');var jsforce=require(_0xe49f('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xe49f('0xc'));var querystring=require(_0xe49f('0xd'));var Papa=require(_0xe49f('0xe'));var Redis=require(_0xe49f('0xf'));var authService=require(_0xe49f('0x10'));var qs=require(_0xe49f('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xe49f('0x12'))(_0xe49f('0x13'));var utils=require(_0xe49f('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xe49f('0x15'))['db'];function respondWithStatusCode(_0x31c855,_0x2bde6a){_0x2bde6a=_0x2bde6a||0xcc;return function(_0x4eec4f){if(_0x4eec4f){return _0x31c855['sendStatus'](_0x2bde6a);}return _0x31c855[_0xe49f('0x16')](_0x2bde6a)[_0xe49f('0x17')]();};}function respondWithResult(_0x4c3d84,_0x23eede){_0x23eede=_0x23eede||0xc8;return function(_0x268c74){if(_0x268c74){return _0x4c3d84[_0xe49f('0x16')](_0x23eede)[_0xe49f('0x18')](_0x268c74);}};}function respondWithFilteredResult(_0x23c6ec,_0x3af6c4){return function(_0xb24f79){if(_0xb24f79){var _0x275a11=typeof _0x3af6c4[_0xe49f('0x19')]===_0xe49f('0x1a')&&typeof _0x3af6c4[_0xe49f('0x1b')]===_0xe49f('0x1a');var _0x3e3ed6=_0xb24f79[_0xe49f('0x1c')];var _0xd1872=_0x275a11?0x0:_0x3af6c4[_0xe49f('0x19')];var _0x4e02b3=_0x275a11?_0xb24f79['count']:_0x3af6c4[_0xe49f('0x19')]+_0x3af6c4[_0xe49f('0x1b')];var _0x489f93;if(_0x4e02b3>=_0x3e3ed6){_0x4e02b3=_0x3e3ed6;_0x489f93=0xc8;}else{_0x489f93=0xce;}_0x23c6ec[_0xe49f('0x16')](_0x489f93);return _0x23c6ec['set'](_0xe49f('0x1d'),_0xd1872+'-'+_0x4e02b3+'/'+_0x3e3ed6)[_0xe49f('0x18')](_0xb24f79);}return null;};}function patchUpdates(_0x1e06ae){return function(_0x210b69){try{jsonpatch['apply'](_0x210b69,_0x1e06ae,!![]);}catch(_0x26d1af){return BPromise[_0xe49f('0x1e')](_0x26d1af);}return _0x210b69[_0xe49f('0x1f')]();};}function saveUpdates(_0xcba653,_0xf5fb75){return function(_0x12eadb){if(_0x12eadb){return _0x12eadb['update'](_0xcba653)[_0xe49f('0x20')](function(_0x45282a){return _0x45282a;});}return null;};}function removeEntity(_0x14cc9f,_0x245e4d){return function(_0x3ab6b8){if(_0x3ab6b8){return _0x3ab6b8[_0xe49f('0x21')]()['then'](function(){_0x14cc9f[_0xe49f('0x16')](0xcc)[_0xe49f('0x17')]();});}};}function handleEntityNotFound(_0x1b87bf,_0x514ab9){return function(_0x2d2772){if(!_0x2d2772){_0x1b87bf[_0xe49f('0x22')](0x194);}return _0x2d2772;};}function handleError(_0x14ae60,_0x50173d){_0x50173d=_0x50173d||0x1f4;return function(_0x566f40){logger[_0xe49f('0x23')](_0x566f40[_0xe49f('0x24')]);if(_0x566f40[_0xe49f('0x25')]){delete _0x566f40[_0xe49f('0x25')];}_0x14ae60[_0xe49f('0x16')](_0x50173d)['send'](_0x566f40);};}exports[_0xe49f('0x26')]=function(_0x566da0,_0x23b169){var _0x469172={},_0x37d309={},_0x3ae67f={'count':0x0,'rows':[]};var _0x406230=_[_0xe49f('0x27')](db[_0xe49f('0x28')][_0xe49f('0x29')],function(_0x14ec2d){return{'name':_0x14ec2d['fieldName'],'type':_0x14ec2d['type'][_0xe49f('0x2a')]};});_0x37d309[_0xe49f('0x2b')]=_['map'](_0x406230,_0xe49f('0x25'));_0x37d309[_0xe49f('0x2c')]=_['keys'](_0x566da0[_0xe49f('0x2c')]);_0x37d309[_0xe49f('0x2d')]=_[_0xe49f('0x2e')](_0x37d309[_0xe49f('0x2b')],_0x37d309['query']);_0x469172[_0xe49f('0x2f')]=_[_0xe49f('0x2e')](_0x37d309[_0xe49f('0x2b')],qs[_0xe49f('0x30')](_0x566da0[_0xe49f('0x2c')]['fields']));_0x469172[_0xe49f('0x2f')]=_0x469172[_0xe49f('0x2f')][_0xe49f('0x31')]?_0x469172[_0xe49f('0x2f')]:_0x37d309[_0xe49f('0x2b')];if(!_0x566da0[_0xe49f('0x2c')]['hasOwnProperty'](_0xe49f('0x32'))){_0x469172[_0xe49f('0x1b')]=qs['limit'](_0x566da0[_0xe49f('0x2c')]['limit']);_0x469172[_0xe49f('0x19')]=qs['offset'](_0x566da0['query'][_0xe49f('0x19')]);}_0x469172[_0xe49f('0x33')]=qs[_0xe49f('0x34')](_0x566da0[_0xe49f('0x2c')][_0xe49f('0x34')]);_0x469172[_0xe49f('0x35')]=qs['filters'](_[_0xe49f('0x36')](_0x566da0[_0xe49f('0x2c')],_0x37d309['filters']),_0x406230);if(_0x566da0[_0xe49f('0x2c')][_0xe49f('0x37')]){_0x469172[_0xe49f('0x35')]=_['merge'](_0x469172[_0xe49f('0x35')],{'$or':_['map'](_0x406230,function(_0x3a86b5){if(_0x3a86b5[_0xe49f('0x38')]!==_0xe49f('0x39')){var _0x22f06e={};_0x22f06e[_0x3a86b5[_0xe49f('0x25')]]={'$like':'%'+_0x566da0[_0xe49f('0x2c')][_0xe49f('0x37')]+'%'};return _0x22f06e;}})});}_0x469172=_[_0xe49f('0x3a')]({},_0x469172,_0x566da0[_0xe49f('0x3b')]);var _0x34eb4d={'where':_0x469172[_0xe49f('0x35')]};return db['Dynamics365Configuration'][_0xe49f('0x1c')](_0x34eb4d)[_0xe49f('0x20')](function(_0x2fe67e){_0x3ae67f[_0xe49f('0x1c')]=_0x2fe67e;if(_0x566da0[_0xe49f('0x2c')][_0xe49f('0x3c')]){_0x469172[_0xe49f('0x3d')]=[{'all':!![]}];}return db[_0xe49f('0x28')][_0xe49f('0x3e')](_0x469172);})[_0xe49f('0x20')](function(_0x29c3fb){_0x3ae67f[_0xe49f('0x3f')]=_0x29c3fb;return _0x3ae67f;})[_0xe49f('0x20')](respondWithFilteredResult(_0x23b169,_0x469172))[_0xe49f('0x40')](handleError(_0x23b169,null));};exports['show']=function(_0x2749c5,_0x1e5768){var _0x97743f={'raw':![],'where':{'id':_0x2749c5[_0xe49f('0x41')]['id']}},_0x235a0a={};_0x235a0a[_0xe49f('0x2b')]=_[_0xe49f('0x42')](db[_0xe49f('0x28')]['rawAttributes']);_0x235a0a['query']=_['keys'](_0x2749c5[_0xe49f('0x2c')]);_0x235a0a[_0xe49f('0x2d')]=_[_0xe49f('0x2e')](_0x235a0a[_0xe49f('0x2b')],_0x235a0a[_0xe49f('0x2c')]);_0x97743f[_0xe49f('0x2f')]=_[_0xe49f('0x2e')](_0x235a0a[_0xe49f('0x2b')],qs['fields'](_0x2749c5['query'][_0xe49f('0x30')]));_0x97743f[_0xe49f('0x2f')]=_0x97743f[_0xe49f('0x2f')][_0xe49f('0x31')]?_0x97743f[_0xe49f('0x2f')]:_0x235a0a[_0xe49f('0x2b')];if(_0x2749c5['query'][_0xe49f('0x3c')]){_0x97743f['include']=[{'all':!![]}];}_0x97743f=_['merge']({},_0x97743f,_0x2749c5[_0xe49f('0x3b')]);return db['Dynamics365Configuration'][_0xe49f('0x43')](_0x97743f)['then'](handleEntityNotFound(_0x1e5768,null))[_0xe49f('0x20')](respondWithResult(_0x1e5768,null))[_0xe49f('0x40')](handleError(_0x1e5768,null));};exports[_0xe49f('0x44')]=function(_0x3f1e44,_0x21f210){return db[_0xe49f('0x28')][_0xe49f('0x44')](_0x3f1e44['body'],{})[_0xe49f('0x20')](respondWithResult(_0x21f210,0xc9))['catch'](handleError(_0x21f210,null));};exports[_0xe49f('0x45')]=function(_0x33c0b3,_0xb8ecda){if(_0x33c0b3[_0xe49f('0x46')]['id']){delete _0x33c0b3[_0xe49f('0x46')]['id'];}return db['Dynamics365Configuration']['find']({'where':{'id':_0x33c0b3[_0xe49f('0x41')]['id']}})[_0xe49f('0x20')](handleEntityNotFound(_0xb8ecda,null))[_0xe49f('0x20')](saveUpdates(_0x33c0b3[_0xe49f('0x46')],null))[_0xe49f('0x20')](respondWithResult(_0xb8ecda,null))[_0xe49f('0x40')](handleError(_0xb8ecda,null));};exports[_0xe49f('0x21')]=function(_0x2e5d19,_0xdee285){return db[_0xe49f('0x28')][_0xe49f('0x43')]({'where':{'id':_0x2e5d19[_0xe49f('0x41')]['id']}})[_0xe49f('0x20')](handleEntityNotFound(_0xdee285,null))['then'](removeEntity(_0xdee285,null))[_0xe49f('0x40')](handleError(_0xdee285,null));};exports[_0xe49f('0x47')]=function(_0x3d4d11,_0xd3fcec,_0xeead32){var _0x2784fc={};var _0xa08509={};var _0x1d6906;var _0x13f885;return db['Dynamics365Configuration'][_0xe49f('0x48')]({'where':{'id':_0x3d4d11['params']['id']}})[_0xe49f('0x20')](handleEntityNotFound(_0xd3fcec,null))[_0xe49f('0x20')](function(_0x3dad60){if(_0x3dad60){_0x1d6906=_0x3dad60;_0xa08509['model']=_[_0xe49f('0x42')](db[_0xe49f('0x49')][_0xe49f('0x29')]);_0xa08509[_0xe49f('0x2c')]=_[_0xe49f('0x42')](_0x3d4d11[_0xe49f('0x2c')]);_0xa08509[_0xe49f('0x2d')]=_[_0xe49f('0x2e')](_0xa08509[_0xe49f('0x2b')],_0xa08509[_0xe49f('0x2c')]);_0x2784fc[_0xe49f('0x2f')]=_['intersection'](_0xa08509[_0xe49f('0x2b')],qs[_0xe49f('0x30')](_0x3d4d11['query'][_0xe49f('0x30')]));_0x2784fc[_0xe49f('0x2f')]=_0x2784fc['attributes'][_0xe49f('0x31')]?_0x2784fc['attributes']:_0xa08509['model'];_0x2784fc['order']=qs[_0xe49f('0x34')](_0x3d4d11[_0xe49f('0x2c')][_0xe49f('0x34')]);_0x2784fc['where']=qs[_0xe49f('0x2d')](_['pick'](_0x3d4d11['query'],_0xa08509[_0xe49f('0x2d')]));if(_0x3d4d11[_0xe49f('0x2c')]['filter']){_0x2784fc['where']=_['merge'](_0x2784fc[_0xe49f('0x35')],{'$or':_[_0xe49f('0x27')](_0x2784fc[_0xe49f('0x2f')],function(_0x489c78){var _0x19faf4={};_0x19faf4[_0x489c78]={'$like':'%'+_0x3d4d11[_0xe49f('0x2c')][_0xe49f('0x37')]+'%'};return _0x19faf4;})});}_0x2784fc=_['merge']({},_0x2784fc,_0x3d4d11[_0xe49f('0x3b')]);return _0x1d6906['getFields'](_0x2784fc);}})['then'](function(_0x3fc6a7){if(_0x3fc6a7){_0x13f885=_0x3fc6a7[_0xe49f('0x31')];if(!_0x3d4d11[_0xe49f('0x2c')][_0xe49f('0x4a')]('nolimit')){_0x2784fc[_0xe49f('0x1b')]=qs['limit'](_0x3d4d11[_0xe49f('0x2c')][_0xe49f('0x1b')]);_0x2784fc[_0xe49f('0x19')]=qs['offset'](_0x3d4d11[_0xe49f('0x2c')][_0xe49f('0x19')]);}return _0x1d6906[_0xe49f('0x47')](_0x2784fc);}})['then'](function(_0x2197bf){if(_0x2197bf){return _0x2197bf?{'count':_0x13f885,'rows':_0x2197bf}:null;}})[_0xe49f('0x20')](respondWithResult(_0xd3fcec,null))[_0xe49f('0x40')](handleError(_0xd3fcec,null));};exports[_0xe49f('0x4b')]=function(_0x51fdc5,_0x35f911,_0x429613){var _0x2a22cc={};var _0xd4d925={};var _0x27db61;var _0x2a0721;return db[_0xe49f('0x28')][_0xe49f('0x48')]({'where':{'id':_0x51fdc5[_0xe49f('0x41')]['id']}})['then'](handleEntityNotFound(_0x35f911,null))[_0xe49f('0x20')](function(_0x4ae810){if(_0x4ae810){_0x27db61=_0x4ae810;_0xd4d925['model']=_[_0xe49f('0x42')](db[_0xe49f('0x49')][_0xe49f('0x29')]);_0xd4d925['query']=_[_0xe49f('0x42')](_0x51fdc5['query']);_0xd4d925[_0xe49f('0x2d')]=_[_0xe49f('0x2e')](_0xd4d925[_0xe49f('0x2b')],_0xd4d925[_0xe49f('0x2c')]);_0x2a22cc[_0xe49f('0x2f')]=_[_0xe49f('0x2e')](_0xd4d925[_0xe49f('0x2b')],qs['fields'](_0x51fdc5['query'][_0xe49f('0x30')]));_0x2a22cc[_0xe49f('0x2f')]=_0x2a22cc[_0xe49f('0x2f')][_0xe49f('0x31')]?_0x2a22cc[_0xe49f('0x2f')]:_0xd4d925[_0xe49f('0x2b')];_0x2a22cc[_0xe49f('0x33')]=qs['sort'](_0x51fdc5['query'][_0xe49f('0x34')]);_0x2a22cc[_0xe49f('0x35')]=qs[_0xe49f('0x2d')](_[_0xe49f('0x36')](_0x51fdc5[_0xe49f('0x2c')],_0xd4d925[_0xe49f('0x2d')]));if(_0x51fdc5['query'][_0xe49f('0x37')]){_0x2a22cc[_0xe49f('0x35')]=_[_0xe49f('0x3a')](_0x2a22cc[_0xe49f('0x35')],{'$or':_[_0xe49f('0x27')](_0x2a22cc['attributes'],function(_0x235cbc){var _0x3f70b0={};_0x3f70b0[_0x235cbc]={'$like':'%'+_0x51fdc5[_0xe49f('0x2c')][_0xe49f('0x37')]+'%'};return _0x3f70b0;})});}_0x2a22cc=_[_0xe49f('0x3a')]({},_0x2a22cc,_0x51fdc5['options']);return _0x27db61['getSubjects'](_0x2a22cc);}})[_0xe49f('0x20')](function(_0x8ac901){if(_0x8ac901){_0x2a0721=_0x8ac901[_0xe49f('0x31')];if(!_0x51fdc5['query'][_0xe49f('0x4a')](_0xe49f('0x32'))){_0x2a22cc['limit']=qs[_0xe49f('0x1b')](_0x51fdc5[_0xe49f('0x2c')][_0xe49f('0x1b')]);_0x2a22cc[_0xe49f('0x19')]=qs['offset'](_0x51fdc5[_0xe49f('0x2c')][_0xe49f('0x19')]);}return _0x27db61['getSubjects'](_0x2a22cc);}})[_0xe49f('0x20')](function(_0xe995de){if(_0xe995de){return _0xe995de?{'count':_0x2a0721,'rows':_0xe995de}:null;}})[_0xe49f('0x20')](respondWithResult(_0x35f911,null))[_0xe49f('0x40')](handleError(_0x35f911,null));};exports[_0xe49f('0x4c')]=function(_0x3c911a,_0x4db483,_0x47ed73){var _0xc82651={};var _0x366c8c={};var _0x4987c5;var _0x460ffe;return db[_0xe49f('0x28')][_0xe49f('0x48')]({'where':{'id':_0x3c911a[_0xe49f('0x41')]['id']}})['then'](handleEntityNotFound(_0x4db483,null))[_0xe49f('0x20')](function(_0x25c8d1){if(_0x25c8d1){_0x4987c5=_0x25c8d1;_0x366c8c['model']=_[_0xe49f('0x42')](db[_0xe49f('0x49')]['rawAttributes']);_0x366c8c[_0xe49f('0x2c')]=_[_0xe49f('0x42')](_0x3c911a[_0xe49f('0x2c')]);_0x366c8c[_0xe49f('0x2d')]=_[_0xe49f('0x2e')](_0x366c8c[_0xe49f('0x2b')],_0x366c8c[_0xe49f('0x2c')]);_0xc82651[_0xe49f('0x2f')]=_[_0xe49f('0x2e')](_0x366c8c[_0xe49f('0x2b')],qs[_0xe49f('0x30')](_0x3c911a[_0xe49f('0x2c')][_0xe49f('0x30')]));_0xc82651[_0xe49f('0x2f')]=_0xc82651[_0xe49f('0x2f')]['length']?_0xc82651[_0xe49f('0x2f')]:_0x366c8c['model'];_0xc82651[_0xe49f('0x33')]=qs[_0xe49f('0x34')](_0x3c911a[_0xe49f('0x2c')][_0xe49f('0x34')]);_0xc82651[_0xe49f('0x35')]=qs['filters'](_['pick'](_0x3c911a[_0xe49f('0x2c')],_0x366c8c[_0xe49f('0x2d')]));if(_0x3c911a[_0xe49f('0x2c')]['filter']){_0xc82651[_0xe49f('0x35')]=_[_0xe49f('0x3a')](_0xc82651['where'],{'$or':_[_0xe49f('0x27')](_0xc82651['attributes'],function(_0x3fb821){var _0x27b82c={};_0x27b82c[_0x3fb821]={'$like':'%'+_0x3c911a[_0xe49f('0x2c')][_0xe49f('0x37')]+'%'};return _0x27b82c;})});}_0xc82651=_[_0xe49f('0x3a')]({},_0xc82651,_0x3c911a[_0xe49f('0x3b')]);return _0x4987c5[_0xe49f('0x4c')](_0xc82651);}})[_0xe49f('0x20')](function(_0xd5d292){if(_0xd5d292){_0x460ffe=_0xd5d292[_0xe49f('0x31')];if(!_0x3c911a[_0xe49f('0x2c')][_0xe49f('0x4a')]('nolimit')){_0xc82651[_0xe49f('0x1b')]=qs[_0xe49f('0x1b')](_0x3c911a[_0xe49f('0x2c')][_0xe49f('0x1b')]);_0xc82651[_0xe49f('0x19')]=qs[_0xe49f('0x19')](_0x3c911a[_0xe49f('0x2c')][_0xe49f('0x19')]);}return _0x4987c5['getDescriptions'](_0xc82651);}})[_0xe49f('0x20')](function(_0x298374){if(_0x298374){return _0x298374?{'count':_0x460ffe,'rows':_0x298374}:null;}})['then'](respondWithResult(_0x4db483,null))[_0xe49f('0x40')](handleError(_0x4db483,null));};