Built motion from commit 9d0783e6.|2.6.13
[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 _0x45ce=['jsforce','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../mysqldb','sendStatus','status','json','limit','undefined','offset','count','reject','update','then','destroy','error','stack','name','send','index','map','Dynamics365Configuration','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','show','find','catch','create','body','params','getFields','findOne','Dynamics365Field','rawAttributes','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','crypto'];(function(_0x144bed,_0x115974){var _0x4f3d52=function(_0x12dd2d){while(--_0x12dd2d){_0x144bed['push'](_0x144bed['shift']());}};_0x4f3d52(++_0x115974);}(_0x45ce,0xd8));var _0xe45c=function(_0x3a3dc2,_0x239f03){_0x3a3dc2=_0x3a3dc2-0x0;var _0x411c98=_0x45ce[_0x3a3dc2];return _0x411c98;};'use strict';var emlformat=require(_0xe45c('0x0'));var rimraf=require(_0xe45c('0x1'));var zipdir=require(_0xe45c('0x2'));var jsonpatch=require(_0xe45c('0x3'));var rp=require(_0xe45c('0x4'));var moment=require(_0xe45c('0x5'));var BPromise=require(_0xe45c('0x6'));var Mustache=require(_0xe45c('0x7'));var util=require('util');var path=require('path');var sox=require(_0xe45c('0x8'));var csv=require(_0xe45c('0x9'));var ejs=require(_0xe45c('0xa'));var fs=require('fs');var fs_extra=require(_0xe45c('0xb'));var _=require(_0xe45c('0xc'));var squel=require(_0xe45c('0xd'));var crypto=require(_0xe45c('0xe'));var jsforce=require(_0xe45c('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xe45c('0x9'));var querystring=require(_0xe45c('0x10'));var Papa=require(_0xe45c('0x11'));var Redis=require(_0xe45c('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xe45c('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe45c('0x14'))(_0xe45c('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xe45c('0x16'))['db'];function respondWithStatusCode(_0x5bc473,_0x27cc41){_0x27cc41=_0x27cc41||0xcc;return function(_0xc8dd64){if(_0xc8dd64){return _0x5bc473[_0xe45c('0x17')](_0x27cc41);}return _0x5bc473[_0xe45c('0x18')](_0x27cc41)['end']();};}function respondWithResult(_0x279002,_0xfc6be7){_0xfc6be7=_0xfc6be7||0xc8;return function(_0x50c742){if(_0x50c742){return _0x279002[_0xe45c('0x18')](_0xfc6be7)[_0xe45c('0x19')](_0x50c742);}};}function respondWithFilteredResult(_0xe21a9d,_0x545ac9){return function(_0x50be9d){if(_0x50be9d){var _0x2f9c25=typeof _0x545ac9['offset']==='undefined'&&typeof _0x545ac9[_0xe45c('0x1a')]===_0xe45c('0x1b');var _0x5f2b8c=_0x50be9d['count'];var _0x18c7d9=_0x2f9c25?0x0:_0x545ac9[_0xe45c('0x1c')];var _0x50ca57=_0x2f9c25?_0x50be9d[_0xe45c('0x1d')]:_0x545ac9['offset']+_0x545ac9[_0xe45c('0x1a')];var _0x4d0014;if(_0x50ca57>=_0x5f2b8c){_0x50ca57=_0x5f2b8c;_0x4d0014=0xc8;}else{_0x4d0014=0xce;}_0xe21a9d[_0xe45c('0x18')](_0x4d0014);return _0xe21a9d['set']('Content-Range',_0x18c7d9+'-'+_0x50ca57+'/'+_0x5f2b8c)['json'](_0x50be9d);}return null;};}function patchUpdates(_0x3bf501){return function(_0x39ae5f){try{jsonpatch['apply'](_0x39ae5f,_0x3bf501,!![]);}catch(_0x33c804){return BPromise[_0xe45c('0x1e')](_0x33c804);}return _0x39ae5f['save']();};}function saveUpdates(_0x3972dd,_0x20dc23){return function(_0x5f1c25){if(_0x5f1c25){return _0x5f1c25[_0xe45c('0x1f')](_0x3972dd)[_0xe45c('0x20')](function(_0x4853d8){return _0x4853d8;});}return null;};}function removeEntity(_0x33fea8,_0x16538e){return function(_0xde99fa){if(_0xde99fa){return _0xde99fa[_0xe45c('0x21')]()[_0xe45c('0x20')](function(){_0x33fea8[_0xe45c('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4fcf02,_0x167bfe){return function(_0x529110){if(!_0x529110){_0x4fcf02[_0xe45c('0x17')](0x194);}return _0x529110;};}function handleError(_0xd3895a,_0x494e6b){_0x494e6b=_0x494e6b||0x1f4;return function(_0x46e2e0){logger[_0xe45c('0x22')](_0x46e2e0[_0xe45c('0x23')]);if(_0x46e2e0[_0xe45c('0x24')]){delete _0x46e2e0[_0xe45c('0x24')];}_0xd3895a[_0xe45c('0x18')](_0x494e6b)[_0xe45c('0x25')](_0x46e2e0);};}exports[_0xe45c('0x26')]=function(_0x308b24,_0x3c27a4){var _0x2733df={},_0x5316c2={},_0x387fc2={'count':0x0,'rows':[]};var _0x3defc8=_[_0xe45c('0x27')](db[_0xe45c('0x28')]['rawAttributes'],function(_0x15e60e){return{'name':_0x15e60e[_0xe45c('0x29')],'type':_0x15e60e[_0xe45c('0x2a')][_0xe45c('0x2b')]};});_0x5316c2[_0xe45c('0x2c')]=_[_0xe45c('0x27')](_0x3defc8,'name');_0x5316c2[_0xe45c('0x2d')]=_[_0xe45c('0x2e')](_0x308b24['query']);_0x5316c2[_0xe45c('0x2f')]=_[_0xe45c('0x30')](_0x5316c2['model'],_0x5316c2['query']);_0x2733df[_0xe45c('0x31')]=_[_0xe45c('0x30')](_0x5316c2[_0xe45c('0x2c')],qs['fields'](_0x308b24[_0xe45c('0x2d')][_0xe45c('0x32')]));_0x2733df[_0xe45c('0x31')]=_0x2733df['attributes'][_0xe45c('0x33')]?_0x2733df[_0xe45c('0x31')]:_0x5316c2['model'];if(!_0x308b24['query'][_0xe45c('0x34')](_0xe45c('0x35'))){_0x2733df[_0xe45c('0x1a')]=qs['limit'](_0x308b24[_0xe45c('0x2d')][_0xe45c('0x1a')]);_0x2733df[_0xe45c('0x1c')]=qs[_0xe45c('0x1c')](_0x308b24[_0xe45c('0x2d')][_0xe45c('0x1c')]);}_0x2733df[_0xe45c('0x36')]=qs['sort'](_0x308b24[_0xe45c('0x2d')][_0xe45c('0x37')]);_0x2733df[_0xe45c('0x38')]=qs['filters'](_[_0xe45c('0x39')](_0x308b24['query'],_0x5316c2['filters']),_0x3defc8);if(_0x308b24['query'][_0xe45c('0x3a')]){_0x2733df[_0xe45c('0x38')]=_[_0xe45c('0x3b')](_0x2733df[_0xe45c('0x38')],{'$or':_['map'](_0x3defc8,function(_0x2018a8){if(_0x2018a8[_0xe45c('0x2a')]!=='VIRTUAL'){var _0x1fd91c={};_0x1fd91c[_0x2018a8[_0xe45c('0x24')]]={'$like':'%'+_0x308b24[_0xe45c('0x2d')][_0xe45c('0x3a')]+'%'};return _0x1fd91c;}})});}_0x2733df=_['merge']({},_0x2733df,_0x308b24[_0xe45c('0x3c')]);var _0x35353d={'where':_0x2733df[_0xe45c('0x38')]};return db[_0xe45c('0x28')][_0xe45c('0x1d')](_0x35353d)['then'](function(_0x4a5e70){_0x387fc2['count']=_0x4a5e70;if(_0x308b24[_0xe45c('0x2d')][_0xe45c('0x3d')]){_0x2733df[_0xe45c('0x3e')]=[{'all':!![]}];}return db[_0xe45c('0x28')][_0xe45c('0x3f')](_0x2733df);})['then'](function(_0x49c9cb){_0x387fc2[_0xe45c('0x40')]=_0x49c9cb;return _0x387fc2;})[_0xe45c('0x20')](respondWithFilteredResult(_0x3c27a4,_0x2733df))['catch'](handleError(_0x3c27a4,null));};exports[_0xe45c('0x41')]=function(_0x2fcb4d,_0x357397){var _0x261a58={'raw':![],'where':{'id':_0x2fcb4d['params']['id']}},_0x220f00={};_0x220f00[_0xe45c('0x2c')]=_['keys'](db[_0xe45c('0x28')]['rawAttributes']);_0x220f00[_0xe45c('0x2d')]=_[_0xe45c('0x2e')](_0x2fcb4d[_0xe45c('0x2d')]);_0x220f00[_0xe45c('0x2f')]=_[_0xe45c('0x30')](_0x220f00[_0xe45c('0x2c')],_0x220f00[_0xe45c('0x2d')]);_0x261a58[_0xe45c('0x31')]=_['intersection'](_0x220f00[_0xe45c('0x2c')],qs['fields'](_0x2fcb4d['query'][_0xe45c('0x32')]));_0x261a58['attributes']=_0x261a58[_0xe45c('0x31')][_0xe45c('0x33')]?_0x261a58[_0xe45c('0x31')]:_0x220f00['model'];if(_0x2fcb4d[_0xe45c('0x2d')]['includeAll']){_0x261a58[_0xe45c('0x3e')]=[{'all':!![]}];}_0x261a58=_['merge']({},_0x261a58,_0x2fcb4d[_0xe45c('0x3c')]);return db['Dynamics365Configuration'][_0xe45c('0x42')](_0x261a58)['then'](handleEntityNotFound(_0x357397,null))[_0xe45c('0x20')](respondWithResult(_0x357397,null))[_0xe45c('0x43')](handleError(_0x357397,null));};exports[_0xe45c('0x44')]=function(_0x3f0a96,_0x1ab60e){return db[_0xe45c('0x28')][_0xe45c('0x44')](_0x3f0a96[_0xe45c('0x45')],{})[_0xe45c('0x20')](respondWithResult(_0x1ab60e,0xc9))[_0xe45c('0x43')](handleError(_0x1ab60e,null));};exports[_0xe45c('0x1f')]=function(_0x353d0d,_0x25bfbd){if(_0x353d0d[_0xe45c('0x45')]['id']){delete _0x353d0d['body']['id'];}return db['Dynamics365Configuration'][_0xe45c('0x42')]({'where':{'id':_0x353d0d['params']['id']}})[_0xe45c('0x20')](handleEntityNotFound(_0x25bfbd,null))['then'](saveUpdates(_0x353d0d[_0xe45c('0x45')],null))[_0xe45c('0x20')](respondWithResult(_0x25bfbd,null))[_0xe45c('0x43')](handleError(_0x25bfbd,null));};exports[_0xe45c('0x21')]=function(_0x35bf06,_0x55a9ce){return db['Dynamics365Configuration'][_0xe45c('0x42')]({'where':{'id':_0x35bf06[_0xe45c('0x46')]['id']}})['then'](handleEntityNotFound(_0x55a9ce,null))[_0xe45c('0x20')](removeEntity(_0x55a9ce,null))[_0xe45c('0x43')](handleError(_0x55a9ce,null));};exports[_0xe45c('0x47')]=function(_0x250be9,_0x2732ac,_0x3a685d){var _0x76feb9={};var _0x203dbd={};var _0x20af36;var _0x4b90cd;return db['Dynamics365Configuration'][_0xe45c('0x48')]({'where':{'id':_0x250be9['params']['id']}})[_0xe45c('0x20')](handleEntityNotFound(_0x2732ac,null))[_0xe45c('0x20')](function(_0x5988c6){if(_0x5988c6){_0x20af36=_0x5988c6;_0x203dbd[_0xe45c('0x2c')]=_[_0xe45c('0x2e')](db[_0xe45c('0x49')][_0xe45c('0x4a')]);_0x203dbd['query']=_['keys'](_0x250be9['query']);_0x203dbd[_0xe45c('0x2f')]=_['intersection'](_0x203dbd[_0xe45c('0x2c')],_0x203dbd[_0xe45c('0x2d')]);_0x76feb9[_0xe45c('0x31')]=_[_0xe45c('0x30')](_0x203dbd[_0xe45c('0x2c')],qs[_0xe45c('0x32')](_0x250be9[_0xe45c('0x2d')][_0xe45c('0x32')]));_0x76feb9[_0xe45c('0x31')]=_0x76feb9[_0xe45c('0x31')][_0xe45c('0x33')]?_0x76feb9[_0xe45c('0x31')]:_0x203dbd[_0xe45c('0x2c')];_0x76feb9['order']=qs[_0xe45c('0x37')](_0x250be9[_0xe45c('0x2d')][_0xe45c('0x37')]);_0x76feb9[_0xe45c('0x38')]=qs['filters'](_[_0xe45c('0x39')](_0x250be9[_0xe45c('0x2d')],_0x203dbd[_0xe45c('0x2f')]));if(_0x250be9[_0xe45c('0x2d')][_0xe45c('0x3a')]){_0x76feb9[_0xe45c('0x38')]=_['merge'](_0x76feb9['where'],{'$or':_[_0xe45c('0x27')](_0x76feb9['attributes'],function(_0x416c2c){var _0x2acc54={};_0x2acc54[_0x416c2c]={'$like':'%'+_0x250be9[_0xe45c('0x2d')]['filter']+'%'};return _0x2acc54;})});}_0x76feb9=_[_0xe45c('0x3b')]({},_0x76feb9,_0x250be9['options']);return _0x20af36[_0xe45c('0x47')](_0x76feb9);}})[_0xe45c('0x20')](function(_0x78451e){if(_0x78451e){_0x4b90cd=_0x78451e[_0xe45c('0x33')];if(!_0x250be9[_0xe45c('0x2d')][_0xe45c('0x34')]('nolimit')){_0x76feb9[_0xe45c('0x1a')]=qs[_0xe45c('0x1a')](_0x250be9[_0xe45c('0x2d')]['limit']);_0x76feb9[_0xe45c('0x1c')]=qs['offset'](_0x250be9[_0xe45c('0x2d')][_0xe45c('0x1c')]);}return _0x20af36['getFields'](_0x76feb9);}})[_0xe45c('0x20')](function(_0x1936c8){if(_0x1936c8){return _0x1936c8?{'count':_0x4b90cd,'rows':_0x1936c8}:null;}})[_0xe45c('0x20')](respondWithResult(_0x2732ac,null))[_0xe45c('0x43')](handleError(_0x2732ac,null));};exports['getSubjects']=function(_0xf1b89c,_0x39bdda,_0x387aca){var _0xc8eaf0={};var _0x240da9={};var _0x5ab487;var _0x12b4eb;return db[_0xe45c('0x28')][_0xe45c('0x48')]({'where':{'id':_0xf1b89c[_0xe45c('0x46')]['id']}})[_0xe45c('0x20')](handleEntityNotFound(_0x39bdda,null))['then'](function(_0x2ab9d5){if(_0x2ab9d5){_0x5ab487=_0x2ab9d5;_0x240da9[_0xe45c('0x2c')]=_[_0xe45c('0x2e')](db[_0xe45c('0x49')]['rawAttributes']);_0x240da9[_0xe45c('0x2d')]=_['keys'](_0xf1b89c['query']);_0x240da9[_0xe45c('0x2f')]=_[_0xe45c('0x30')](_0x240da9[_0xe45c('0x2c')],_0x240da9[_0xe45c('0x2d')]);_0xc8eaf0[_0xe45c('0x31')]=_[_0xe45c('0x30')](_0x240da9[_0xe45c('0x2c')],qs[_0xe45c('0x32')](_0xf1b89c[_0xe45c('0x2d')][_0xe45c('0x32')]));_0xc8eaf0['attributes']=_0xc8eaf0[_0xe45c('0x31')][_0xe45c('0x33')]?_0xc8eaf0[_0xe45c('0x31')]:_0x240da9[_0xe45c('0x2c')];_0xc8eaf0[_0xe45c('0x36')]=qs[_0xe45c('0x37')](_0xf1b89c[_0xe45c('0x2d')][_0xe45c('0x37')]);_0xc8eaf0[_0xe45c('0x38')]=qs[_0xe45c('0x2f')](_[_0xe45c('0x39')](_0xf1b89c['query'],_0x240da9[_0xe45c('0x2f')]));if(_0xf1b89c[_0xe45c('0x2d')]['filter']){_0xc8eaf0['where']=_[_0xe45c('0x3b')](_0xc8eaf0[_0xe45c('0x38')],{'$or':_[_0xe45c('0x27')](_0xc8eaf0[_0xe45c('0x31')],function(_0x55bb7b){var _0x37f425={};_0x37f425[_0x55bb7b]={'$like':'%'+_0xf1b89c[_0xe45c('0x2d')][_0xe45c('0x3a')]+'%'};return _0x37f425;})});}_0xc8eaf0=_['merge']({},_0xc8eaf0,_0xf1b89c[_0xe45c('0x3c')]);return _0x5ab487['getSubjects'](_0xc8eaf0);}})[_0xe45c('0x20')](function(_0x3dcb40){if(_0x3dcb40){_0x12b4eb=_0x3dcb40['length'];if(!_0xf1b89c[_0xe45c('0x2d')][_0xe45c('0x34')](_0xe45c('0x35'))){_0xc8eaf0[_0xe45c('0x1a')]=qs[_0xe45c('0x1a')](_0xf1b89c['query']['limit']);_0xc8eaf0['offset']=qs[_0xe45c('0x1c')](_0xf1b89c[_0xe45c('0x2d')][_0xe45c('0x1c')]);}return _0x5ab487[_0xe45c('0x4b')](_0xc8eaf0);}})[_0xe45c('0x20')](function(_0xc99a98){if(_0xc99a98){return _0xc99a98?{'count':_0x12b4eb,'rows':_0xc99a98}:null;}})[_0xe45c('0x20')](respondWithResult(_0x39bdda,null))[_0xe45c('0x43')](handleError(_0x39bdda,null));};exports[_0xe45c('0x4c')]=function(_0x4dd805,_0x4e5060,_0x5cb258){var _0x4144b5={};var _0x1fa82c={};var _0x2fd208;var _0x1a6ba7;return db[_0xe45c('0x28')][_0xe45c('0x48')]({'where':{'id':_0x4dd805['params']['id']}})[_0xe45c('0x20')](handleEntityNotFound(_0x4e5060,null))['then'](function(_0x566c0f){if(_0x566c0f){_0x2fd208=_0x566c0f;_0x1fa82c[_0xe45c('0x2c')]=_[_0xe45c('0x2e')](db[_0xe45c('0x49')][_0xe45c('0x4a')]);_0x1fa82c['query']=_[_0xe45c('0x2e')](_0x4dd805['query']);_0x1fa82c[_0xe45c('0x2f')]=_[_0xe45c('0x30')](_0x1fa82c[_0xe45c('0x2c')],_0x1fa82c[_0xe45c('0x2d')]);_0x4144b5['attributes']=_['intersection'](_0x1fa82c[_0xe45c('0x2c')],qs[_0xe45c('0x32')](_0x4dd805['query'][_0xe45c('0x32')]));_0x4144b5[_0xe45c('0x31')]=_0x4144b5[_0xe45c('0x31')]['length']?_0x4144b5['attributes']:_0x1fa82c[_0xe45c('0x2c')];_0x4144b5[_0xe45c('0x36')]=qs['sort'](_0x4dd805[_0xe45c('0x2d')][_0xe45c('0x37')]);_0x4144b5[_0xe45c('0x38')]=qs[_0xe45c('0x2f')](_['pick'](_0x4dd805[_0xe45c('0x2d')],_0x1fa82c[_0xe45c('0x2f')]));if(_0x4dd805[_0xe45c('0x2d')][_0xe45c('0x3a')]){_0x4144b5[_0xe45c('0x38')]=_['merge'](_0x4144b5[_0xe45c('0x38')],{'$or':_[_0xe45c('0x27')](_0x4144b5[_0xe45c('0x31')],function(_0x57ea88){var _0x45dca4={};_0x45dca4[_0x57ea88]={'$like':'%'+_0x4dd805[_0xe45c('0x2d')][_0xe45c('0x3a')]+'%'};return _0x45dca4;})});}_0x4144b5=_['merge']({},_0x4144b5,_0x4dd805['options']);return _0x2fd208[_0xe45c('0x4c')](_0x4144b5);}})[_0xe45c('0x20')](function(_0x1bfe77){if(_0x1bfe77){_0x1a6ba7=_0x1bfe77[_0xe45c('0x33')];if(!_0x4dd805['query'][_0xe45c('0x34')](_0xe45c('0x35'))){_0x4144b5[_0xe45c('0x1a')]=qs[_0xe45c('0x1a')](_0x4dd805[_0xe45c('0x2d')][_0xe45c('0x1a')]);_0x4144b5[_0xe45c('0x1c')]=qs[_0xe45c('0x1c')](_0x4dd805[_0xe45c('0x2d')][_0xe45c('0x1c')]);}return _0x2fd208[_0xe45c('0x4c')](_0x4144b5);}})[_0xe45c('0x20')](function(_0x1ecf07){if(_0x1ecf07){return _0x1ecf07?{'count':_0x1a6ba7,'rows':_0x1ecf07}:null;}})[_0xe45c('0x20')](respondWithResult(_0x4e5060,null))[_0xe45c('0x43')](handleError(_0x4e5060,null));};