Built motion from commit d5e4af8c.|2.6.23
[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 _0x2178=['request-promise','moment','bluebird','sox','to-csv','ejs','fs-extra','squel','crypto','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','map','Dynamics365Configuration','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','catch','show','keys','find','create','body','update','params','getFields','Dynamics365Field','hasOwnProperty','getSubjects','order','getDescriptions','findOne','eml-format','rimraf','fast-json-patch'];(function(_0x4d0662,_0x145963){var _0x6eea6d=function(_0x2def06){while(--_0x2def06){_0x4d0662['push'](_0x4d0662['shift']());}};_0x6eea6d(++_0x145963);}(_0x2178,0x131));var _0x8217=function(_0x192136,_0x434d09){_0x192136=_0x192136-0x0;var _0x2524a5=_0x2178[_0x192136];return _0x2524a5;};'use strict';var emlformat=require(_0x8217('0x0'));var rimraf=require(_0x8217('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8217('0x2'));var rp=require(_0x8217('0x3'));var moment=require(_0x8217('0x4'));var BPromise=require(_0x8217('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x8217('0x6'));var csv=require(_0x8217('0x7'));var ejs=require(_0x8217('0x8'));var fs=require('fs');var fs_extra=require(_0x8217('0x9'));var _=require('lodash');var squel=require(_0x8217('0xa'));var crypto=require(_0x8217('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x8217('0x7'));var querystring=require('querystring');var Papa=require(_0x8217('0xc'));var Redis=require(_0x8217('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x8217('0xe'));var as=require(_0x8217('0xf'));var hardwareService=require(_0x8217('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0x8217('0x11'));var config=require(_0x8217('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x8217('0x13'))['db'];function respondWithStatusCode(_0x5a787a,_0x41b092){_0x41b092=_0x41b092||0xcc;return function(_0x36fa50){if(_0x36fa50){return _0x5a787a[_0x8217('0x14')](_0x41b092);}return _0x5a787a[_0x8217('0x15')](_0x41b092)[_0x8217('0x16')]();};}function respondWithResult(_0x24cc93,_0x5ae8cb){_0x5ae8cb=_0x5ae8cb||0xc8;return function(_0x3d8eba){if(_0x3d8eba){return _0x24cc93['status'](_0x5ae8cb)[_0x8217('0x17')](_0x3d8eba);}};}function respondWithFilteredResult(_0x7ccfd4,_0x1a1bfa){return function(_0x29a264){if(_0x29a264){var _0x62e2c0=typeof _0x1a1bfa[_0x8217('0x18')]===_0x8217('0x19')&&typeof _0x1a1bfa[_0x8217('0x1a')]===_0x8217('0x19');var _0x122f7b=_0x29a264['count'];var _0x241a34=_0x62e2c0?0x0:_0x1a1bfa[_0x8217('0x18')];var _0x195250=_0x62e2c0?_0x29a264[_0x8217('0x1b')]:_0x1a1bfa[_0x8217('0x18')]+_0x1a1bfa[_0x8217('0x1a')];var _0x509d35;if(_0x195250>=_0x122f7b){_0x195250=_0x122f7b;_0x509d35=0xc8;}else{_0x509d35=0xce;}_0x7ccfd4['status'](_0x509d35);return _0x7ccfd4[_0x8217('0x1c')](_0x8217('0x1d'),_0x241a34+'-'+_0x195250+'/'+_0x122f7b)[_0x8217('0x17')](_0x29a264);}return null;};}function patchUpdates(_0x4225d0){return function(_0x36f999){try{jsonpatch[_0x8217('0x1e')](_0x36f999,_0x4225d0,!![]);}catch(_0x3d7766){return BPromise[_0x8217('0x1f')](_0x3d7766);}return _0x36f999[_0x8217('0x20')]();};}function saveUpdates(_0x1ca81a,_0x5b3c3b){return function(_0x55ee67){if(_0x55ee67){return _0x55ee67['update'](_0x1ca81a)[_0x8217('0x21')](function(_0x126dbc){return _0x126dbc;});}return null;};}function removeEntity(_0x46fd3c,_0x43a686){return function(_0x35987b){if(_0x35987b){return _0x35987b[_0x8217('0x22')]()[_0x8217('0x21')](function(){_0x46fd3c['status'](0xcc)[_0x8217('0x16')]();});}};}function handleEntityNotFound(_0x569421,_0x248582){return function(_0x1d1562){if(!_0x1d1562){_0x569421[_0x8217('0x14')](0x194);}return _0x1d1562;};}function handleError(_0x528e64,_0x5cec74){_0x5cec74=_0x5cec74||0x1f4;return function(_0x2f6fee){logger[_0x8217('0x23')](_0x2f6fee[_0x8217('0x24')]);if(_0x2f6fee[_0x8217('0x25')]){delete _0x2f6fee[_0x8217('0x25')];}_0x528e64['status'](_0x5cec74)[_0x8217('0x26')](_0x2f6fee);};}exports['index']=function(_0x1bf9c7,_0x2fe551){var _0x4babcb={},_0x401475={},_0x3a8990={'count':0x0,'rows':[]};var _0x70110=_[_0x8217('0x27')](db[_0x8217('0x28')][_0x8217('0x29')],function(_0x515935){return{'name':_0x515935[_0x8217('0x2a')],'type':_0x515935[_0x8217('0x2b')][_0x8217('0x2c')]};});_0x401475[_0x8217('0x2d')]=_[_0x8217('0x27')](_0x70110,_0x8217('0x25'));_0x401475[_0x8217('0x2e')]=_['keys'](_0x1bf9c7['query']);_0x401475[_0x8217('0x2f')]=_[_0x8217('0x30')](_0x401475[_0x8217('0x2d')],_0x401475['query']);_0x4babcb[_0x8217('0x31')]=_['intersection'](_0x401475['model'],qs[_0x8217('0x32')](_0x1bf9c7[_0x8217('0x2e')][_0x8217('0x32')]));_0x4babcb[_0x8217('0x31')]=_0x4babcb['attributes'][_0x8217('0x33')]?_0x4babcb['attributes']:_0x401475[_0x8217('0x2d')];if(!_0x1bf9c7[_0x8217('0x2e')]['hasOwnProperty'](_0x8217('0x34'))){_0x4babcb['limit']=qs[_0x8217('0x1a')](_0x1bf9c7[_0x8217('0x2e')][_0x8217('0x1a')]);_0x4babcb[_0x8217('0x18')]=qs[_0x8217('0x18')](_0x1bf9c7[_0x8217('0x2e')][_0x8217('0x18')]);}_0x4babcb['order']=qs[_0x8217('0x35')](_0x1bf9c7[_0x8217('0x2e')]['sort']);_0x4babcb[_0x8217('0x36')]=qs['filters'](_[_0x8217('0x37')](_0x1bf9c7['query'],_0x401475['filters']),_0x70110);if(_0x1bf9c7[_0x8217('0x2e')][_0x8217('0x38')]){_0x4babcb[_0x8217('0x36')]=_['merge'](_0x4babcb['where'],{'$or':_[_0x8217('0x27')](_0x70110,function(_0xab8687){if(_0xab8687[_0x8217('0x2b')]!==_0x8217('0x39')){var _0x1dfb7d={};_0x1dfb7d[_0xab8687['name']]={'$like':'%'+_0x1bf9c7[_0x8217('0x2e')][_0x8217('0x38')]+'%'};return _0x1dfb7d;}})});}_0x4babcb=_[_0x8217('0x3a')]({},_0x4babcb,_0x1bf9c7[_0x8217('0x3b')]);var _0x29b589={'where':_0x4babcb['where']};return db[_0x8217('0x28')][_0x8217('0x1b')](_0x29b589)[_0x8217('0x21')](function(_0x10985b){_0x3a8990[_0x8217('0x1b')]=_0x10985b;if(_0x1bf9c7[_0x8217('0x2e')][_0x8217('0x3c')]){_0x4babcb[_0x8217('0x3d')]=[{'all':!![]}];}return db[_0x8217('0x28')]['findAll'](_0x4babcb);})[_0x8217('0x21')](function(_0x4a15d3){_0x3a8990['rows']=_0x4a15d3;return _0x3a8990;})[_0x8217('0x21')](respondWithFilteredResult(_0x2fe551,_0x4babcb))[_0x8217('0x3e')](handleError(_0x2fe551,null));};exports[_0x8217('0x3f')]=function(_0x2a3853,_0x1fa8af){var _0x3c5c9e={'raw':![],'where':{'id':_0x2a3853['params']['id']}},_0x4b4367={};_0x4b4367[_0x8217('0x2d')]=_[_0x8217('0x40')](db[_0x8217('0x28')][_0x8217('0x29')]);_0x4b4367['query']=_[_0x8217('0x40')](_0x2a3853[_0x8217('0x2e')]);_0x4b4367[_0x8217('0x2f')]=_['intersection'](_0x4b4367[_0x8217('0x2d')],_0x4b4367[_0x8217('0x2e')]);_0x3c5c9e[_0x8217('0x31')]=_[_0x8217('0x30')](_0x4b4367[_0x8217('0x2d')],qs['fields'](_0x2a3853['query'][_0x8217('0x32')]));_0x3c5c9e[_0x8217('0x31')]=_0x3c5c9e[_0x8217('0x31')]['length']?_0x3c5c9e[_0x8217('0x31')]:_0x4b4367['model'];if(_0x2a3853[_0x8217('0x2e')][_0x8217('0x3c')]){_0x3c5c9e['include']=[{'all':!![]}];}_0x3c5c9e=_['merge']({},_0x3c5c9e,_0x2a3853[_0x8217('0x3b')]);return db[_0x8217('0x28')][_0x8217('0x41')](_0x3c5c9e)['then'](handleEntityNotFound(_0x1fa8af,null))[_0x8217('0x21')](respondWithResult(_0x1fa8af,null))[_0x8217('0x3e')](handleError(_0x1fa8af,null));};exports[_0x8217('0x42')]=function(_0x288304,_0x49cfb4){return db[_0x8217('0x28')][_0x8217('0x42')](_0x288304[_0x8217('0x43')],{})[_0x8217('0x21')](respondWithResult(_0x49cfb4,0xc9))[_0x8217('0x3e')](handleError(_0x49cfb4,null));};exports[_0x8217('0x44')]=function(_0x127fb4,_0x2240cb){if(_0x127fb4[_0x8217('0x43')]['id']){delete _0x127fb4['body']['id'];}return db[_0x8217('0x28')]['find']({'where':{'id':_0x127fb4[_0x8217('0x45')]['id']}})[_0x8217('0x21')](handleEntityNotFound(_0x2240cb,null))['then'](saveUpdates(_0x127fb4[_0x8217('0x43')],null))[_0x8217('0x21')](respondWithResult(_0x2240cb,null))[_0x8217('0x3e')](handleError(_0x2240cb,null));};exports['destroy']=function(_0x30508f,_0x16b6d7){return db[_0x8217('0x28')][_0x8217('0x41')]({'where':{'id':_0x30508f[_0x8217('0x45')]['id']}})[_0x8217('0x21')](handleEntityNotFound(_0x16b6d7,null))['then'](removeEntity(_0x16b6d7,null))[_0x8217('0x3e')](handleError(_0x16b6d7,null));};exports[_0x8217('0x46')]=function(_0x2fd2d3,_0x8c67de,_0x368634){var _0xf0f388={};var _0x4e3325={};var _0x1f12a2;var _0x2767c0;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x2fd2d3[_0x8217('0x45')]['id']}})[_0x8217('0x21')](handleEntityNotFound(_0x8c67de,null))[_0x8217('0x21')](function(_0x2a29af){if(_0x2a29af){_0x1f12a2=_0x2a29af;_0x4e3325[_0x8217('0x2d')]=_[_0x8217('0x40')](db[_0x8217('0x47')]['rawAttributes']);_0x4e3325[_0x8217('0x2e')]=_[_0x8217('0x40')](_0x2fd2d3[_0x8217('0x2e')]);_0x4e3325[_0x8217('0x2f')]=_[_0x8217('0x30')](_0x4e3325[_0x8217('0x2d')],_0x4e3325[_0x8217('0x2e')]);_0xf0f388[_0x8217('0x31')]=_['intersection'](_0x4e3325['model'],qs['fields'](_0x2fd2d3[_0x8217('0x2e')]['fields']));_0xf0f388[_0x8217('0x31')]=_0xf0f388[_0x8217('0x31')][_0x8217('0x33')]?_0xf0f388['attributes']:_0x4e3325[_0x8217('0x2d')];_0xf0f388['order']=qs['sort'](_0x2fd2d3[_0x8217('0x2e')][_0x8217('0x35')]);_0xf0f388[_0x8217('0x36')]=qs[_0x8217('0x2f')](_[_0x8217('0x37')](_0x2fd2d3[_0x8217('0x2e')],_0x4e3325[_0x8217('0x2f')]));if(_0x2fd2d3[_0x8217('0x2e')]['filter']){_0xf0f388['where']=_[_0x8217('0x3a')](_0xf0f388['where'],{'$or':_[_0x8217('0x27')](_0xf0f388['attributes'],function(_0x14295a){var _0x25799e={};_0x25799e[_0x14295a]={'$like':'%'+_0x2fd2d3['query'][_0x8217('0x38')]+'%'};return _0x25799e;})});}_0xf0f388=_[_0x8217('0x3a')]({},_0xf0f388,_0x2fd2d3[_0x8217('0x3b')]);return _0x1f12a2[_0x8217('0x46')](_0xf0f388);}})[_0x8217('0x21')](function(_0x392ff0){if(_0x392ff0){_0x2767c0=_0x392ff0[_0x8217('0x33')];if(!_0x2fd2d3[_0x8217('0x2e')][_0x8217('0x48')](_0x8217('0x34'))){_0xf0f388[_0x8217('0x1a')]=qs['limit'](_0x2fd2d3[_0x8217('0x2e')]['limit']);_0xf0f388['offset']=qs[_0x8217('0x18')](_0x2fd2d3[_0x8217('0x2e')][_0x8217('0x18')]);}return _0x1f12a2['getFields'](_0xf0f388);}})[_0x8217('0x21')](function(_0x1751cd){if(_0x1751cd){return _0x1751cd?{'count':_0x2767c0,'rows':_0x1751cd}:null;}})[_0x8217('0x21')](respondWithResult(_0x8c67de,null))[_0x8217('0x3e')](handleError(_0x8c67de,null));};exports[_0x8217('0x49')]=function(_0xa1fea8,_0x224ffc,_0x1a1c12){var _0x159eab={};var _0x138aa4={};var _0xc1b466;var _0x361a4b;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0xa1fea8['params']['id']}})[_0x8217('0x21')](handleEntityNotFound(_0x224ffc,null))[_0x8217('0x21')](function(_0x1f906b){if(_0x1f906b){_0xc1b466=_0x1f906b;_0x138aa4['model']=_[_0x8217('0x40')](db[_0x8217('0x47')]['rawAttributes']);_0x138aa4[_0x8217('0x2e')]=_['keys'](_0xa1fea8['query']);_0x138aa4[_0x8217('0x2f')]=_[_0x8217('0x30')](_0x138aa4[_0x8217('0x2d')],_0x138aa4[_0x8217('0x2e')]);_0x159eab['attributes']=_[_0x8217('0x30')](_0x138aa4[_0x8217('0x2d')],qs[_0x8217('0x32')](_0xa1fea8[_0x8217('0x2e')][_0x8217('0x32')]));_0x159eab['attributes']=_0x159eab[_0x8217('0x31')][_0x8217('0x33')]?_0x159eab[_0x8217('0x31')]:_0x138aa4[_0x8217('0x2d')];_0x159eab[_0x8217('0x4a')]=qs[_0x8217('0x35')](_0xa1fea8[_0x8217('0x2e')]['sort']);_0x159eab[_0x8217('0x36')]=qs[_0x8217('0x2f')](_['pick'](_0xa1fea8[_0x8217('0x2e')],_0x138aa4[_0x8217('0x2f')]));if(_0xa1fea8[_0x8217('0x2e')][_0x8217('0x38')]){_0x159eab['where']=_['merge'](_0x159eab['where'],{'$or':_[_0x8217('0x27')](_0x159eab[_0x8217('0x31')],function(_0x5587d9){var _0x9443c4={};_0x9443c4[_0x5587d9]={'$like':'%'+_0xa1fea8['query'][_0x8217('0x38')]+'%'};return _0x9443c4;})});}_0x159eab=_[_0x8217('0x3a')]({},_0x159eab,_0xa1fea8[_0x8217('0x3b')]);return _0xc1b466[_0x8217('0x49')](_0x159eab);}})['then'](function(_0x41c28c){if(_0x41c28c){_0x361a4b=_0x41c28c[_0x8217('0x33')];if(!_0xa1fea8[_0x8217('0x2e')][_0x8217('0x48')]('nolimit')){_0x159eab[_0x8217('0x1a')]=qs[_0x8217('0x1a')](_0xa1fea8[_0x8217('0x2e')][_0x8217('0x1a')]);_0x159eab[_0x8217('0x18')]=qs['offset'](_0xa1fea8[_0x8217('0x2e')][_0x8217('0x18')]);}return _0xc1b466[_0x8217('0x49')](_0x159eab);}})[_0x8217('0x21')](function(_0x136550){if(_0x136550){return _0x136550?{'count':_0x361a4b,'rows':_0x136550}:null;}})[_0x8217('0x21')](respondWithResult(_0x224ffc,null))[_0x8217('0x3e')](handleError(_0x224ffc,null));};exports[_0x8217('0x4b')]=function(_0x471f1b,_0x313a00,_0xaa8859){var _0x1bc89d={};var _0xf5f6d0={};var _0x586792;var _0x43e1f2;return db[_0x8217('0x28')][_0x8217('0x4c')]({'where':{'id':_0x471f1b[_0x8217('0x45')]['id']}})['then'](handleEntityNotFound(_0x313a00,null))['then'](function(_0x30731a){if(_0x30731a){_0x586792=_0x30731a;_0xf5f6d0[_0x8217('0x2d')]=_[_0x8217('0x40')](db[_0x8217('0x47')][_0x8217('0x29')]);_0xf5f6d0[_0x8217('0x2e')]=_[_0x8217('0x40')](_0x471f1b['query']);_0xf5f6d0[_0x8217('0x2f')]=_[_0x8217('0x30')](_0xf5f6d0[_0x8217('0x2d')],_0xf5f6d0[_0x8217('0x2e')]);_0x1bc89d[_0x8217('0x31')]=_[_0x8217('0x30')](_0xf5f6d0[_0x8217('0x2d')],qs['fields'](_0x471f1b['query'][_0x8217('0x32')]));_0x1bc89d[_0x8217('0x31')]=_0x1bc89d[_0x8217('0x31')][_0x8217('0x33')]?_0x1bc89d[_0x8217('0x31')]:_0xf5f6d0[_0x8217('0x2d')];_0x1bc89d[_0x8217('0x4a')]=qs[_0x8217('0x35')](_0x471f1b[_0x8217('0x2e')]['sort']);_0x1bc89d[_0x8217('0x36')]=qs['filters'](_['pick'](_0x471f1b[_0x8217('0x2e')],_0xf5f6d0[_0x8217('0x2f')]));if(_0x471f1b[_0x8217('0x2e')][_0x8217('0x38')]){_0x1bc89d[_0x8217('0x36')]=_[_0x8217('0x3a')](_0x1bc89d[_0x8217('0x36')],{'$or':_['map'](_0x1bc89d[_0x8217('0x31')],function(_0x5bc565){var _0x43c3e1={};_0x43c3e1[_0x5bc565]={'$like':'%'+_0x471f1b[_0x8217('0x2e')][_0x8217('0x38')]+'%'};return _0x43c3e1;})});}_0x1bc89d=_[_0x8217('0x3a')]({},_0x1bc89d,_0x471f1b[_0x8217('0x3b')]);return _0x586792[_0x8217('0x4b')](_0x1bc89d);}})[_0x8217('0x21')](function(_0x2430d7){if(_0x2430d7){_0x43e1f2=_0x2430d7[_0x8217('0x33')];if(!_0x471f1b['query']['hasOwnProperty'](_0x8217('0x34'))){_0x1bc89d[_0x8217('0x1a')]=qs['limit'](_0x471f1b[_0x8217('0x2e')]['limit']);_0x1bc89d[_0x8217('0x18')]=qs[_0x8217('0x18')](_0x471f1b[_0x8217('0x2e')][_0x8217('0x18')]);}return _0x586792['getDescriptions'](_0x1bc89d);}})[_0x8217('0x21')](function(_0xd683cd){if(_0xd683cd){return _0xd683cd?{'count':_0x43e1f2,'rows':_0xd683cd}:null;}})[_0x8217('0x21')](respondWithResult(_0x313a00,null))[_0x8217('0x3e')](handleError(_0x313a00,null));};