6cd944a31e733b5076d5273606fc0bab3982002c
[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 _0xa37c=['crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','sendStatus','error','stack','name','send','index','Dynamics365Configuration','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','fields','attributes','length','order','sort','pick','filter','where','merge','options','includeAll','rows','catch','show','params','include','update','body','find','destroy','findOne','getFields','hasOwnProperty','getSubjects','Dynamics365Field','nolimit','getDescriptions','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x4950d4,_0x3e4468){var _0x20ff34=function(_0x3a9826){while(--_0x3a9826){_0x4950d4['push'](_0x4950d4['shift']());}};_0x20ff34(++_0x3e4468);}(_0xa37c,0xf1));var _0xca37=function(_0x2aecb2,_0x343312){_0x2aecb2=_0x2aecb2-0x0;var _0x3ebb80=_0xa37c[_0x2aecb2];return _0x3ebb80;};'use strict';var emlformat=require(_0xca37('0x0'));var rimraf=require(_0xca37('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xca37('0x2'));var rp=require('request-promise');var moment=require(_0xca37('0x3'));var BPromise=require(_0xca37('0x4'));var Mustache=require(_0xca37('0x5'));var util=require(_0xca37('0x6'));var path=require(_0xca37('0x7'));var sox=require(_0xca37('0x8'));var csv=require(_0xca37('0x9'));var ejs=require(_0xca37('0xa'));var fs=require('fs');var fs_extra=require(_0xca37('0xb'));var _=require(_0xca37('0xc'));var squel=require(_0xca37('0xd'));var crypto=require(_0xca37('0xe'));var jsforce=require(_0xca37('0xf'));var deskjs=require(_0xca37('0x10'));var toCsv=require('to-csv');var querystring=require(_0xca37('0x11'));var Papa=require('papaparse');var Redis=require(_0xca37('0x12'));var authService=require(_0xca37('0x13'));var qs=require(_0xca37('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xca37('0x15'));var logger=require(_0xca37('0x16'))(_0xca37('0x17'));var utils=require(_0xca37('0x18'));var config=require(_0xca37('0x19'));var licenseUtil=require(_0xca37('0x1a'));var db=require(_0xca37('0x1b'))['db'];function respondWithStatusCode(_0x46cec8,_0x2f1e52){_0x2f1e52=_0x2f1e52||0xcc;return function(_0x3bc56d){if(_0x3bc56d){return _0x46cec8['sendStatus'](_0x2f1e52);}return _0x46cec8[_0xca37('0x1c')](_0x2f1e52)[_0xca37('0x1d')]();};}function respondWithResult(_0x3b751e,_0x5cfcd1){_0x5cfcd1=_0x5cfcd1||0xc8;return function(_0x1cc12f){if(_0x1cc12f){return _0x3b751e['status'](_0x5cfcd1)[_0xca37('0x1e')](_0x1cc12f);}};}function respondWithFilteredResult(_0x53acc2,_0x473e03){return function(_0x90827f){if(_0x90827f){var _0x86ce1a=typeof _0x473e03[_0xca37('0x1f')]===_0xca37('0x20')&&typeof _0x473e03[_0xca37('0x21')]==='undefined';var _0x19edfb=_0x90827f[_0xca37('0x22')];var _0x4a7fb8=_0x86ce1a?0x0:_0x473e03[_0xca37('0x1f')];var _0x59cf1b=_0x86ce1a?_0x90827f[_0xca37('0x22')]:_0x473e03[_0xca37('0x1f')]+_0x473e03['limit'];var _0x250b56;if(_0x59cf1b>=_0x19edfb){_0x59cf1b=_0x19edfb;_0x250b56=0xc8;}else{_0x250b56=0xce;}_0x53acc2[_0xca37('0x1c')](_0x250b56);return _0x53acc2[_0xca37('0x23')](_0xca37('0x24'),_0x4a7fb8+'-'+_0x59cf1b+'/'+_0x19edfb)[_0xca37('0x1e')](_0x90827f);}return null;};}function patchUpdates(_0x2ebb2f){return function(_0x1d38e5){try{jsonpatch[_0xca37('0x25')](_0x1d38e5,_0x2ebb2f,!![]);}catch(_0x27af66){return BPromise[_0xca37('0x26')](_0x27af66);}return _0x1d38e5[_0xca37('0x27')]();};}function saveUpdates(_0x1e3fc5,_0x14763c){return function(_0x54ff89){if(_0x54ff89){return _0x54ff89['update'](_0x1e3fc5)['then'](function(_0x2f5684){return _0x2f5684;});}return null;};}function removeEntity(_0x8c4cef,_0x7f3871){return function(_0x15dd9b){if(_0x15dd9b){return _0x15dd9b['destroy']()[_0xca37('0x28')](function(){_0x8c4cef[_0xca37('0x1c')](0xcc)[_0xca37('0x1d')]();});}};}function handleEntityNotFound(_0x538516,_0x585a8f){return function(_0x41c59d){if(!_0x41c59d){_0x538516[_0xca37('0x29')](0x194);}return _0x41c59d;};}function handleError(_0x5301f8,_0x2c9a8e){_0x2c9a8e=_0x2c9a8e||0x1f4;return function(_0x39ac48){logger[_0xca37('0x2a')](_0x39ac48[_0xca37('0x2b')]);if(_0x39ac48[_0xca37('0x2c')]){delete _0x39ac48[_0xca37('0x2c')];}_0x5301f8[_0xca37('0x1c')](_0x2c9a8e)[_0xca37('0x2d')](_0x39ac48);};}exports[_0xca37('0x2e')]=function(_0x1f1543,_0x1b7a8b){var _0x428433={},_0x3acfc1={},_0x579457={'count':0x0,'rows':[]};var _0x20fcfc=_['map'](db[_0xca37('0x2f')][_0xca37('0x30')],function(_0x359d33){return{'name':_0x359d33[_0xca37('0x31')],'type':_0x359d33[_0xca37('0x32')][_0xca37('0x33')]};});_0x3acfc1[_0xca37('0x34')]=_[_0xca37('0x35')](_0x20fcfc,_0xca37('0x2c'));_0x3acfc1['query']=_[_0xca37('0x36')](_0x1f1543[_0xca37('0x37')]);_0x3acfc1[_0xca37('0x38')]=_[_0xca37('0x39')](_0x3acfc1[_0xca37('0x34')],_0x3acfc1['query']);_0x428433['attributes']=_[_0xca37('0x39')](_0x3acfc1['model'],qs[_0xca37('0x3a')](_0x1f1543[_0xca37('0x37')][_0xca37('0x3a')]));_0x428433[_0xca37('0x3b')]=_0x428433['attributes'][_0xca37('0x3c')]?_0x428433[_0xca37('0x3b')]:_0x3acfc1[_0xca37('0x34')];if(!_0x1f1543['query']['hasOwnProperty']('nolimit')){_0x428433[_0xca37('0x21')]=qs[_0xca37('0x21')](_0x1f1543[_0xca37('0x37')][_0xca37('0x21')]);_0x428433['offset']=qs[_0xca37('0x1f')](_0x1f1543[_0xca37('0x37')][_0xca37('0x1f')]);}_0x428433[_0xca37('0x3d')]=qs[_0xca37('0x3e')](_0x1f1543[_0xca37('0x37')][_0xca37('0x3e')]);_0x428433['where']=qs[_0xca37('0x38')](_[_0xca37('0x3f')](_0x1f1543[_0xca37('0x37')],_0x3acfc1['filters']),_0x20fcfc);if(_0x1f1543[_0xca37('0x37')][_0xca37('0x40')]){_0x428433[_0xca37('0x41')]=_[_0xca37('0x42')](_0x428433[_0xca37('0x41')],{'$or':_[_0xca37('0x35')](_0x20fcfc,function(_0x3d0227){if(_0x3d0227['type']!=='VIRTUAL'){var _0x9cdef7={};_0x9cdef7[_0x3d0227[_0xca37('0x2c')]]={'$like':'%'+_0x1f1543['query'][_0xca37('0x40')]+'%'};return _0x9cdef7;}})});}_0x428433=_[_0xca37('0x42')]({},_0x428433,_0x1f1543[_0xca37('0x43')]);var _0x1414cd={'where':_0x428433[_0xca37('0x41')]};return db['Dynamics365Configuration'][_0xca37('0x22')](_0x1414cd)[_0xca37('0x28')](function(_0x365189){_0x579457[_0xca37('0x22')]=_0x365189;if(_0x1f1543[_0xca37('0x37')][_0xca37('0x44')]){_0x428433['include']=[{'all':!![]}];}return db[_0xca37('0x2f')]['findAll'](_0x428433);})['then'](function(_0x301cca){_0x579457[_0xca37('0x45')]=_0x301cca;return _0x579457;})[_0xca37('0x28')](respondWithFilteredResult(_0x1b7a8b,_0x428433))[_0xca37('0x46')](handleError(_0x1b7a8b,null));};exports[_0xca37('0x47')]=function(_0x13726e,_0x477fb8){var _0x55aec2={'raw':![],'where':{'id':_0x13726e[_0xca37('0x48')]['id']}},_0x445e49={};_0x445e49[_0xca37('0x34')]=_['keys'](db['Dynamics365Configuration'][_0xca37('0x30')]);_0x445e49[_0xca37('0x37')]=_[_0xca37('0x36')](_0x13726e[_0xca37('0x37')]);_0x445e49[_0xca37('0x38')]=_[_0xca37('0x39')](_0x445e49[_0xca37('0x34')],_0x445e49['query']);_0x55aec2['attributes']=_['intersection'](_0x445e49['model'],qs[_0xca37('0x3a')](_0x13726e['query'][_0xca37('0x3a')]));_0x55aec2[_0xca37('0x3b')]=_0x55aec2['attributes'][_0xca37('0x3c')]?_0x55aec2[_0xca37('0x3b')]:_0x445e49[_0xca37('0x34')];if(_0x13726e[_0xca37('0x37')][_0xca37('0x44')]){_0x55aec2[_0xca37('0x49')]=[{'all':!![]}];}_0x55aec2=_[_0xca37('0x42')]({},_0x55aec2,_0x13726e[_0xca37('0x43')]);return db['Dynamics365Configuration']['find'](_0x55aec2)[_0xca37('0x28')](handleEntityNotFound(_0x477fb8,null))[_0xca37('0x28')](respondWithResult(_0x477fb8,null))['catch'](handleError(_0x477fb8,null));};exports['create']=function(_0x5990a4,_0x392829){return db[_0xca37('0x2f')]['create'](_0x5990a4['body'],{})['then'](respondWithResult(_0x392829,0xc9))['catch'](handleError(_0x392829,null));};exports[_0xca37('0x4a')]=function(_0x443532,_0x4500e6){if(_0x443532[_0xca37('0x4b')]['id']){delete _0x443532[_0xca37('0x4b')]['id'];}return db['Dynamics365Configuration'][_0xca37('0x4c')]({'where':{'id':_0x443532['params']['id']}})['then'](handleEntityNotFound(_0x4500e6,null))[_0xca37('0x28')](saveUpdates(_0x443532[_0xca37('0x4b')],null))[_0xca37('0x28')](respondWithResult(_0x4500e6,null))[_0xca37('0x46')](handleError(_0x4500e6,null));};exports[_0xca37('0x4d')]=function(_0x6b6f0e,_0x188ffb){return db[_0xca37('0x2f')]['find']({'where':{'id':_0x6b6f0e[_0xca37('0x48')]['id']}})[_0xca37('0x28')](handleEntityNotFound(_0x188ffb,null))['then'](removeEntity(_0x188ffb,null))['catch'](handleError(_0x188ffb,null));};exports['getFields']=function(_0x580fcb,_0x438e25,_0x175124){var _0xedfc8c={};var _0x2ffa8e={};var _0xd91710;var _0x1dd70f;return db[_0xca37('0x2f')][_0xca37('0x4e')]({'where':{'id':_0x580fcb[_0xca37('0x48')]['id']}})[_0xca37('0x28')](handleEntityNotFound(_0x438e25,null))[_0xca37('0x28')](function(_0x460224){if(_0x460224){_0xd91710=_0x460224;_0x2ffa8e[_0xca37('0x34')]=_[_0xca37('0x36')](db['Dynamics365Field'][_0xca37('0x30')]);_0x2ffa8e[_0xca37('0x37')]=_['keys'](_0x580fcb[_0xca37('0x37')]);_0x2ffa8e[_0xca37('0x38')]=_[_0xca37('0x39')](_0x2ffa8e[_0xca37('0x34')],_0x2ffa8e['query']);_0xedfc8c[_0xca37('0x3b')]=_[_0xca37('0x39')](_0x2ffa8e[_0xca37('0x34')],qs[_0xca37('0x3a')](_0x580fcb['query'][_0xca37('0x3a')]));_0xedfc8c[_0xca37('0x3b')]=_0xedfc8c['attributes'][_0xca37('0x3c')]?_0xedfc8c[_0xca37('0x3b')]:_0x2ffa8e[_0xca37('0x34')];_0xedfc8c['order']=qs[_0xca37('0x3e')](_0x580fcb[_0xca37('0x37')][_0xca37('0x3e')]);_0xedfc8c[_0xca37('0x41')]=qs[_0xca37('0x38')](_['pick'](_0x580fcb['query'],_0x2ffa8e[_0xca37('0x38')]));if(_0x580fcb['query'][_0xca37('0x40')]){_0xedfc8c[_0xca37('0x41')]=_[_0xca37('0x42')](_0xedfc8c[_0xca37('0x41')],{'$or':_[_0xca37('0x35')](_0xedfc8c[_0xca37('0x3b')],function(_0x45a8dc){var _0x1289e5={};_0x1289e5[_0x45a8dc]={'$like':'%'+_0x580fcb[_0xca37('0x37')][_0xca37('0x40')]+'%'};return _0x1289e5;})});}_0xedfc8c=_[_0xca37('0x42')]({},_0xedfc8c,_0x580fcb[_0xca37('0x43')]);return _0xd91710[_0xca37('0x4f')](_0xedfc8c);}})[_0xca37('0x28')](function(_0x11bcae){if(_0x11bcae){_0x1dd70f=_0x11bcae['length'];if(!_0x580fcb[_0xca37('0x37')][_0xca37('0x50')]('nolimit')){_0xedfc8c[_0xca37('0x21')]=qs[_0xca37('0x21')](_0x580fcb['query']['limit']);_0xedfc8c['offset']=qs['offset'](_0x580fcb[_0xca37('0x37')][_0xca37('0x1f')]);}return _0xd91710[_0xca37('0x4f')](_0xedfc8c);}})[_0xca37('0x28')](function(_0x52eace){if(_0x52eace){return _0x52eace?{'count':_0x1dd70f,'rows':_0x52eace}:null;}})[_0xca37('0x28')](respondWithResult(_0x438e25,null))['catch'](handleError(_0x438e25,null));};exports[_0xca37('0x51')]=function(_0x2bf26e,_0x2c00a2,_0x16bf73){var _0x330b61={};var _0x1aa467={};var _0x3bdeaa;var _0x136078;return db[_0xca37('0x2f')][_0xca37('0x4e')]({'where':{'id':_0x2bf26e[_0xca37('0x48')]['id']}})['then'](handleEntityNotFound(_0x2c00a2,null))[_0xca37('0x28')](function(_0x114d33){if(_0x114d33){_0x3bdeaa=_0x114d33;_0x1aa467[_0xca37('0x34')]=_[_0xca37('0x36')](db[_0xca37('0x52')][_0xca37('0x30')]);_0x1aa467[_0xca37('0x37')]=_[_0xca37('0x36')](_0x2bf26e[_0xca37('0x37')]);_0x1aa467['filters']=_[_0xca37('0x39')](_0x1aa467[_0xca37('0x34')],_0x1aa467[_0xca37('0x37')]);_0x330b61[_0xca37('0x3b')]=_[_0xca37('0x39')](_0x1aa467['model'],qs['fields'](_0x2bf26e['query'][_0xca37('0x3a')]));_0x330b61['attributes']=_0x330b61[_0xca37('0x3b')]['length']?_0x330b61[_0xca37('0x3b')]:_0x1aa467[_0xca37('0x34')];_0x330b61[_0xca37('0x3d')]=qs[_0xca37('0x3e')](_0x2bf26e[_0xca37('0x37')]['sort']);_0x330b61['where']=qs[_0xca37('0x38')](_[_0xca37('0x3f')](_0x2bf26e[_0xca37('0x37')],_0x1aa467['filters']));if(_0x2bf26e[_0xca37('0x37')][_0xca37('0x40')]){_0x330b61[_0xca37('0x41')]=_[_0xca37('0x42')](_0x330b61[_0xca37('0x41')],{'$or':_[_0xca37('0x35')](_0x330b61['attributes'],function(_0x7bcde5){var _0x2192aa={};_0x2192aa[_0x7bcde5]={'$like':'%'+_0x2bf26e['query'][_0xca37('0x40')]+'%'};return _0x2192aa;})});}_0x330b61=_[_0xca37('0x42')]({},_0x330b61,_0x2bf26e[_0xca37('0x43')]);return _0x3bdeaa[_0xca37('0x51')](_0x330b61);}})['then'](function(_0x1bbbbb){if(_0x1bbbbb){_0x136078=_0x1bbbbb[_0xca37('0x3c')];if(!_0x2bf26e[_0xca37('0x37')]['hasOwnProperty'](_0xca37('0x53'))){_0x330b61['limit']=qs['limit'](_0x2bf26e[_0xca37('0x37')][_0xca37('0x21')]);_0x330b61[_0xca37('0x1f')]=qs['offset'](_0x2bf26e[_0xca37('0x37')][_0xca37('0x1f')]);}return _0x3bdeaa[_0xca37('0x51')](_0x330b61);}})[_0xca37('0x28')](function(_0x3ebdca){if(_0x3ebdca){return _0x3ebdca?{'count':_0x136078,'rows':_0x3ebdca}:null;}})[_0xca37('0x28')](respondWithResult(_0x2c00a2,null))[_0xca37('0x46')](handleError(_0x2c00a2,null));};exports['getDescriptions']=function(_0x5590b5,_0x333ee8,_0x23d68a){var _0x477c6e={};var _0x4e5431={};var _0xd4ab29;var _0x5a7af5;return db['Dynamics365Configuration'][_0xca37('0x4e')]({'where':{'id':_0x5590b5['params']['id']}})[_0xca37('0x28')](handleEntityNotFound(_0x333ee8,null))[_0xca37('0x28')](function(_0x2a637d){if(_0x2a637d){_0xd4ab29=_0x2a637d;_0x4e5431[_0xca37('0x34')]=_[_0xca37('0x36')](db[_0xca37('0x52')][_0xca37('0x30')]);_0x4e5431[_0xca37('0x37')]=_[_0xca37('0x36')](_0x5590b5[_0xca37('0x37')]);_0x4e5431['filters']=_['intersection'](_0x4e5431['model'],_0x4e5431['query']);_0x477c6e[_0xca37('0x3b')]=_[_0xca37('0x39')](_0x4e5431['model'],qs['fields'](_0x5590b5[_0xca37('0x37')][_0xca37('0x3a')]));_0x477c6e['attributes']=_0x477c6e[_0xca37('0x3b')]['length']?_0x477c6e[_0xca37('0x3b')]:_0x4e5431['model'];_0x477c6e[_0xca37('0x3d')]=qs[_0xca37('0x3e')](_0x5590b5[_0xca37('0x37')][_0xca37('0x3e')]);_0x477c6e[_0xca37('0x41')]=qs[_0xca37('0x38')](_['pick'](_0x5590b5[_0xca37('0x37')],_0x4e5431[_0xca37('0x38')]));if(_0x5590b5[_0xca37('0x37')][_0xca37('0x40')]){_0x477c6e[_0xca37('0x41')]=_['merge'](_0x477c6e['where'],{'$or':_[_0xca37('0x35')](_0x477c6e[_0xca37('0x3b')],function(_0x1afc3c){var _0x42fff8={};_0x42fff8[_0x1afc3c]={'$like':'%'+_0x5590b5['query']['filter']+'%'};return _0x42fff8;})});}_0x477c6e=_[_0xca37('0x42')]({},_0x477c6e,_0x5590b5[_0xca37('0x43')]);return _0xd4ab29[_0xca37('0x54')](_0x477c6e);}})[_0xca37('0x28')](function(_0x46b4cf){if(_0x46b4cf){_0x5a7af5=_0x46b4cf['length'];if(!_0x5590b5[_0xca37('0x37')][_0xca37('0x50')](_0xca37('0x53'))){_0x477c6e[_0xca37('0x21')]=qs[_0xca37('0x21')](_0x5590b5['query']['limit']);_0x477c6e[_0xca37('0x1f')]=qs['offset'](_0x5590b5[_0xca37('0x37')][_0xca37('0x1f')]);}return _0xd4ab29['getDescriptions'](_0x477c6e);}})[_0xca37('0x28')](function(_0x3f0f88){if(_0x3f0f88){return _0x3f0f88?{'count':_0x5a7af5,'rows':_0x3f0f88}:null;}})[_0xca37('0x28')](respondWithResult(_0x333ee8,null))[_0xca37('0x46')](handleError(_0x333ee8,null));};