Built motion from commit 3c2ce842.|2.6.31
[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 _0x6c32=['type','key','map','query','keys','attributes','intersection','model','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','find','catch','create','body','update','getFields','findOne','Dynamics365Field','hasOwnProperty','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','limit','undefined','count','offset','set','apply','reject','save','then','destroy','stack','name','send','index','Dynamics365Configuration','rawAttributes','fieldName'];(function(_0x5d2803,_0xf375bd){var _0xdcad2c=function(_0x3c3a98){while(--_0x3c3a98){_0x5d2803['push'](_0x5d2803['shift']());}};_0xdcad2c(++_0xf375bd);}(_0x6c32,0x1c9));var _0x26c3=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x6c32[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0x26c3('0x0'));var rimraf=require(_0x26c3('0x1'));var zipdir=require(_0x26c3('0x2'));var jsonpatch=require(_0x26c3('0x3'));var rp=require(_0x26c3('0x4'));var moment=require('moment');var BPromise=require(_0x26c3('0x5'));var Mustache=require('mustache');var util=require(_0x26c3('0x6'));var path=require(_0x26c3('0x7'));var sox=require(_0x26c3('0x8'));var csv=require(_0x26c3('0x9'));var ejs=require(_0x26c3('0xa'));var fs=require('fs');var fs_extra=require(_0x26c3('0xb'));var _=require(_0x26c3('0xc'));var squel=require(_0x26c3('0xd'));var crypto=require(_0x26c3('0xe'));var jsforce=require(_0x26c3('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x26c3('0x9'));var querystring=require(_0x26c3('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x26c3('0x11'));var qs=require(_0x26c3('0x12'));var as=require(_0x26c3('0x13'));var hardwareService=require(_0x26c3('0x14'));var logger=require('../../config/logger')(_0x26c3('0x15'));var utils=require(_0x26c3('0x16'));var config=require(_0x26c3('0x17'));var licenseUtil=require(_0x26c3('0x18'));var db=require(_0x26c3('0x19'))['db'];function respondWithStatusCode(_0x10048c,_0x2d589f){_0x2d589f=_0x2d589f||0xcc;return function(_0x26b595){if(_0x26b595){return _0x10048c[_0x26c3('0x1a')](_0x2d589f);}return _0x10048c['status'](_0x2d589f)[_0x26c3('0x1b')]();};}function respondWithResult(_0x1b3925,_0x1f25a3){_0x1f25a3=_0x1f25a3||0xc8;return function(_0x214056){if(_0x214056){return _0x1b3925[_0x26c3('0x1c')](_0x1f25a3)[_0x26c3('0x1d')](_0x214056);}};}function respondWithFilteredResult(_0x190ce4,_0x36de8a){return function(_0x10ac6a){if(_0x10ac6a){var _0x2d057c=typeof _0x36de8a['offset']==='undefined'&&typeof _0x36de8a[_0x26c3('0x1e')]===_0x26c3('0x1f');var _0x46c3fb=_0x10ac6a[_0x26c3('0x20')];var _0x3f3d20=_0x2d057c?0x0:_0x36de8a[_0x26c3('0x21')];var _0xcce06b=_0x2d057c?_0x10ac6a[_0x26c3('0x20')]:_0x36de8a[_0x26c3('0x21')]+_0x36de8a[_0x26c3('0x1e')];var _0x57f94a;if(_0xcce06b>=_0x46c3fb){_0xcce06b=_0x46c3fb;_0x57f94a=0xc8;}else{_0x57f94a=0xce;}_0x190ce4[_0x26c3('0x1c')](_0x57f94a);return _0x190ce4[_0x26c3('0x22')]('Content-Range',_0x3f3d20+'-'+_0xcce06b+'/'+_0x46c3fb)[_0x26c3('0x1d')](_0x10ac6a);}return null;};}function patchUpdates(_0x1d47a8){return function(_0x226e65){try{jsonpatch[_0x26c3('0x23')](_0x226e65,_0x1d47a8,!![]);}catch(_0x29a863){return BPromise[_0x26c3('0x24')](_0x29a863);}return _0x226e65[_0x26c3('0x25')]();};}function saveUpdates(_0xe37524,_0x1a7ba6){return function(_0x327c4f){if(_0x327c4f){return _0x327c4f['update'](_0xe37524)[_0x26c3('0x26')](function(_0xc9a543){return _0xc9a543;});}return null;};}function removeEntity(_0x14d3e7,_0x2c1aa3){return function(_0x483080){if(_0x483080){return _0x483080[_0x26c3('0x27')]()[_0x26c3('0x26')](function(){_0x14d3e7[_0x26c3('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5dbd36,_0x245d6){return function(_0x2a458d){if(!_0x2a458d){_0x5dbd36[_0x26c3('0x1a')](0x194);}return _0x2a458d;};}function handleError(_0x4a2a8b,_0x15403f){_0x15403f=_0x15403f||0x1f4;return function(_0x15209b){logger['error'](_0x15209b[_0x26c3('0x28')]);if(_0x15209b[_0x26c3('0x29')]){delete _0x15209b[_0x26c3('0x29')];}_0x4a2a8b[_0x26c3('0x1c')](_0x15403f)[_0x26c3('0x2a')](_0x15209b);};}exports[_0x26c3('0x2b')]=function(_0x436c17,_0x4f896d){var _0x503df0={},_0x1eb6b8={},_0x517a99={'count':0x0,'rows':[]};var _0x79b2a2=_['map'](db[_0x26c3('0x2c')][_0x26c3('0x2d')],function(_0x1cc0a4){return{'name':_0x1cc0a4[_0x26c3('0x2e')],'type':_0x1cc0a4[_0x26c3('0x2f')][_0x26c3('0x30')]};});_0x1eb6b8['model']=_[_0x26c3('0x31')](_0x79b2a2,'name');_0x1eb6b8[_0x26c3('0x32')]=_[_0x26c3('0x33')](_0x436c17[_0x26c3('0x32')]);_0x1eb6b8['filters']=_['intersection'](_0x1eb6b8['model'],_0x1eb6b8['query']);_0x503df0[_0x26c3('0x34')]=_[_0x26c3('0x35')](_0x1eb6b8[_0x26c3('0x36')],qs[_0x26c3('0x37')](_0x436c17[_0x26c3('0x32')][_0x26c3('0x37')]));_0x503df0[_0x26c3('0x34')]=_0x503df0[_0x26c3('0x34')][_0x26c3('0x38')]?_0x503df0['attributes']:_0x1eb6b8[_0x26c3('0x36')];if(!_0x436c17[_0x26c3('0x32')]['hasOwnProperty'](_0x26c3('0x39'))){_0x503df0[_0x26c3('0x1e')]=qs[_0x26c3('0x1e')](_0x436c17[_0x26c3('0x32')][_0x26c3('0x1e')]);_0x503df0[_0x26c3('0x21')]=qs[_0x26c3('0x21')](_0x436c17['query'][_0x26c3('0x21')]);}_0x503df0[_0x26c3('0x3a')]=qs[_0x26c3('0x3b')](_0x436c17[_0x26c3('0x32')][_0x26c3('0x3b')]);_0x503df0[_0x26c3('0x3c')]=qs[_0x26c3('0x3d')](_[_0x26c3('0x3e')](_0x436c17['query'],_0x1eb6b8[_0x26c3('0x3d')]),_0x79b2a2);if(_0x436c17[_0x26c3('0x32')][_0x26c3('0x3f')]){_0x503df0[_0x26c3('0x3c')]=_[_0x26c3('0x40')](_0x503df0[_0x26c3('0x3c')],{'$or':_[_0x26c3('0x31')](_0x79b2a2,function(_0x4c7e9a){if(_0x4c7e9a[_0x26c3('0x2f')]!==_0x26c3('0x41')){var _0x40d893={};_0x40d893[_0x4c7e9a[_0x26c3('0x29')]]={'$like':'%'+_0x436c17['query'][_0x26c3('0x3f')]+'%'};return _0x40d893;}})});}_0x503df0=_['merge']({},_0x503df0,_0x436c17[_0x26c3('0x42')]);var _0x192405={'where':_0x503df0[_0x26c3('0x3c')]};return db[_0x26c3('0x2c')][_0x26c3('0x20')](_0x192405)[_0x26c3('0x26')](function(_0xdff84){_0x517a99[_0x26c3('0x20')]=_0xdff84;if(_0x436c17[_0x26c3('0x32')][_0x26c3('0x43')]){_0x503df0[_0x26c3('0x44')]=[{'all':!![]}];}return db[_0x26c3('0x2c')][_0x26c3('0x45')](_0x503df0);})[_0x26c3('0x26')](function(_0xa34b5){_0x517a99[_0x26c3('0x46')]=_0xa34b5;return _0x517a99;})[_0x26c3('0x26')](respondWithFilteredResult(_0x4f896d,_0x503df0))['catch'](handleError(_0x4f896d,null));};exports[_0x26c3('0x47')]=function(_0x501770,_0x23a0b3){var _0x5014e3={'raw':![],'where':{'id':_0x501770[_0x26c3('0x48')]['id']}},_0x308072={};_0x308072['model']=_[_0x26c3('0x33')](db[_0x26c3('0x2c')][_0x26c3('0x2d')]);_0x308072['query']=_[_0x26c3('0x33')](_0x501770['query']);_0x308072[_0x26c3('0x3d')]=_['intersection'](_0x308072[_0x26c3('0x36')],_0x308072[_0x26c3('0x32')]);_0x5014e3[_0x26c3('0x34')]=_['intersection'](_0x308072[_0x26c3('0x36')],qs[_0x26c3('0x37')](_0x501770[_0x26c3('0x32')][_0x26c3('0x37')]));_0x5014e3[_0x26c3('0x34')]=_0x5014e3[_0x26c3('0x34')][_0x26c3('0x38')]?_0x5014e3['attributes']:_0x308072[_0x26c3('0x36')];if(_0x501770[_0x26c3('0x32')][_0x26c3('0x43')]){_0x5014e3[_0x26c3('0x44')]=[{'all':!![]}];}_0x5014e3=_['merge']({},_0x5014e3,_0x501770[_0x26c3('0x42')]);return db[_0x26c3('0x2c')][_0x26c3('0x49')](_0x5014e3)[_0x26c3('0x26')](handleEntityNotFound(_0x23a0b3,null))['then'](respondWithResult(_0x23a0b3,null))[_0x26c3('0x4a')](handleError(_0x23a0b3,null));};exports[_0x26c3('0x4b')]=function(_0x5348c8,_0x2cb60d){return db['Dynamics365Configuration'][_0x26c3('0x4b')](_0x5348c8[_0x26c3('0x4c')],{})['then'](respondWithResult(_0x2cb60d,0xc9))[_0x26c3('0x4a')](handleError(_0x2cb60d,null));};exports[_0x26c3('0x4d')]=function(_0x27df34,_0xbfc8f1){if(_0x27df34['body']['id']){delete _0x27df34[_0x26c3('0x4c')]['id'];}return db[_0x26c3('0x2c')][_0x26c3('0x49')]({'where':{'id':_0x27df34[_0x26c3('0x48')]['id']}})['then'](handleEntityNotFound(_0xbfc8f1,null))[_0x26c3('0x26')](saveUpdates(_0x27df34['body'],null))['then'](respondWithResult(_0xbfc8f1,null))[_0x26c3('0x4a')](handleError(_0xbfc8f1,null));};exports[_0x26c3('0x27')]=function(_0x7e885f,_0x36bb54){return db[_0x26c3('0x2c')][_0x26c3('0x49')]({'where':{'id':_0x7e885f[_0x26c3('0x48')]['id']}})[_0x26c3('0x26')](handleEntityNotFound(_0x36bb54,null))['then'](removeEntity(_0x36bb54,null))[_0x26c3('0x4a')](handleError(_0x36bb54,null));};exports[_0x26c3('0x4e')]=function(_0x318342,_0x311a19,_0x870636){var _0x5deb9a={};var _0xfad89c={};var _0x2a372e;var _0x591f58;return db[_0x26c3('0x2c')][_0x26c3('0x4f')]({'where':{'id':_0x318342['params']['id']}})[_0x26c3('0x26')](handleEntityNotFound(_0x311a19,null))['then'](function(_0x2e5aed){if(_0x2e5aed){_0x2a372e=_0x2e5aed;_0xfad89c[_0x26c3('0x36')]=_[_0x26c3('0x33')](db[_0x26c3('0x50')]['rawAttributes']);_0xfad89c[_0x26c3('0x32')]=_[_0x26c3('0x33')](_0x318342[_0x26c3('0x32')]);_0xfad89c['filters']=_[_0x26c3('0x35')](_0xfad89c[_0x26c3('0x36')],_0xfad89c[_0x26c3('0x32')]);_0x5deb9a['attributes']=_[_0x26c3('0x35')](_0xfad89c[_0x26c3('0x36')],qs[_0x26c3('0x37')](_0x318342[_0x26c3('0x32')][_0x26c3('0x37')]));_0x5deb9a[_0x26c3('0x34')]=_0x5deb9a['attributes'][_0x26c3('0x38')]?_0x5deb9a['attributes']:_0xfad89c[_0x26c3('0x36')];_0x5deb9a['order']=qs[_0x26c3('0x3b')](_0x318342[_0x26c3('0x32')][_0x26c3('0x3b')]);_0x5deb9a['where']=qs[_0x26c3('0x3d')](_[_0x26c3('0x3e')](_0x318342[_0x26c3('0x32')],_0xfad89c[_0x26c3('0x3d')]));if(_0x318342[_0x26c3('0x32')][_0x26c3('0x3f')]){_0x5deb9a[_0x26c3('0x3c')]=_[_0x26c3('0x40')](_0x5deb9a['where'],{'$or':_[_0x26c3('0x31')](_0x5deb9a[_0x26c3('0x34')],function(_0x25b92c){var _0x581d73={};_0x581d73[_0x25b92c]={'$like':'%'+_0x318342['query'][_0x26c3('0x3f')]+'%'};return _0x581d73;})});}_0x5deb9a=_[_0x26c3('0x40')]({},_0x5deb9a,_0x318342[_0x26c3('0x42')]);return _0x2a372e[_0x26c3('0x4e')](_0x5deb9a);}})[_0x26c3('0x26')](function(_0x43e9a4){if(_0x43e9a4){_0x591f58=_0x43e9a4[_0x26c3('0x38')];if(!_0x318342['query'][_0x26c3('0x51')](_0x26c3('0x39'))){_0x5deb9a[_0x26c3('0x1e')]=qs[_0x26c3('0x1e')](_0x318342['query']['limit']);_0x5deb9a[_0x26c3('0x21')]=qs['offset'](_0x318342[_0x26c3('0x32')]['offset']);}return _0x2a372e[_0x26c3('0x4e')](_0x5deb9a);}})[_0x26c3('0x26')](function(_0x5321e1){if(_0x5321e1){return _0x5321e1?{'count':_0x591f58,'rows':_0x5321e1}:null;}})['then'](respondWithResult(_0x311a19,null))[_0x26c3('0x4a')](handleError(_0x311a19,null));};exports['getSubjects']=function(_0x15e7e7,_0x276719,_0x2ed4f4){var _0x5b49d7={};var _0x5e4e67={};var _0x1fe711;var _0x389b34;return db['Dynamics365Configuration'][_0x26c3('0x4f')]({'where':{'id':_0x15e7e7[_0x26c3('0x48')]['id']}})[_0x26c3('0x26')](handleEntityNotFound(_0x276719,null))['then'](function(_0x549a28){if(_0x549a28){_0x1fe711=_0x549a28;_0x5e4e67['model']=_[_0x26c3('0x33')](db[_0x26c3('0x50')][_0x26c3('0x2d')]);_0x5e4e67['query']=_['keys'](_0x15e7e7['query']);_0x5e4e67[_0x26c3('0x3d')]=_[_0x26c3('0x35')](_0x5e4e67['model'],_0x5e4e67['query']);_0x5b49d7[_0x26c3('0x34')]=_[_0x26c3('0x35')](_0x5e4e67['model'],qs[_0x26c3('0x37')](_0x15e7e7['query'][_0x26c3('0x37')]));_0x5b49d7[_0x26c3('0x34')]=_0x5b49d7[_0x26c3('0x34')][_0x26c3('0x38')]?_0x5b49d7[_0x26c3('0x34')]:_0x5e4e67[_0x26c3('0x36')];_0x5b49d7['order']=qs[_0x26c3('0x3b')](_0x15e7e7[_0x26c3('0x32')][_0x26c3('0x3b')]);_0x5b49d7[_0x26c3('0x3c')]=qs['filters'](_[_0x26c3('0x3e')](_0x15e7e7[_0x26c3('0x32')],_0x5e4e67[_0x26c3('0x3d')]));if(_0x15e7e7[_0x26c3('0x32')][_0x26c3('0x3f')]){_0x5b49d7[_0x26c3('0x3c')]=_['merge'](_0x5b49d7[_0x26c3('0x3c')],{'$or':_[_0x26c3('0x31')](_0x5b49d7[_0x26c3('0x34')],function(_0x21fd12){var _0xc4cbf5={};_0xc4cbf5[_0x21fd12]={'$like':'%'+_0x15e7e7['query'][_0x26c3('0x3f')]+'%'};return _0xc4cbf5;})});}_0x5b49d7=_[_0x26c3('0x40')]({},_0x5b49d7,_0x15e7e7[_0x26c3('0x42')]);return _0x1fe711['getSubjects'](_0x5b49d7);}})[_0x26c3('0x26')](function(_0x33fe27){if(_0x33fe27){_0x389b34=_0x33fe27[_0x26c3('0x38')];if(!_0x15e7e7[_0x26c3('0x32')]['hasOwnProperty'](_0x26c3('0x39'))){_0x5b49d7['limit']=qs[_0x26c3('0x1e')](_0x15e7e7['query'][_0x26c3('0x1e')]);_0x5b49d7[_0x26c3('0x21')]=qs[_0x26c3('0x21')](_0x15e7e7[_0x26c3('0x32')][_0x26c3('0x21')]);}return _0x1fe711[_0x26c3('0x52')](_0x5b49d7);}})[_0x26c3('0x26')](function(_0x4bd855){if(_0x4bd855){return _0x4bd855?{'count':_0x389b34,'rows':_0x4bd855}:null;}})[_0x26c3('0x26')](respondWithResult(_0x276719,null))[_0x26c3('0x4a')](handleError(_0x276719,null));};exports[_0x26c3('0x53')]=function(_0x2e3304,_0x51e7d8,_0x4ad2b7){var _0x4c7375={};var _0x307b1d={};var _0x44c104;var _0x38fe02;return db[_0x26c3('0x2c')]['findOne']({'where':{'id':_0x2e3304[_0x26c3('0x48')]['id']}})[_0x26c3('0x26')](handleEntityNotFound(_0x51e7d8,null))[_0x26c3('0x26')](function(_0x55e3ac){if(_0x55e3ac){_0x44c104=_0x55e3ac;_0x307b1d['model']=_[_0x26c3('0x33')](db['Dynamics365Field'][_0x26c3('0x2d')]);_0x307b1d['query']=_[_0x26c3('0x33')](_0x2e3304[_0x26c3('0x32')]);_0x307b1d[_0x26c3('0x3d')]=_[_0x26c3('0x35')](_0x307b1d[_0x26c3('0x36')],_0x307b1d['query']);_0x4c7375[_0x26c3('0x34')]=_[_0x26c3('0x35')](_0x307b1d[_0x26c3('0x36')],qs[_0x26c3('0x37')](_0x2e3304[_0x26c3('0x32')]['fields']));_0x4c7375[_0x26c3('0x34')]=_0x4c7375[_0x26c3('0x34')][_0x26c3('0x38')]?_0x4c7375['attributes']:_0x307b1d['model'];_0x4c7375[_0x26c3('0x3a')]=qs[_0x26c3('0x3b')](_0x2e3304[_0x26c3('0x32')][_0x26c3('0x3b')]);_0x4c7375[_0x26c3('0x3c')]=qs[_0x26c3('0x3d')](_[_0x26c3('0x3e')](_0x2e3304[_0x26c3('0x32')],_0x307b1d[_0x26c3('0x3d')]));if(_0x2e3304[_0x26c3('0x32')][_0x26c3('0x3f')]){_0x4c7375[_0x26c3('0x3c')]=_['merge'](_0x4c7375[_0x26c3('0x3c')],{'$or':_[_0x26c3('0x31')](_0x4c7375['attributes'],function(_0x51b86a){var _0x19d3ee={};_0x19d3ee[_0x51b86a]={'$like':'%'+_0x2e3304[_0x26c3('0x32')][_0x26c3('0x3f')]+'%'};return _0x19d3ee;})});}_0x4c7375=_[_0x26c3('0x40')]({},_0x4c7375,_0x2e3304[_0x26c3('0x42')]);return _0x44c104['getDescriptions'](_0x4c7375);}})['then'](function(_0x170670){if(_0x170670){_0x38fe02=_0x170670[_0x26c3('0x38')];if(!_0x2e3304[_0x26c3('0x32')]['hasOwnProperty']('nolimit')){_0x4c7375['limit']=qs[_0x26c3('0x1e')](_0x2e3304['query'][_0x26c3('0x1e')]);_0x4c7375[_0x26c3('0x21')]=qs['offset'](_0x2e3304[_0x26c3('0x32')][_0x26c3('0x21')]);}return _0x44c104[_0x26c3('0x53')](_0x4c7375);}})['then'](function(_0x17941e){if(_0x17941e){return _0x17941e?{'count':_0x38fe02,'rows':_0x17941e}:null;}})[_0x26c3('0x26')](respondWithResult(_0x51e7d8,null))[_0x26c3('0x4a')](handleError(_0x51e7d8,null));};