fe30da6b9fdfc5fa605d59a43003326c24d0dc27
[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 _0x7ef3=['fast-json-patch','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','end','undefined','limit','count','offset','status','set','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','map','Dynamics365Configuration','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','params','find','catch','create','body','getFields','findOne','pick','getSubjects','Dynamics365Field','getDescriptions','eml-format','rimraf'];(function(_0x3b7305,_0x2dee39){var _0x1ba615=function(_0x2a4708){while(--_0x2a4708){_0x3b7305['push'](_0x3b7305['shift']());}};_0x1ba615(++_0x2dee39);}(_0x7ef3,0x146));var _0x37ef=function(_0x32f7d7,_0x54231b){_0x32f7d7=_0x32f7d7-0x0;var _0x133d09=_0x7ef3[_0x32f7d7];return _0x133d09;};'use strict';var emlformat=require(_0x37ef('0x0'));var rimraf=require(_0x37ef('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x37ef('0x2'));var rp=require('request-promise');var moment=require(_0x37ef('0x3'));var BPromise=require(_0x37ef('0x4'));var Mustache=require('mustache');var util=require(_0x37ef('0x5'));var path=require(_0x37ef('0x6'));var sox=require(_0x37ef('0x7'));var csv=require(_0x37ef('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x37ef('0x9'));var _=require(_0x37ef('0xa'));var squel=require(_0x37ef('0xb'));var crypto=require(_0x37ef('0xc'));var jsforce=require(_0x37ef('0xd'));var deskjs=require(_0x37ef('0xe'));var toCsv=require(_0x37ef('0x8'));var querystring=require(_0x37ef('0xf'));var Papa=require(_0x37ef('0x10'));var Redis=require(_0x37ef('0x11'));var authService=require(_0x37ef('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x37ef('0x13'));var hardwareService=require(_0x37ef('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x37ef('0x15'));var config=require(_0x37ef('0x16'));var licenseUtil=require(_0x37ef('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4c0ae7,_0x5ce742){_0x5ce742=_0x5ce742||0xcc;return function(_0x583c5d){if(_0x583c5d){return _0x4c0ae7['sendStatus'](_0x5ce742);}return _0x4c0ae7['status'](_0x5ce742)[_0x37ef('0x18')]();};}function respondWithResult(_0x58d122,_0xddd978){_0xddd978=_0xddd978||0xc8;return function(_0x3c1d94){if(_0x3c1d94){return _0x58d122['status'](_0xddd978)['json'](_0x3c1d94);}};}function respondWithFilteredResult(_0x4cd265,_0x141b53){return function(_0x4682a0){if(_0x4682a0){var _0x466613=typeof _0x141b53['offset']===_0x37ef('0x19')&&typeof _0x141b53[_0x37ef('0x1a')]===_0x37ef('0x19');var _0x54e32e=_0x4682a0[_0x37ef('0x1b')];var _0x40ea6a=_0x466613?0x0:_0x141b53[_0x37ef('0x1c')];var _0x3c16e3=_0x466613?_0x4682a0[_0x37ef('0x1b')]:_0x141b53['offset']+_0x141b53[_0x37ef('0x1a')];var _0x21b930;if(_0x3c16e3>=_0x54e32e){_0x3c16e3=_0x54e32e;_0x21b930=0xc8;}else{_0x21b930=0xce;}_0x4cd265[_0x37ef('0x1d')](_0x21b930);return _0x4cd265[_0x37ef('0x1e')](_0x37ef('0x1f'),_0x40ea6a+'-'+_0x3c16e3+'/'+_0x54e32e)[_0x37ef('0x20')](_0x4682a0);}return null;};}function patchUpdates(_0xc507e7){return function(_0x57e33b){try{jsonpatch[_0x37ef('0x21')](_0x57e33b,_0xc507e7,!![]);}catch(_0x5c7230){return BPromise[_0x37ef('0x22')](_0x5c7230);}return _0x57e33b[_0x37ef('0x23')]();};}function saveUpdates(_0x398951,_0x27ff44){return function(_0x475044){if(_0x475044){return _0x475044[_0x37ef('0x24')](_0x398951)[_0x37ef('0x25')](function(_0x252686){return _0x252686;});}return null;};}function removeEntity(_0x5ef87f,_0x36b971){return function(_0x251931){if(_0x251931){return _0x251931[_0x37ef('0x26')]()[_0x37ef('0x25')](function(){_0x5ef87f['status'](0xcc)[_0x37ef('0x18')]();});}};}function handleEntityNotFound(_0x402437,_0x46e215){return function(_0x524bdb){if(!_0x524bdb){_0x402437[_0x37ef('0x27')](0x194);}return _0x524bdb;};}function handleError(_0x970fa2,_0x1e769d){_0x1e769d=_0x1e769d||0x1f4;return function(_0x24d64d){logger[_0x37ef('0x28')](_0x24d64d[_0x37ef('0x29')]);if(_0x24d64d[_0x37ef('0x2a')]){delete _0x24d64d[_0x37ef('0x2a')];}_0x970fa2[_0x37ef('0x1d')](_0x1e769d)[_0x37ef('0x2b')](_0x24d64d);};}exports['index']=function(_0x8d05c0,_0x503906){var _0xe32d75={},_0xf84d88={},_0x12165c={'count':0x0,'rows':[]};var _0x46502d=_[_0x37ef('0x2c')](db[_0x37ef('0x2d')][_0x37ef('0x2e')],function(_0x7cd7c3){return{'name':_0x7cd7c3[_0x37ef('0x2f')],'type':_0x7cd7c3[_0x37ef('0x30')][_0x37ef('0x31')]};});_0xf84d88[_0x37ef('0x32')]=_[_0x37ef('0x2c')](_0x46502d,_0x37ef('0x2a'));_0xf84d88[_0x37ef('0x33')]=_[_0x37ef('0x34')](_0x8d05c0[_0x37ef('0x33')]);_0xf84d88[_0x37ef('0x35')]=_[_0x37ef('0x36')](_0xf84d88['model'],_0xf84d88[_0x37ef('0x33')]);_0xe32d75[_0x37ef('0x37')]=_[_0x37ef('0x36')](_0xf84d88[_0x37ef('0x32')],qs[_0x37ef('0x38')](_0x8d05c0['query']['fields']));_0xe32d75[_0x37ef('0x37')]=_0xe32d75[_0x37ef('0x37')][_0x37ef('0x39')]?_0xe32d75[_0x37ef('0x37')]:_0xf84d88[_0x37ef('0x32')];if(!_0x8d05c0['query'][_0x37ef('0x3a')](_0x37ef('0x3b'))){_0xe32d75[_0x37ef('0x1a')]=qs[_0x37ef('0x1a')](_0x8d05c0[_0x37ef('0x33')]['limit']);_0xe32d75[_0x37ef('0x1c')]=qs[_0x37ef('0x1c')](_0x8d05c0[_0x37ef('0x33')][_0x37ef('0x1c')]);}_0xe32d75[_0x37ef('0x3c')]=qs['sort'](_0x8d05c0['query'][_0x37ef('0x3d')]);_0xe32d75[_0x37ef('0x3e')]=qs[_0x37ef('0x35')](_['pick'](_0x8d05c0[_0x37ef('0x33')],_0xf84d88[_0x37ef('0x35')]),_0x46502d);if(_0x8d05c0[_0x37ef('0x33')][_0x37ef('0x3f')]){_0xe32d75[_0x37ef('0x3e')]=_[_0x37ef('0x40')](_0xe32d75['where'],{'$or':_['map'](_0x46502d,function(_0x71244f){if(_0x71244f['type']!==_0x37ef('0x41')){var _0x48066f={};_0x48066f[_0x71244f[_0x37ef('0x2a')]]={'$like':'%'+_0x8d05c0[_0x37ef('0x33')][_0x37ef('0x3f')]+'%'};return _0x48066f;}})});}_0xe32d75=_[_0x37ef('0x40')]({},_0xe32d75,_0x8d05c0[_0x37ef('0x42')]);var _0x39009d={'where':_0xe32d75[_0x37ef('0x3e')]};return db['Dynamics365Configuration'][_0x37ef('0x1b')](_0x39009d)[_0x37ef('0x25')](function(_0x1978dd){_0x12165c[_0x37ef('0x1b')]=_0x1978dd;if(_0x8d05c0['query'][_0x37ef('0x43')]){_0xe32d75[_0x37ef('0x44')]=[{'all':!![]}];}return db[_0x37ef('0x2d')][_0x37ef('0x45')](_0xe32d75);})[_0x37ef('0x25')](function(_0x4cb6b1){_0x12165c[_0x37ef('0x46')]=_0x4cb6b1;return _0x12165c;})[_0x37ef('0x25')](respondWithFilteredResult(_0x503906,_0xe32d75))['catch'](handleError(_0x503906,null));};exports['show']=function(_0x353abe,_0x441fdd){var _0x39ac5c={'raw':![],'where':{'id':_0x353abe[_0x37ef('0x47')]['id']}},_0x3bb6f4={};_0x3bb6f4[_0x37ef('0x32')]=_['keys'](db['Dynamics365Configuration']['rawAttributes']);_0x3bb6f4[_0x37ef('0x33')]=_[_0x37ef('0x34')](_0x353abe[_0x37ef('0x33')]);_0x3bb6f4['filters']=_[_0x37ef('0x36')](_0x3bb6f4[_0x37ef('0x32')],_0x3bb6f4[_0x37ef('0x33')]);_0x39ac5c[_0x37ef('0x37')]=_['intersection'](_0x3bb6f4[_0x37ef('0x32')],qs[_0x37ef('0x38')](_0x353abe[_0x37ef('0x33')][_0x37ef('0x38')]));_0x39ac5c[_0x37ef('0x37')]=_0x39ac5c[_0x37ef('0x37')]['length']?_0x39ac5c['attributes']:_0x3bb6f4[_0x37ef('0x32')];if(_0x353abe[_0x37ef('0x33')][_0x37ef('0x43')]){_0x39ac5c['include']=[{'all':!![]}];}_0x39ac5c=_[_0x37ef('0x40')]({},_0x39ac5c,_0x353abe[_0x37ef('0x42')]);return db['Dynamics365Configuration'][_0x37ef('0x48')](_0x39ac5c)[_0x37ef('0x25')](handleEntityNotFound(_0x441fdd,null))[_0x37ef('0x25')](respondWithResult(_0x441fdd,null))[_0x37ef('0x49')](handleError(_0x441fdd,null));};exports[_0x37ef('0x4a')]=function(_0x3dd27c,_0x2a77ec){return db['Dynamics365Configuration'][_0x37ef('0x4a')](_0x3dd27c[_0x37ef('0x4b')],{})[_0x37ef('0x25')](respondWithResult(_0x2a77ec,0xc9))['catch'](handleError(_0x2a77ec,null));};exports[_0x37ef('0x24')]=function(_0x355f5d,_0x535999){if(_0x355f5d[_0x37ef('0x4b')]['id']){delete _0x355f5d['body']['id'];}return db[_0x37ef('0x2d')][_0x37ef('0x48')]({'where':{'id':_0x355f5d['params']['id']}})[_0x37ef('0x25')](handleEntityNotFound(_0x535999,null))[_0x37ef('0x25')](saveUpdates(_0x355f5d[_0x37ef('0x4b')],null))[_0x37ef('0x25')](respondWithResult(_0x535999,null))[_0x37ef('0x49')](handleError(_0x535999,null));};exports[_0x37ef('0x26')]=function(_0x3a116c,_0x3e76d3){return db['Dynamics365Configuration']['find']({'where':{'id':_0x3a116c['params']['id']}})['then'](handleEntityNotFound(_0x3e76d3,null))['then'](removeEntity(_0x3e76d3,null))[_0x37ef('0x49')](handleError(_0x3e76d3,null));};exports[_0x37ef('0x4c')]=function(_0x4bec09,_0xddbd3a,_0x3ea3a7){var _0x596e94={};var _0x14eab1={};var _0x4f6115;var _0x479893;return db[_0x37ef('0x2d')][_0x37ef('0x4d')]({'where':{'id':_0x4bec09[_0x37ef('0x47')]['id']}})[_0x37ef('0x25')](handleEntityNotFound(_0xddbd3a,null))[_0x37ef('0x25')](function(_0x5df37e){if(_0x5df37e){_0x4f6115=_0x5df37e;_0x14eab1['model']=_[_0x37ef('0x34')](db['Dynamics365Field'][_0x37ef('0x2e')]);_0x14eab1[_0x37ef('0x33')]=_[_0x37ef('0x34')](_0x4bec09[_0x37ef('0x33')]);_0x14eab1[_0x37ef('0x35')]=_[_0x37ef('0x36')](_0x14eab1[_0x37ef('0x32')],_0x14eab1['query']);_0x596e94[_0x37ef('0x37')]=_[_0x37ef('0x36')](_0x14eab1[_0x37ef('0x32')],qs[_0x37ef('0x38')](_0x4bec09[_0x37ef('0x33')][_0x37ef('0x38')]));_0x596e94[_0x37ef('0x37')]=_0x596e94['attributes'][_0x37ef('0x39')]?_0x596e94[_0x37ef('0x37')]:_0x14eab1[_0x37ef('0x32')];_0x596e94[_0x37ef('0x3c')]=qs['sort'](_0x4bec09[_0x37ef('0x33')][_0x37ef('0x3d')]);_0x596e94[_0x37ef('0x3e')]=qs[_0x37ef('0x35')](_[_0x37ef('0x4e')](_0x4bec09[_0x37ef('0x33')],_0x14eab1[_0x37ef('0x35')]));if(_0x4bec09[_0x37ef('0x33')][_0x37ef('0x3f')]){_0x596e94[_0x37ef('0x3e')]=_['merge'](_0x596e94[_0x37ef('0x3e')],{'$or':_[_0x37ef('0x2c')](_0x596e94[_0x37ef('0x37')],function(_0x85ea44){var _0x1d2ea1={};_0x1d2ea1[_0x85ea44]={'$like':'%'+_0x4bec09[_0x37ef('0x33')][_0x37ef('0x3f')]+'%'};return _0x1d2ea1;})});}_0x596e94=_[_0x37ef('0x40')]({},_0x596e94,_0x4bec09['options']);return _0x4f6115[_0x37ef('0x4c')](_0x596e94);}})[_0x37ef('0x25')](function(_0x49e4eb){if(_0x49e4eb){_0x479893=_0x49e4eb[_0x37ef('0x39')];if(!_0x4bec09[_0x37ef('0x33')][_0x37ef('0x3a')](_0x37ef('0x3b'))){_0x596e94[_0x37ef('0x1a')]=qs['limit'](_0x4bec09[_0x37ef('0x33')]['limit']);_0x596e94['offset']=qs['offset'](_0x4bec09[_0x37ef('0x33')]['offset']);}return _0x4f6115[_0x37ef('0x4c')](_0x596e94);}})[_0x37ef('0x25')](function(_0x181db4){if(_0x181db4){return _0x181db4?{'count':_0x479893,'rows':_0x181db4}:null;}})[_0x37ef('0x25')](respondWithResult(_0xddbd3a,null))['catch'](handleError(_0xddbd3a,null));};exports[_0x37ef('0x4f')]=function(_0x4e5c96,_0x229c42,_0x327512){var _0x123fd1={};var _0x5cbe68={};var _0x580082;var _0x14bfed;return db['Dynamics365Configuration'][_0x37ef('0x4d')]({'where':{'id':_0x4e5c96['params']['id']}})[_0x37ef('0x25')](handleEntityNotFound(_0x229c42,null))[_0x37ef('0x25')](function(_0x3be26d){if(_0x3be26d){_0x580082=_0x3be26d;_0x5cbe68[_0x37ef('0x32')]=_[_0x37ef('0x34')](db[_0x37ef('0x50')][_0x37ef('0x2e')]);_0x5cbe68[_0x37ef('0x33')]=_[_0x37ef('0x34')](_0x4e5c96['query']);_0x5cbe68['filters']=_[_0x37ef('0x36')](_0x5cbe68[_0x37ef('0x32')],_0x5cbe68[_0x37ef('0x33')]);_0x123fd1[_0x37ef('0x37')]=_[_0x37ef('0x36')](_0x5cbe68['model'],qs[_0x37ef('0x38')](_0x4e5c96[_0x37ef('0x33')][_0x37ef('0x38')]));_0x123fd1[_0x37ef('0x37')]=_0x123fd1[_0x37ef('0x37')][_0x37ef('0x39')]?_0x123fd1[_0x37ef('0x37')]:_0x5cbe68['model'];_0x123fd1['order']=qs[_0x37ef('0x3d')](_0x4e5c96[_0x37ef('0x33')][_0x37ef('0x3d')]);_0x123fd1[_0x37ef('0x3e')]=qs[_0x37ef('0x35')](_[_0x37ef('0x4e')](_0x4e5c96[_0x37ef('0x33')],_0x5cbe68[_0x37ef('0x35')]));if(_0x4e5c96['query'][_0x37ef('0x3f')]){_0x123fd1[_0x37ef('0x3e')]=_[_0x37ef('0x40')](_0x123fd1[_0x37ef('0x3e')],{'$or':_[_0x37ef('0x2c')](_0x123fd1['attributes'],function(_0x5baf7d){var _0x569ca6={};_0x569ca6[_0x5baf7d]={'$like':'%'+_0x4e5c96[_0x37ef('0x33')][_0x37ef('0x3f')]+'%'};return _0x569ca6;})});}_0x123fd1=_['merge']({},_0x123fd1,_0x4e5c96[_0x37ef('0x42')]);return _0x580082[_0x37ef('0x4f')](_0x123fd1);}})[_0x37ef('0x25')](function(_0x1eba1f){if(_0x1eba1f){_0x14bfed=_0x1eba1f[_0x37ef('0x39')];if(!_0x4e5c96['query']['hasOwnProperty'](_0x37ef('0x3b'))){_0x123fd1['limit']=qs[_0x37ef('0x1a')](_0x4e5c96[_0x37ef('0x33')]['limit']);_0x123fd1[_0x37ef('0x1c')]=qs[_0x37ef('0x1c')](_0x4e5c96['query'][_0x37ef('0x1c')]);}return _0x580082['getSubjects'](_0x123fd1);}})['then'](function(_0x4d61db){if(_0x4d61db){return _0x4d61db?{'count':_0x14bfed,'rows':_0x4d61db}:null;}})[_0x37ef('0x25')](respondWithResult(_0x229c42,null))['catch'](handleError(_0x229c42,null));};exports[_0x37ef('0x51')]=function(_0x14720c,_0x4c827d,_0x2133cd){var _0x2056cb={};var _0x46488a={};var _0x267ef2;var _0x121b87;return db[_0x37ef('0x2d')][_0x37ef('0x4d')]({'where':{'id':_0x14720c[_0x37ef('0x47')]['id']}})[_0x37ef('0x25')](handleEntityNotFound(_0x4c827d,null))['then'](function(_0x4c99bd){if(_0x4c99bd){_0x267ef2=_0x4c99bd;_0x46488a[_0x37ef('0x32')]=_[_0x37ef('0x34')](db['Dynamics365Field'][_0x37ef('0x2e')]);_0x46488a[_0x37ef('0x33')]=_['keys'](_0x14720c['query']);_0x46488a['filters']=_[_0x37ef('0x36')](_0x46488a[_0x37ef('0x32')],_0x46488a[_0x37ef('0x33')]);_0x2056cb[_0x37ef('0x37')]=_['intersection'](_0x46488a[_0x37ef('0x32')],qs[_0x37ef('0x38')](_0x14720c['query'][_0x37ef('0x38')]));_0x2056cb['attributes']=_0x2056cb['attributes'][_0x37ef('0x39')]?_0x2056cb[_0x37ef('0x37')]:_0x46488a['model'];_0x2056cb['order']=qs[_0x37ef('0x3d')](_0x14720c[_0x37ef('0x33')][_0x37ef('0x3d')]);_0x2056cb[_0x37ef('0x3e')]=qs[_0x37ef('0x35')](_[_0x37ef('0x4e')](_0x14720c[_0x37ef('0x33')],_0x46488a[_0x37ef('0x35')]));if(_0x14720c[_0x37ef('0x33')][_0x37ef('0x3f')]){_0x2056cb[_0x37ef('0x3e')]=_['merge'](_0x2056cb[_0x37ef('0x3e')],{'$or':_[_0x37ef('0x2c')](_0x2056cb[_0x37ef('0x37')],function(_0x61cdab){var _0x46964f={};_0x46964f[_0x61cdab]={'$like':'%'+_0x14720c[_0x37ef('0x33')]['filter']+'%'};return _0x46964f;})});}_0x2056cb=_['merge']({},_0x2056cb,_0x14720c[_0x37ef('0x42')]);return _0x267ef2['getDescriptions'](_0x2056cb);}})['then'](function(_0x53a8d8){if(_0x53a8d8){_0x121b87=_0x53a8d8[_0x37ef('0x39')];if(!_0x14720c[_0x37ef('0x33')][_0x37ef('0x3a')](_0x37ef('0x3b'))){_0x2056cb[_0x37ef('0x1a')]=qs[_0x37ef('0x1a')](_0x14720c[_0x37ef('0x33')][_0x37ef('0x1a')]);_0x2056cb['offset']=qs[_0x37ef('0x1c')](_0x14720c['query'][_0x37ef('0x1c')]);}return _0x267ef2[_0x37ef('0x51')](_0x2056cb);}})[_0x37ef('0x25')](function(_0x35f8f6){if(_0x35f8f6){return _0x35f8f6?{'count':_0x121b87,'rows':_0x35f8f6}:null;}})[_0x37ef('0x25')](respondWithResult(_0x4c827d,null))[_0x37ef('0x49')](handleError(_0x4c827d,null));};