8466aceaa140cc4306030ca1f36af4afe1e6d463
[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 _0xfb35=['hasOwnProperty','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','reject','update','then','destroy','error','stack','name','send','map','Dynamics365Configuration','rawAttributes','query','filters','intersection','model','attributes','fields','nolimit','sort','filter','where','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','length','find','create','body','getFields','findOne','Dynamics365Field','order','pick'];(function(_0x450eae,_0x2ad04d){var _0x2379d3=function(_0x4d7f9a){while(--_0x4d7f9a){_0x450eae['push'](_0x450eae['shift']());}};_0x2379d3(++_0x2ad04d);}(_0xfb35,0x1cb));var _0x5fb3=function(_0x4d8666,_0x2ff19d){_0x4d8666=_0x4d8666-0x0;var _0x37175b=_0xfb35[_0x4d8666];return _0x37175b;};'use strict';var emlformat=require(_0x5fb3('0x0'));var rimraf=require(_0x5fb3('0x1'));var zipdir=require(_0x5fb3('0x2'));var jsonpatch=require(_0x5fb3('0x3'));var rp=require('request-promise');var moment=require(_0x5fb3('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x5fb3('0x5'));var util=require('util');var path=require('path');var sox=require(_0x5fb3('0x6'));var csv=require(_0x5fb3('0x7'));var ejs=require(_0x5fb3('0x8'));var fs=require('fs');var fs_extra=require(_0x5fb3('0x9'));var _=require(_0x5fb3('0xa'));var squel=require(_0x5fb3('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x5fb3('0xc'));var toCsv=require(_0x5fb3('0x7'));var querystring=require(_0x5fb3('0xd'));var Papa=require(_0x5fb3('0xe'));var Redis=require(_0x5fb3('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x5fb3('0x10'));var hardwareService=require(_0x5fb3('0x11'));var logger=require(_0x5fb3('0x12'))('api');var utils=require(_0x5fb3('0x13'));var config=require(_0x5fb3('0x14'));var licenseUtil=require(_0x5fb3('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2263c1,_0x3e8331){_0x3e8331=_0x3e8331||0xcc;return function(_0x30ffed){if(_0x30ffed){return _0x2263c1[_0x5fb3('0x16')](_0x3e8331);}return _0x2263c1[_0x5fb3('0x17')](_0x3e8331)[_0x5fb3('0x18')]();};}function respondWithResult(_0x4ea152,_0x3d6f24){_0x3d6f24=_0x3d6f24||0xc8;return function(_0x5cc391){if(_0x5cc391){return _0x4ea152[_0x5fb3('0x17')](_0x3d6f24)['json'](_0x5cc391);}};}function respondWithFilteredResult(_0x4ee903,_0x14fd29){return function(_0x45b8b1){if(_0x45b8b1){var _0x4d3468=typeof _0x14fd29['offset']===_0x5fb3('0x19')&&typeof _0x14fd29[_0x5fb3('0x1a')]==='undefined';var _0x38e2ae=_0x45b8b1[_0x5fb3('0x1b')];var _0x25a035=_0x4d3468?0x0:_0x14fd29[_0x5fb3('0x1c')];var _0x1654d0=_0x4d3468?_0x45b8b1[_0x5fb3('0x1b')]:_0x14fd29[_0x5fb3('0x1c')]+_0x14fd29[_0x5fb3('0x1a')];var _0x3924a2;if(_0x1654d0>=_0x38e2ae){_0x1654d0=_0x38e2ae;_0x3924a2=0xc8;}else{_0x3924a2=0xce;}_0x4ee903['status'](_0x3924a2);return _0x4ee903[_0x5fb3('0x1d')](_0x5fb3('0x1e'),_0x25a035+'-'+_0x1654d0+'/'+_0x38e2ae)['json'](_0x45b8b1);}return null;};}function patchUpdates(_0x280e5c){return function(_0x5ae5ef){try{jsonpatch['apply'](_0x5ae5ef,_0x280e5c,!![]);}catch(_0x14721a){return BPromise[_0x5fb3('0x1f')](_0x14721a);}return _0x5ae5ef['save']();};}function saveUpdates(_0x139068,_0x3abd9d){return function(_0x5920a2){if(_0x5920a2){return _0x5920a2[_0x5fb3('0x20')](_0x139068)[_0x5fb3('0x21')](function(_0x378985){return _0x378985;});}return null;};}function removeEntity(_0x40d1f4,_0x43723f){return function(_0x3dfa2c){if(_0x3dfa2c){return _0x3dfa2c[_0x5fb3('0x22')]()['then'](function(){_0x40d1f4['status'](0xcc)[_0x5fb3('0x18')]();});}};}function handleEntityNotFound(_0x3884f3,_0x408018){return function(_0x42f516){if(!_0x42f516){_0x3884f3[_0x5fb3('0x16')](0x194);}return _0x42f516;};}function handleError(_0x5a6793,_0x12e2ae){_0x12e2ae=_0x12e2ae||0x1f4;return function(_0x22098e){logger[_0x5fb3('0x23')](_0x22098e[_0x5fb3('0x24')]);if(_0x22098e['name']){delete _0x22098e[_0x5fb3('0x25')];}_0x5a6793[_0x5fb3('0x17')](_0x12e2ae)[_0x5fb3('0x26')](_0x22098e);};}exports['index']=function(_0x2fdab6,_0x94aed3){var _0x24c3de={},_0x4a6380={},_0x90f214={'count':0x0,'rows':[]};var _0x6353d=_[_0x5fb3('0x27')](db[_0x5fb3('0x28')][_0x5fb3('0x29')],function(_0x1f064f){return{'name':_0x1f064f['fieldName'],'type':_0x1f064f['type']['key']};});_0x4a6380['model']=_[_0x5fb3('0x27')](_0x6353d,'name');_0x4a6380[_0x5fb3('0x2a')]=_['keys'](_0x2fdab6['query']);_0x4a6380[_0x5fb3('0x2b')]=_[_0x5fb3('0x2c')](_0x4a6380[_0x5fb3('0x2d')],_0x4a6380[_0x5fb3('0x2a')]);_0x24c3de[_0x5fb3('0x2e')]=_[_0x5fb3('0x2c')](_0x4a6380['model'],qs[_0x5fb3('0x2f')](_0x2fdab6[_0x5fb3('0x2a')][_0x5fb3('0x2f')]));_0x24c3de[_0x5fb3('0x2e')]=_0x24c3de[_0x5fb3('0x2e')]['length']?_0x24c3de[_0x5fb3('0x2e')]:_0x4a6380[_0x5fb3('0x2d')];if(!_0x2fdab6['query']['hasOwnProperty'](_0x5fb3('0x30'))){_0x24c3de['limit']=qs[_0x5fb3('0x1a')](_0x2fdab6[_0x5fb3('0x2a')][_0x5fb3('0x1a')]);_0x24c3de['offset']=qs[_0x5fb3('0x1c')](_0x2fdab6[_0x5fb3('0x2a')][_0x5fb3('0x1c')]);}_0x24c3de['order']=qs[_0x5fb3('0x31')](_0x2fdab6['query'][_0x5fb3('0x31')]);_0x24c3de['where']=qs['filters'](_['pick'](_0x2fdab6[_0x5fb3('0x2a')],_0x4a6380['filters']),_0x6353d);if(_0x2fdab6[_0x5fb3('0x2a')][_0x5fb3('0x32')]){_0x24c3de[_0x5fb3('0x33')]=_[_0x5fb3('0x34')](_0x24c3de['where'],{'$or':_['map'](_0x6353d,function(_0x473588){if(_0x473588[_0x5fb3('0x35')]!==_0x5fb3('0x36')){var _0x3c9f14={};_0x3c9f14[_0x473588['name']]={'$like':'%'+_0x2fdab6['query'][_0x5fb3('0x32')]+'%'};return _0x3c9f14;}})});}_0x24c3de=_[_0x5fb3('0x34')]({},_0x24c3de,_0x2fdab6[_0x5fb3('0x37')]);var _0x48a534={'where':_0x24c3de[_0x5fb3('0x33')]};return db['Dynamics365Configuration'][_0x5fb3('0x1b')](_0x48a534)[_0x5fb3('0x21')](function(_0x42c94f){_0x90f214['count']=_0x42c94f;if(_0x2fdab6[_0x5fb3('0x2a')][_0x5fb3('0x38')]){_0x24c3de[_0x5fb3('0x39')]=[{'all':!![]}];}return db[_0x5fb3('0x28')][_0x5fb3('0x3a')](_0x24c3de);})['then'](function(_0x3c193c){_0x90f214[_0x5fb3('0x3b')]=_0x3c193c;return _0x90f214;})[_0x5fb3('0x21')](respondWithFilteredResult(_0x94aed3,_0x24c3de))[_0x5fb3('0x3c')](handleError(_0x94aed3,null));};exports[_0x5fb3('0x3d')]=function(_0xf8434b,_0x1de369){var _0x4a45ce={'raw':![],'where':{'id':_0xf8434b[_0x5fb3('0x3e')]['id']}},_0x411bef={};_0x411bef['model']=_[_0x5fb3('0x3f')](db[_0x5fb3('0x28')][_0x5fb3('0x29')]);_0x411bef['query']=_[_0x5fb3('0x3f')](_0xf8434b[_0x5fb3('0x2a')]);_0x411bef[_0x5fb3('0x2b')]=_['intersection'](_0x411bef[_0x5fb3('0x2d')],_0x411bef[_0x5fb3('0x2a')]);_0x4a45ce[_0x5fb3('0x2e')]=_[_0x5fb3('0x2c')](_0x411bef[_0x5fb3('0x2d')],qs['fields'](_0xf8434b['query'][_0x5fb3('0x2f')]));_0x4a45ce[_0x5fb3('0x2e')]=_0x4a45ce[_0x5fb3('0x2e')][_0x5fb3('0x40')]?_0x4a45ce[_0x5fb3('0x2e')]:_0x411bef['model'];if(_0xf8434b[_0x5fb3('0x2a')][_0x5fb3('0x38')]){_0x4a45ce[_0x5fb3('0x39')]=[{'all':!![]}];}_0x4a45ce=_[_0x5fb3('0x34')]({},_0x4a45ce,_0xf8434b[_0x5fb3('0x37')]);return db['Dynamics365Configuration'][_0x5fb3('0x41')](_0x4a45ce)[_0x5fb3('0x21')](handleEntityNotFound(_0x1de369,null))['then'](respondWithResult(_0x1de369,null))[_0x5fb3('0x3c')](handleError(_0x1de369,null));};exports[_0x5fb3('0x42')]=function(_0x59eb1c,_0x40486b){return db['Dynamics365Configuration'][_0x5fb3('0x42')](_0x59eb1c[_0x5fb3('0x43')],{})[_0x5fb3('0x21')](respondWithResult(_0x40486b,0xc9))[_0x5fb3('0x3c')](handleError(_0x40486b,null));};exports[_0x5fb3('0x20')]=function(_0x1336e6,_0xfb5fff){if(_0x1336e6[_0x5fb3('0x43')]['id']){delete _0x1336e6['body']['id'];}return db[_0x5fb3('0x28')][_0x5fb3('0x41')]({'where':{'id':_0x1336e6[_0x5fb3('0x3e')]['id']}})[_0x5fb3('0x21')](handleEntityNotFound(_0xfb5fff,null))['then'](saveUpdates(_0x1336e6[_0x5fb3('0x43')],null))[_0x5fb3('0x21')](respondWithResult(_0xfb5fff,null))[_0x5fb3('0x3c')](handleError(_0xfb5fff,null));};exports[_0x5fb3('0x22')]=function(_0x47e607,_0x5d0809){return db[_0x5fb3('0x28')][_0x5fb3('0x41')]({'where':{'id':_0x47e607['params']['id']}})[_0x5fb3('0x21')](handleEntityNotFound(_0x5d0809,null))[_0x5fb3('0x21')](removeEntity(_0x5d0809,null))[_0x5fb3('0x3c')](handleError(_0x5d0809,null));};exports[_0x5fb3('0x44')]=function(_0x1cf33e,_0x56c586,_0xcf36c8){var _0x2875b6={};var _0x391c30={};var _0x172fe9;var _0x26551f;return db[_0x5fb3('0x28')][_0x5fb3('0x45')]({'where':{'id':_0x1cf33e[_0x5fb3('0x3e')]['id']}})[_0x5fb3('0x21')](handleEntityNotFound(_0x56c586,null))[_0x5fb3('0x21')](function(_0x44e1bf){if(_0x44e1bf){_0x172fe9=_0x44e1bf;_0x391c30[_0x5fb3('0x2d')]=_['keys'](db[_0x5fb3('0x46')][_0x5fb3('0x29')]);_0x391c30[_0x5fb3('0x2a')]=_[_0x5fb3('0x3f')](_0x1cf33e[_0x5fb3('0x2a')]);_0x391c30['filters']=_[_0x5fb3('0x2c')](_0x391c30[_0x5fb3('0x2d')],_0x391c30[_0x5fb3('0x2a')]);_0x2875b6[_0x5fb3('0x2e')]=_[_0x5fb3('0x2c')](_0x391c30['model'],qs[_0x5fb3('0x2f')](_0x1cf33e[_0x5fb3('0x2a')][_0x5fb3('0x2f')]));_0x2875b6[_0x5fb3('0x2e')]=_0x2875b6[_0x5fb3('0x2e')][_0x5fb3('0x40')]?_0x2875b6[_0x5fb3('0x2e')]:_0x391c30['model'];_0x2875b6[_0x5fb3('0x47')]=qs[_0x5fb3('0x31')](_0x1cf33e[_0x5fb3('0x2a')][_0x5fb3('0x31')]);_0x2875b6[_0x5fb3('0x33')]=qs[_0x5fb3('0x2b')](_[_0x5fb3('0x48')](_0x1cf33e['query'],_0x391c30[_0x5fb3('0x2b')]));if(_0x1cf33e[_0x5fb3('0x2a')][_0x5fb3('0x32')]){_0x2875b6[_0x5fb3('0x33')]=_['merge'](_0x2875b6[_0x5fb3('0x33')],{'$or':_[_0x5fb3('0x27')](_0x2875b6['attributes'],function(_0x1621ea){var _0x3d1dd1={};_0x3d1dd1[_0x1621ea]={'$like':'%'+_0x1cf33e['query'][_0x5fb3('0x32')]+'%'};return _0x3d1dd1;})});}_0x2875b6=_['merge']({},_0x2875b6,_0x1cf33e['options']);return _0x172fe9[_0x5fb3('0x44')](_0x2875b6);}})[_0x5fb3('0x21')](function(_0x3aafef){if(_0x3aafef){_0x26551f=_0x3aafef['length'];if(!_0x1cf33e['query'][_0x5fb3('0x49')](_0x5fb3('0x30'))){_0x2875b6[_0x5fb3('0x1a')]=qs[_0x5fb3('0x1a')](_0x1cf33e[_0x5fb3('0x2a')]['limit']);_0x2875b6[_0x5fb3('0x1c')]=qs[_0x5fb3('0x1c')](_0x1cf33e[_0x5fb3('0x2a')]['offset']);}return _0x172fe9[_0x5fb3('0x44')](_0x2875b6);}})[_0x5fb3('0x21')](function(_0x3f3a5e){if(_0x3f3a5e){return _0x3f3a5e?{'count':_0x26551f,'rows':_0x3f3a5e}:null;}})[_0x5fb3('0x21')](respondWithResult(_0x56c586,null))[_0x5fb3('0x3c')](handleError(_0x56c586,null));};exports[_0x5fb3('0x4a')]=function(_0x5949fc,_0x985f60,_0x55c824){var _0x2e273f={};var _0x5363e5={};var _0x2742ff;var _0x52877f;return db['Dynamics365Configuration'][_0x5fb3('0x45')]({'where':{'id':_0x5949fc[_0x5fb3('0x3e')]['id']}})[_0x5fb3('0x21')](handleEntityNotFound(_0x985f60,null))[_0x5fb3('0x21')](function(_0x35c18e){if(_0x35c18e){_0x2742ff=_0x35c18e;_0x5363e5[_0x5fb3('0x2d')]=_['keys'](db[_0x5fb3('0x46')]['rawAttributes']);_0x5363e5[_0x5fb3('0x2a')]=_[_0x5fb3('0x3f')](_0x5949fc[_0x5fb3('0x2a')]);_0x5363e5[_0x5fb3('0x2b')]=_[_0x5fb3('0x2c')](_0x5363e5['model'],_0x5363e5['query']);_0x2e273f['attributes']=_[_0x5fb3('0x2c')](_0x5363e5[_0x5fb3('0x2d')],qs['fields'](_0x5949fc[_0x5fb3('0x2a')][_0x5fb3('0x2f')]));_0x2e273f[_0x5fb3('0x2e')]=_0x2e273f['attributes'][_0x5fb3('0x40')]?_0x2e273f[_0x5fb3('0x2e')]:_0x5363e5[_0x5fb3('0x2d')];_0x2e273f[_0x5fb3('0x47')]=qs['sort'](_0x5949fc[_0x5fb3('0x2a')][_0x5fb3('0x31')]);_0x2e273f[_0x5fb3('0x33')]=qs['filters'](_['pick'](_0x5949fc['query'],_0x5363e5[_0x5fb3('0x2b')]));if(_0x5949fc['query']['filter']){_0x2e273f[_0x5fb3('0x33')]=_[_0x5fb3('0x34')](_0x2e273f['where'],{'$or':_[_0x5fb3('0x27')](_0x2e273f['attributes'],function(_0x430f9a){var _0x4ac221={};_0x4ac221[_0x430f9a]={'$like':'%'+_0x5949fc[_0x5fb3('0x2a')]['filter']+'%'};return _0x4ac221;})});}_0x2e273f=_[_0x5fb3('0x34')]({},_0x2e273f,_0x5949fc['options']);return _0x2742ff['getSubjects'](_0x2e273f);}})[_0x5fb3('0x21')](function(_0xc73159){if(_0xc73159){_0x52877f=_0xc73159[_0x5fb3('0x40')];if(!_0x5949fc['query'][_0x5fb3('0x49')](_0x5fb3('0x30'))){_0x2e273f[_0x5fb3('0x1a')]=qs[_0x5fb3('0x1a')](_0x5949fc[_0x5fb3('0x2a')][_0x5fb3('0x1a')]);_0x2e273f[_0x5fb3('0x1c')]=qs['offset'](_0x5949fc[_0x5fb3('0x2a')][_0x5fb3('0x1c')]);}return _0x2742ff['getSubjects'](_0x2e273f);}})[_0x5fb3('0x21')](function(_0x1d291b){if(_0x1d291b){return _0x1d291b?{'count':_0x52877f,'rows':_0x1d291b}:null;}})['then'](respondWithResult(_0x985f60,null))['catch'](handleError(_0x985f60,null));};exports[_0x5fb3('0x4b')]=function(_0x2dab11,_0x21042f,_0x5cb371){var _0x514425={};var _0x1ff048={};var _0x3e1457;var _0x568eb4;return db[_0x5fb3('0x28')][_0x5fb3('0x45')]({'where':{'id':_0x2dab11[_0x5fb3('0x3e')]['id']}})[_0x5fb3('0x21')](handleEntityNotFound(_0x21042f,null))[_0x5fb3('0x21')](function(_0x918809){if(_0x918809){_0x3e1457=_0x918809;_0x1ff048[_0x5fb3('0x2d')]=_[_0x5fb3('0x3f')](db[_0x5fb3('0x46')][_0x5fb3('0x29')]);_0x1ff048['query']=_[_0x5fb3('0x3f')](_0x2dab11['query']);_0x1ff048[_0x5fb3('0x2b')]=_[_0x5fb3('0x2c')](_0x1ff048['model'],_0x1ff048[_0x5fb3('0x2a')]);_0x514425[_0x5fb3('0x2e')]=_[_0x5fb3('0x2c')](_0x1ff048['model'],qs[_0x5fb3('0x2f')](_0x2dab11[_0x5fb3('0x2a')][_0x5fb3('0x2f')]));_0x514425[_0x5fb3('0x2e')]=_0x514425[_0x5fb3('0x2e')][_0x5fb3('0x40')]?_0x514425[_0x5fb3('0x2e')]:_0x1ff048[_0x5fb3('0x2d')];_0x514425[_0x5fb3('0x47')]=qs[_0x5fb3('0x31')](_0x2dab11[_0x5fb3('0x2a')][_0x5fb3('0x31')]);_0x514425[_0x5fb3('0x33')]=qs[_0x5fb3('0x2b')](_[_0x5fb3('0x48')](_0x2dab11[_0x5fb3('0x2a')],_0x1ff048['filters']));if(_0x2dab11[_0x5fb3('0x2a')][_0x5fb3('0x32')]){_0x514425[_0x5fb3('0x33')]=_['merge'](_0x514425[_0x5fb3('0x33')],{'$or':_['map'](_0x514425[_0x5fb3('0x2e')],function(_0xbad301){var _0x71284b={};_0x71284b[_0xbad301]={'$like':'%'+_0x2dab11[_0x5fb3('0x2a')][_0x5fb3('0x32')]+'%'};return _0x71284b;})});}_0x514425=_[_0x5fb3('0x34')]({},_0x514425,_0x2dab11[_0x5fb3('0x37')]);return _0x3e1457[_0x5fb3('0x4b')](_0x514425);}})['then'](function(_0x527826){if(_0x527826){_0x568eb4=_0x527826[_0x5fb3('0x40')];if(!_0x2dab11[_0x5fb3('0x2a')]['hasOwnProperty'](_0x5fb3('0x30'))){_0x514425[_0x5fb3('0x1a')]=qs[_0x5fb3('0x1a')](_0x2dab11[_0x5fb3('0x2a')][_0x5fb3('0x1a')]);_0x514425[_0x5fb3('0x1c')]=qs[_0x5fb3('0x1c')](_0x2dab11[_0x5fb3('0x2a')][_0x5fb3('0x1c')]);}return _0x3e1457['getDescriptions'](_0x514425);}})['then'](function(_0x4e98f0){if(_0x4e98f0){return _0x4e98f0?{'count':_0x568eb4,'rows':_0x4e98f0}:null;}})['then'](respondWithResult(_0x21042f,null))[_0x5fb3('0x3c')](handleError(_0x21042f,null));};