b3f36ab70491336dc0cfed1fc48cb5728a1c0ef7
[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 _0x732e=['map','Dynamics365Configuration','type','key','query','attributes','intersection','model','fields','length','order','sort','where','filters','filter','merge','VIRTUAL','includeAll','catch','show','params','keys','rawAttributes','create','body','find','findOne','pick','options','getFields','hasOwnProperty','getSubjects','Dynamics365Field','nolimit','getDescriptions','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','end','error','stack','name','send','index'];(function(_0x3f288d,_0x3c7a97){var _0x5e8468=function(_0xb0189c){while(--_0xb0189c){_0x3f288d['push'](_0x3f288d['shift']());}};_0x5e8468(++_0x3c7a97);}(_0x732e,0x15b));var _0xe732=function(_0x24875d,_0x4fb24d){_0x24875d=_0x24875d-0x0;var _0x181471=_0x732e[_0x24875d];return _0x181471;};'use strict';var emlformat=require(_0xe732('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe732('0x1'));var jsonpatch=require(_0xe732('0x2'));var rp=require(_0xe732('0x3'));var moment=require(_0xe732('0x4'));var BPromise=require(_0xe732('0x5'));var Mustache=require(_0xe732('0x6'));var util=require(_0xe732('0x7'));var path=require('path');var sox=require(_0xe732('0x8'));var csv=require(_0xe732('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe732('0xa'));var _=require(_0xe732('0xb'));var squel=require(_0xe732('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xe732('0xd'));var toCsv=require(_0xe732('0x9'));var querystring=require(_0xe732('0xe'));var Papa=require(_0xe732('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xe732('0x10'));var as=require(_0xe732('0x11'));var hardwareService=require(_0xe732('0x12'));var logger=require('../../config/logger')(_0xe732('0x13'));var utils=require(_0xe732('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xe732('0x15'));var db=require(_0xe732('0x16'))['db'];function respondWithStatusCode(_0x2f3c73,_0x39c748){_0x39c748=_0x39c748||0xcc;return function(_0x4f423e){if(_0x4f423e){return _0x2f3c73[_0xe732('0x17')](_0x39c748);}return _0x2f3c73['status'](_0x39c748)['end']();};}function respondWithResult(_0x2134a2,_0x1e89b7){_0x1e89b7=_0x1e89b7||0xc8;return function(_0x2ea0c5){if(_0x2ea0c5){return _0x2134a2[_0xe732('0x18')](_0x1e89b7)[_0xe732('0x19')](_0x2ea0c5);}};}function respondWithFilteredResult(_0x401908,_0x100ea6){return function(_0x2dd056){if(_0x2dd056){var _0x4fb647=typeof _0x100ea6[_0xe732('0x1a')]===_0xe732('0x1b')&&typeof _0x100ea6['limit']===_0xe732('0x1b');var _0x7a3774=_0x2dd056['count'];var _0x4c56f1=_0x4fb647?0x0:_0x100ea6[_0xe732('0x1a')];var _0x4d6d9f=_0x4fb647?_0x2dd056[_0xe732('0x1c')]:_0x100ea6[_0xe732('0x1a')]+_0x100ea6[_0xe732('0x1d')];var _0x36886f;if(_0x4d6d9f>=_0x7a3774){_0x4d6d9f=_0x7a3774;_0x36886f=0xc8;}else{_0x36886f=0xce;}_0x401908[_0xe732('0x18')](_0x36886f);return _0x401908[_0xe732('0x1e')](_0xe732('0x1f'),_0x4c56f1+'-'+_0x4d6d9f+'/'+_0x7a3774)[_0xe732('0x19')](_0x2dd056);}return null;};}function patchUpdates(_0x6dbf92){return function(_0x22d4d4){try{jsonpatch[_0xe732('0x20')](_0x22d4d4,_0x6dbf92,!![]);}catch(_0x241f5d){return BPromise[_0xe732('0x21')](_0x241f5d);}return _0x22d4d4['save']();};}function saveUpdates(_0x4d0b17,_0x3c8fe0){return function(_0x253606){if(_0x253606){return _0x253606[_0xe732('0x22')](_0x4d0b17)[_0xe732('0x23')](function(_0x5deca4){return _0x5deca4;});}return null;};}function removeEntity(_0x2d1dee,_0xd7de59){return function(_0x137680){if(_0x137680){return _0x137680[_0xe732('0x24')]()['then'](function(){_0x2d1dee['status'](0xcc)[_0xe732('0x25')]();});}};}function handleEntityNotFound(_0x1e84ff,_0xb6eb66){return function(_0x3394ad){if(!_0x3394ad){_0x1e84ff[_0xe732('0x17')](0x194);}return _0x3394ad;};}function handleError(_0x38a82e,_0x2a3acb){_0x2a3acb=_0x2a3acb||0x1f4;return function(_0x3749ef){logger[_0xe732('0x26')](_0x3749ef[_0xe732('0x27')]);if(_0x3749ef[_0xe732('0x28')]){delete _0x3749ef['name'];}_0x38a82e[_0xe732('0x18')](_0x2a3acb)[_0xe732('0x29')](_0x3749ef);};}exports[_0xe732('0x2a')]=function(_0x257fa5,_0x37d1fc){var _0x410703={},_0x468078={},_0x222a81={'count':0x0,'rows':[]};var _0x2d0717=_[_0xe732('0x2b')](db[_0xe732('0x2c')]['rawAttributes'],function(_0x2a935b){return{'name':_0x2a935b['fieldName'],'type':_0x2a935b[_0xe732('0x2d')][_0xe732('0x2e')]};});_0x468078['model']=_['map'](_0x2d0717,_0xe732('0x28'));_0x468078[_0xe732('0x2f')]=_['keys'](_0x257fa5[_0xe732('0x2f')]);_0x468078['filters']=_['intersection'](_0x468078['model'],_0x468078[_0xe732('0x2f')]);_0x410703[_0xe732('0x30')]=_[_0xe732('0x31')](_0x468078[_0xe732('0x32')],qs[_0xe732('0x33')](_0x257fa5[_0xe732('0x2f')][_0xe732('0x33')]));_0x410703[_0xe732('0x30')]=_0x410703[_0xe732('0x30')][_0xe732('0x34')]?_0x410703[_0xe732('0x30')]:_0x468078[_0xe732('0x32')];if(!_0x257fa5[_0xe732('0x2f')]['hasOwnProperty']('nolimit')){_0x410703['limit']=qs[_0xe732('0x1d')](_0x257fa5[_0xe732('0x2f')][_0xe732('0x1d')]);_0x410703[_0xe732('0x1a')]=qs[_0xe732('0x1a')](_0x257fa5[_0xe732('0x2f')][_0xe732('0x1a')]);}_0x410703[_0xe732('0x35')]=qs[_0xe732('0x36')](_0x257fa5[_0xe732('0x2f')]['sort']);_0x410703[_0xe732('0x37')]=qs[_0xe732('0x38')](_['pick'](_0x257fa5['query'],_0x468078['filters']),_0x2d0717);if(_0x257fa5[_0xe732('0x2f')][_0xe732('0x39')]){_0x410703[_0xe732('0x37')]=_[_0xe732('0x3a')](_0x410703['where'],{'$or':_[_0xe732('0x2b')](_0x2d0717,function(_0x377ead){if(_0x377ead['type']!==_0xe732('0x3b')){var _0x41178d={};_0x41178d[_0x377ead[_0xe732('0x28')]]={'$like':'%'+_0x257fa5[_0xe732('0x2f')][_0xe732('0x39')]+'%'};return _0x41178d;}})});}_0x410703=_[_0xe732('0x3a')]({},_0x410703,_0x257fa5['options']);var _0x4e7a74={'where':_0x410703[_0xe732('0x37')]};return db[_0xe732('0x2c')]['count'](_0x4e7a74)[_0xe732('0x23')](function(_0x461f48){_0x222a81[_0xe732('0x1c')]=_0x461f48;if(_0x257fa5['query'][_0xe732('0x3c')]){_0x410703['include']=[{'all':!![]}];}return db[_0xe732('0x2c')]['findAll'](_0x410703);})[_0xe732('0x23')](function(_0xb80bf5){_0x222a81['rows']=_0xb80bf5;return _0x222a81;})[_0xe732('0x23')](respondWithFilteredResult(_0x37d1fc,_0x410703))[_0xe732('0x3d')](handleError(_0x37d1fc,null));};exports[_0xe732('0x3e')]=function(_0x82b915,_0x348a37){var _0x3d8bcd={'raw':![],'where':{'id':_0x82b915[_0xe732('0x3f')]['id']}},_0x299cf7={};_0x299cf7[_0xe732('0x32')]=_[_0xe732('0x40')](db['Dynamics365Configuration'][_0xe732('0x41')]);_0x299cf7[_0xe732('0x2f')]=_[_0xe732('0x40')](_0x82b915[_0xe732('0x2f')]);_0x299cf7[_0xe732('0x38')]=_[_0xe732('0x31')](_0x299cf7[_0xe732('0x32')],_0x299cf7[_0xe732('0x2f')]);_0x3d8bcd[_0xe732('0x30')]=_[_0xe732('0x31')](_0x299cf7[_0xe732('0x32')],qs[_0xe732('0x33')](_0x82b915[_0xe732('0x2f')][_0xe732('0x33')]));_0x3d8bcd[_0xe732('0x30')]=_0x3d8bcd[_0xe732('0x30')][_0xe732('0x34')]?_0x3d8bcd[_0xe732('0x30')]:_0x299cf7[_0xe732('0x32')];if(_0x82b915[_0xe732('0x2f')][_0xe732('0x3c')]){_0x3d8bcd['include']=[{'all':!![]}];}_0x3d8bcd=_['merge']({},_0x3d8bcd,_0x82b915['options']);return db[_0xe732('0x2c')]['find'](_0x3d8bcd)[_0xe732('0x23')](handleEntityNotFound(_0x348a37,null))[_0xe732('0x23')](respondWithResult(_0x348a37,null))[_0xe732('0x3d')](handleError(_0x348a37,null));};exports[_0xe732('0x42')]=function(_0x44cc34,_0xf06dc4){return db['Dynamics365Configuration']['create'](_0x44cc34[_0xe732('0x43')],{})[_0xe732('0x23')](respondWithResult(_0xf06dc4,0xc9))[_0xe732('0x3d')](handleError(_0xf06dc4,null));};exports[_0xe732('0x22')]=function(_0x1af1e4,_0x5b19f2){if(_0x1af1e4['body']['id']){delete _0x1af1e4[_0xe732('0x43')]['id'];}return db[_0xe732('0x2c')][_0xe732('0x44')]({'where':{'id':_0x1af1e4[_0xe732('0x3f')]['id']}})[_0xe732('0x23')](handleEntityNotFound(_0x5b19f2,null))[_0xe732('0x23')](saveUpdates(_0x1af1e4[_0xe732('0x43')],null))[_0xe732('0x23')](respondWithResult(_0x5b19f2,null))[_0xe732('0x3d')](handleError(_0x5b19f2,null));};exports[_0xe732('0x24')]=function(_0x33f16c,_0x485e33){return db[_0xe732('0x2c')][_0xe732('0x44')]({'where':{'id':_0x33f16c['params']['id']}})[_0xe732('0x23')](handleEntityNotFound(_0x485e33,null))['then'](removeEntity(_0x485e33,null))[_0xe732('0x3d')](handleError(_0x485e33,null));};exports['getFields']=function(_0x1727d5,_0x2c350a,_0x4729e0){var _0x5aa567={};var _0x18a8e9={};var _0x223789;var _0x400281;return db[_0xe732('0x2c')][_0xe732('0x45')]({'where':{'id':_0x1727d5['params']['id']}})['then'](handleEntityNotFound(_0x2c350a,null))[_0xe732('0x23')](function(_0x46b36a){if(_0x46b36a){_0x223789=_0x46b36a;_0x18a8e9['model']=_[_0xe732('0x40')](db['Dynamics365Field'][_0xe732('0x41')]);_0x18a8e9[_0xe732('0x2f')]=_[_0xe732('0x40')](_0x1727d5[_0xe732('0x2f')]);_0x18a8e9[_0xe732('0x38')]=_[_0xe732('0x31')](_0x18a8e9[_0xe732('0x32')],_0x18a8e9[_0xe732('0x2f')]);_0x5aa567[_0xe732('0x30')]=_[_0xe732('0x31')](_0x18a8e9['model'],qs[_0xe732('0x33')](_0x1727d5[_0xe732('0x2f')][_0xe732('0x33')]));_0x5aa567['attributes']=_0x5aa567['attributes']['length']?_0x5aa567[_0xe732('0x30')]:_0x18a8e9[_0xe732('0x32')];_0x5aa567['order']=qs['sort'](_0x1727d5[_0xe732('0x2f')][_0xe732('0x36')]);_0x5aa567[_0xe732('0x37')]=qs[_0xe732('0x38')](_[_0xe732('0x46')](_0x1727d5[_0xe732('0x2f')],_0x18a8e9[_0xe732('0x38')]));if(_0x1727d5[_0xe732('0x2f')][_0xe732('0x39')]){_0x5aa567['where']=_['merge'](_0x5aa567[_0xe732('0x37')],{'$or':_[_0xe732('0x2b')](_0x5aa567[_0xe732('0x30')],function(_0x2f17bf){var _0x531d2d={};_0x531d2d[_0x2f17bf]={'$like':'%'+_0x1727d5['query'][_0xe732('0x39')]+'%'};return _0x531d2d;})});}_0x5aa567=_[_0xe732('0x3a')]({},_0x5aa567,_0x1727d5[_0xe732('0x47')]);return _0x223789[_0xe732('0x48')](_0x5aa567);}})[_0xe732('0x23')](function(_0x342594){if(_0x342594){_0x400281=_0x342594[_0xe732('0x34')];if(!_0x1727d5[_0xe732('0x2f')][_0xe732('0x49')]('nolimit')){_0x5aa567[_0xe732('0x1d')]=qs['limit'](_0x1727d5[_0xe732('0x2f')]['limit']);_0x5aa567[_0xe732('0x1a')]=qs[_0xe732('0x1a')](_0x1727d5[_0xe732('0x2f')][_0xe732('0x1a')]);}return _0x223789['getFields'](_0x5aa567);}})[_0xe732('0x23')](function(_0x419067){if(_0x419067){return _0x419067?{'count':_0x400281,'rows':_0x419067}:null;}})[_0xe732('0x23')](respondWithResult(_0x2c350a,null))[_0xe732('0x3d')](handleError(_0x2c350a,null));};exports[_0xe732('0x4a')]=function(_0x1c45bf,_0x17f063,_0x8911b7){var _0xb3a3fa={};var _0x33f0d4={};var _0xa64b0a;var _0x366227;return db[_0xe732('0x2c')][_0xe732('0x45')]({'where':{'id':_0x1c45bf[_0xe732('0x3f')]['id']}})[_0xe732('0x23')](handleEntityNotFound(_0x17f063,null))[_0xe732('0x23')](function(_0x6b1bc5){if(_0x6b1bc5){_0xa64b0a=_0x6b1bc5;_0x33f0d4[_0xe732('0x32')]=_[_0xe732('0x40')](db[_0xe732('0x4b')][_0xe732('0x41')]);_0x33f0d4[_0xe732('0x2f')]=_['keys'](_0x1c45bf[_0xe732('0x2f')]);_0x33f0d4[_0xe732('0x38')]=_[_0xe732('0x31')](_0x33f0d4['model'],_0x33f0d4[_0xe732('0x2f')]);_0xb3a3fa[_0xe732('0x30')]=_[_0xe732('0x31')](_0x33f0d4[_0xe732('0x32')],qs[_0xe732('0x33')](_0x1c45bf[_0xe732('0x2f')][_0xe732('0x33')]));_0xb3a3fa[_0xe732('0x30')]=_0xb3a3fa[_0xe732('0x30')]['length']?_0xb3a3fa[_0xe732('0x30')]:_0x33f0d4[_0xe732('0x32')];_0xb3a3fa[_0xe732('0x35')]=qs[_0xe732('0x36')](_0x1c45bf['query'][_0xe732('0x36')]);_0xb3a3fa[_0xe732('0x37')]=qs[_0xe732('0x38')](_['pick'](_0x1c45bf['query'],_0x33f0d4[_0xe732('0x38')]));if(_0x1c45bf[_0xe732('0x2f')][_0xe732('0x39')]){_0xb3a3fa[_0xe732('0x37')]=_[_0xe732('0x3a')](_0xb3a3fa[_0xe732('0x37')],{'$or':_[_0xe732('0x2b')](_0xb3a3fa[_0xe732('0x30')],function(_0x43e6a7){var _0x339ed4={};_0x339ed4[_0x43e6a7]={'$like':'%'+_0x1c45bf[_0xe732('0x2f')][_0xe732('0x39')]+'%'};return _0x339ed4;})});}_0xb3a3fa=_['merge']({},_0xb3a3fa,_0x1c45bf[_0xe732('0x47')]);return _0xa64b0a['getSubjects'](_0xb3a3fa);}})[_0xe732('0x23')](function(_0x7f3c8){if(_0x7f3c8){_0x366227=_0x7f3c8['length'];if(!_0x1c45bf[_0xe732('0x2f')][_0xe732('0x49')](_0xe732('0x4c'))){_0xb3a3fa['limit']=qs[_0xe732('0x1d')](_0x1c45bf['query'][_0xe732('0x1d')]);_0xb3a3fa[_0xe732('0x1a')]=qs[_0xe732('0x1a')](_0x1c45bf[_0xe732('0x2f')][_0xe732('0x1a')]);}return _0xa64b0a[_0xe732('0x4a')](_0xb3a3fa);}})[_0xe732('0x23')](function(_0x45a66e){if(_0x45a66e){return _0x45a66e?{'count':_0x366227,'rows':_0x45a66e}:null;}})[_0xe732('0x23')](respondWithResult(_0x17f063,null))[_0xe732('0x3d')](handleError(_0x17f063,null));};exports[_0xe732('0x4d')]=function(_0x23ee7f,_0x493590,_0x3a12a4){var _0x1f1496={};var _0x4d5141={};var _0x1e5f42;var _0x457da2;return db[_0xe732('0x2c')]['findOne']({'where':{'id':_0x23ee7f[_0xe732('0x3f')]['id']}})['then'](handleEntityNotFound(_0x493590,null))[_0xe732('0x23')](function(_0x430b00){if(_0x430b00){_0x1e5f42=_0x430b00;_0x4d5141[_0xe732('0x32')]=_[_0xe732('0x40')](db[_0xe732('0x4b')][_0xe732('0x41')]);_0x4d5141[_0xe732('0x2f')]=_['keys'](_0x23ee7f[_0xe732('0x2f')]);_0x4d5141[_0xe732('0x38')]=_[_0xe732('0x31')](_0x4d5141[_0xe732('0x32')],_0x4d5141[_0xe732('0x2f')]);_0x1f1496['attributes']=_[_0xe732('0x31')](_0x4d5141[_0xe732('0x32')],qs[_0xe732('0x33')](_0x23ee7f[_0xe732('0x2f')][_0xe732('0x33')]));_0x1f1496[_0xe732('0x30')]=_0x1f1496[_0xe732('0x30')][_0xe732('0x34')]?_0x1f1496['attributes']:_0x4d5141[_0xe732('0x32')];_0x1f1496[_0xe732('0x35')]=qs[_0xe732('0x36')](_0x23ee7f[_0xe732('0x2f')][_0xe732('0x36')]);_0x1f1496['where']=qs[_0xe732('0x38')](_[_0xe732('0x46')](_0x23ee7f[_0xe732('0x2f')],_0x4d5141[_0xe732('0x38')]));if(_0x23ee7f['query'][_0xe732('0x39')]){_0x1f1496[_0xe732('0x37')]=_[_0xe732('0x3a')](_0x1f1496[_0xe732('0x37')],{'$or':_[_0xe732('0x2b')](_0x1f1496['attributes'],function(_0x5e4eb5){var _0x166679={};_0x166679[_0x5e4eb5]={'$like':'%'+_0x23ee7f['query'][_0xe732('0x39')]+'%'};return _0x166679;})});}_0x1f1496=_['merge']({},_0x1f1496,_0x23ee7f[_0xe732('0x47')]);return _0x1e5f42[_0xe732('0x4d')](_0x1f1496);}})[_0xe732('0x23')](function(_0xfd7348){if(_0xfd7348){_0x457da2=_0xfd7348[_0xe732('0x34')];if(!_0x23ee7f[_0xe732('0x2f')][_0xe732('0x49')](_0xe732('0x4c'))){_0x1f1496['limit']=qs[_0xe732('0x1d')](_0x23ee7f[_0xe732('0x2f')]['limit']);_0x1f1496[_0xe732('0x1a')]=qs[_0xe732('0x1a')](_0x23ee7f['query']['offset']);}return _0x1e5f42['getDescriptions'](_0x1f1496);}})[_0xe732('0x23')](function(_0x4c3c93){if(_0x4c3c93){return _0x4c3c93?{'count':_0x457da2,'rows':_0x4c3c93}:null;}})[_0xe732('0x23')](respondWithResult(_0x493590,null))[_0xe732('0x3d')](handleError(_0x493590,null));};