Built motion from commit f7863d46.|2.5.41
[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 _0x70e3=['../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','limit','count','set','Content-Range','reject','then','sendStatus','error','stack','name','index','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','Dynamics365Configuration','includeAll','include','findAll','rows','catch','params','find','create','body','destroy','Dynamics365Field','pick','getFields','getSubjects','findOne','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','moment','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x70e3,0x179));var _0x370e=function(_0xaa0309,_0x1c8008){_0xaa0309=_0xaa0309-0x0;var _0x5de7ce=_0x70e3[_0xaa0309];return _0x5de7ce;};'use strict';var emlformat=require(_0x370e('0x0'));var rimraf=require(_0x370e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x370e('0x2'));var rp=require(_0x370e('0x3'));var moment=require(_0x370e('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x370e('0x5'));var sox=require(_0x370e('0x6'));var csv=require(_0x370e('0x7'));var ejs=require(_0x370e('0x8'));var fs=require('fs');var fs_extra=require(_0x370e('0x9'));var _=require(_0x370e('0xa'));var squel=require(_0x370e('0xb'));var crypto=require(_0x370e('0xc'));var jsforce=require(_0x370e('0xd'));var deskjs=require(_0x370e('0xe'));var toCsv=require(_0x370e('0x7'));var querystring=require('querystring');var Papa=require(_0x370e('0xf'));var Redis=require(_0x370e('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x370e('0x11'));var as=require(_0x370e('0x12'));var hardwareService=require(_0x370e('0x13'));var logger=require(_0x370e('0x14'))(_0x370e('0x15'));var utils=require(_0x370e('0x16'));var config=require(_0x370e('0x17'));var licenseUtil=require(_0x370e('0x18'));var db=require(_0x370e('0x19'))['db'];function respondWithStatusCode(_0x2e9bf7,_0x28784b){_0x28784b=_0x28784b||0xcc;return function(_0xe5ee26){if(_0xe5ee26){return _0x2e9bf7['sendStatus'](_0x28784b);}return _0x2e9bf7[_0x370e('0x1a')](_0x28784b)[_0x370e('0x1b')]();};}function respondWithResult(_0x1a5974,_0x29913b){_0x29913b=_0x29913b||0xc8;return function(_0x12bc81){if(_0x12bc81){return _0x1a5974[_0x370e('0x1a')](_0x29913b)[_0x370e('0x1c')](_0x12bc81);}};}function respondWithFilteredResult(_0x51e741,_0x45bdd5){return function(_0x220bfd){if(_0x220bfd){var _0xe57350=typeof _0x45bdd5[_0x370e('0x1d')]==='undefined'&&typeof _0x45bdd5[_0x370e('0x1e')]==='undefined';var _0xc254f8=_0x220bfd[_0x370e('0x1f')];var _0x5ea271=_0xe57350?0x0:_0x45bdd5['offset'];var _0x56e2b0=_0xe57350?_0x220bfd[_0x370e('0x1f')]:_0x45bdd5[_0x370e('0x1d')]+_0x45bdd5[_0x370e('0x1e')];var _0x341345;if(_0x56e2b0>=_0xc254f8){_0x56e2b0=_0xc254f8;_0x341345=0xc8;}else{_0x341345=0xce;}_0x51e741['status'](_0x341345);return _0x51e741[_0x370e('0x20')](_0x370e('0x21'),_0x5ea271+'-'+_0x56e2b0+'/'+_0xc254f8)[_0x370e('0x1c')](_0x220bfd);}return null;};}function patchUpdates(_0x19c681){return function(_0x550fd2){try{jsonpatch['apply'](_0x550fd2,_0x19c681,!![]);}catch(_0x27267b){return BPromise[_0x370e('0x22')](_0x27267b);}return _0x550fd2['save']();};}function saveUpdates(_0x8d8dbb,_0x3995bc){return function(_0xa9fbc3){if(_0xa9fbc3){return _0xa9fbc3['update'](_0x8d8dbb)[_0x370e('0x23')](function(_0x4e9887){return _0x4e9887;});}return null;};}function removeEntity(_0xdd4ed,_0x56dd99){return function(_0x24ebb6){if(_0x24ebb6){return _0x24ebb6['destroy']()[_0x370e('0x23')](function(){_0xdd4ed['status'](0xcc)[_0x370e('0x1b')]();});}};}function handleEntityNotFound(_0x5739c3,_0x484999){return function(_0x25bc02){if(!_0x25bc02){_0x5739c3[_0x370e('0x24')](0x194);}return _0x25bc02;};}function handleError(_0x1a187e,_0x297d69){_0x297d69=_0x297d69||0x1f4;return function(_0xafff08){logger[_0x370e('0x25')](_0xafff08[_0x370e('0x26')]);if(_0xafff08[_0x370e('0x27')]){delete _0xafff08[_0x370e('0x27')];}_0x1a187e['status'](_0x297d69)['send'](_0xafff08);};}exports[_0x370e('0x28')]=function(_0x2f8d46,_0x546dcd){var _0x2bcbb6={},_0xb71fee={},_0x81ad3b={'count':0x0,'rows':[]};var _0x378a1d=_['map'](db['Dynamics365Configuration'][_0x370e('0x29')],function(_0x16b501){return{'name':_0x16b501[_0x370e('0x2a')],'type':_0x16b501[_0x370e('0x2b')][_0x370e('0x2c')]};});_0xb71fee[_0x370e('0x2d')]=_[_0x370e('0x2e')](_0x378a1d,_0x370e('0x27'));_0xb71fee[_0x370e('0x2f')]=_[_0x370e('0x30')](_0x2f8d46[_0x370e('0x2f')]);_0xb71fee[_0x370e('0x31')]=_[_0x370e('0x32')](_0xb71fee[_0x370e('0x2d')],_0xb71fee[_0x370e('0x2f')]);_0x2bcbb6[_0x370e('0x33')]=_[_0x370e('0x32')](_0xb71fee[_0x370e('0x2d')],qs[_0x370e('0x34')](_0x2f8d46['query'][_0x370e('0x34')]));_0x2bcbb6[_0x370e('0x33')]=_0x2bcbb6[_0x370e('0x33')][_0x370e('0x35')]?_0x2bcbb6[_0x370e('0x33')]:_0xb71fee[_0x370e('0x2d')];if(!_0x2f8d46['query'][_0x370e('0x36')](_0x370e('0x37'))){_0x2bcbb6[_0x370e('0x1e')]=qs[_0x370e('0x1e')](_0x2f8d46[_0x370e('0x2f')][_0x370e('0x1e')]);_0x2bcbb6[_0x370e('0x1d')]=qs[_0x370e('0x1d')](_0x2f8d46[_0x370e('0x2f')]['offset']);}_0x2bcbb6[_0x370e('0x38')]=qs[_0x370e('0x39')](_0x2f8d46['query']['sort']);_0x2bcbb6[_0x370e('0x3a')]=qs['filters'](_['pick'](_0x2f8d46['query'],_0xb71fee[_0x370e('0x31')]),_0x378a1d);if(_0x2f8d46[_0x370e('0x2f')][_0x370e('0x3b')]){_0x2bcbb6[_0x370e('0x3a')]=_[_0x370e('0x3c')](_0x2bcbb6[_0x370e('0x3a')],{'$or':_[_0x370e('0x2e')](_0x378a1d,function(_0x58342b){if(_0x58342b[_0x370e('0x2b')]!==_0x370e('0x3d')){var _0x5f1b44={};_0x5f1b44[_0x58342b[_0x370e('0x27')]]={'$like':'%'+_0x2f8d46[_0x370e('0x2f')]['filter']+'%'};return _0x5f1b44;}})});}_0x2bcbb6=_['merge']({},_0x2bcbb6,_0x2f8d46[_0x370e('0x3e')]);var _0x770236={'where':_0x2bcbb6[_0x370e('0x3a')]};return db[_0x370e('0x3f')][_0x370e('0x1f')](_0x770236)[_0x370e('0x23')](function(_0x47663f){_0x81ad3b[_0x370e('0x1f')]=_0x47663f;if(_0x2f8d46[_0x370e('0x2f')][_0x370e('0x40')]){_0x2bcbb6[_0x370e('0x41')]=[{'all':!![]}];}return db[_0x370e('0x3f')][_0x370e('0x42')](_0x2bcbb6);})[_0x370e('0x23')](function(_0x22c538){_0x81ad3b[_0x370e('0x43')]=_0x22c538;return _0x81ad3b;})[_0x370e('0x23')](respondWithFilteredResult(_0x546dcd,_0x2bcbb6))[_0x370e('0x44')](handleError(_0x546dcd,null));};exports['show']=function(_0x5dcba6,_0x1e806f){var _0x4519ec={'raw':![],'where':{'id':_0x5dcba6[_0x370e('0x45')]['id']}},_0x1355dc={};_0x1355dc['model']=_[_0x370e('0x30')](db[_0x370e('0x3f')][_0x370e('0x29')]);_0x1355dc[_0x370e('0x2f')]=_[_0x370e('0x30')](_0x5dcba6[_0x370e('0x2f')]);_0x1355dc[_0x370e('0x31')]=_[_0x370e('0x32')](_0x1355dc[_0x370e('0x2d')],_0x1355dc[_0x370e('0x2f')]);_0x4519ec[_0x370e('0x33')]=_['intersection'](_0x1355dc[_0x370e('0x2d')],qs[_0x370e('0x34')](_0x5dcba6[_0x370e('0x2f')][_0x370e('0x34')]));_0x4519ec[_0x370e('0x33')]=_0x4519ec[_0x370e('0x33')][_0x370e('0x35')]?_0x4519ec[_0x370e('0x33')]:_0x1355dc[_0x370e('0x2d')];if(_0x5dcba6['query'][_0x370e('0x40')]){_0x4519ec[_0x370e('0x41')]=[{'all':!![]}];}_0x4519ec=_[_0x370e('0x3c')]({},_0x4519ec,_0x5dcba6['options']);return db[_0x370e('0x3f')][_0x370e('0x46')](_0x4519ec)['then'](handleEntityNotFound(_0x1e806f,null))[_0x370e('0x23')](respondWithResult(_0x1e806f,null))[_0x370e('0x44')](handleError(_0x1e806f,null));};exports[_0x370e('0x47')]=function(_0x312fbe,_0x160c82){return db[_0x370e('0x3f')][_0x370e('0x47')](_0x312fbe['body'],{})[_0x370e('0x23')](respondWithResult(_0x160c82,0xc9))[_0x370e('0x44')](handleError(_0x160c82,null));};exports['update']=function(_0xb27b8b,_0x4ec1a0){if(_0xb27b8b[_0x370e('0x48')]['id']){delete _0xb27b8b[_0x370e('0x48')]['id'];}return db[_0x370e('0x3f')][_0x370e('0x46')]({'where':{'id':_0xb27b8b[_0x370e('0x45')]['id']}})['then'](handleEntityNotFound(_0x4ec1a0,null))['then'](saveUpdates(_0xb27b8b['body'],null))[_0x370e('0x23')](respondWithResult(_0x4ec1a0,null))[_0x370e('0x44')](handleError(_0x4ec1a0,null));};exports[_0x370e('0x49')]=function(_0x1b6492,_0x38b574){return db['Dynamics365Configuration']['find']({'where':{'id':_0x1b6492[_0x370e('0x45')]['id']}})[_0x370e('0x23')](handleEntityNotFound(_0x38b574,null))[_0x370e('0x23')](removeEntity(_0x38b574,null))[_0x370e('0x44')](handleError(_0x38b574,null));};exports['getFields']=function(_0x330b12,_0x599e8f,_0x244d1e){var _0x1a99cc={};var _0x5d62f6={};var _0x3c5979;var _0x4acaf6;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x330b12[_0x370e('0x45')]['id']}})[_0x370e('0x23')](handleEntityNotFound(_0x599e8f,null))[_0x370e('0x23')](function(_0x56304f){if(_0x56304f){_0x3c5979=_0x56304f;_0x5d62f6[_0x370e('0x2d')]=_[_0x370e('0x30')](db[_0x370e('0x4a')][_0x370e('0x29')]);_0x5d62f6[_0x370e('0x2f')]=_[_0x370e('0x30')](_0x330b12['query']);_0x5d62f6[_0x370e('0x31')]=_[_0x370e('0x32')](_0x5d62f6[_0x370e('0x2d')],_0x5d62f6[_0x370e('0x2f')]);_0x1a99cc[_0x370e('0x33')]=_[_0x370e('0x32')](_0x5d62f6[_0x370e('0x2d')],qs[_0x370e('0x34')](_0x330b12[_0x370e('0x2f')][_0x370e('0x34')]));_0x1a99cc[_0x370e('0x33')]=_0x1a99cc[_0x370e('0x33')][_0x370e('0x35')]?_0x1a99cc[_0x370e('0x33')]:_0x5d62f6[_0x370e('0x2d')];_0x1a99cc[_0x370e('0x38')]=qs[_0x370e('0x39')](_0x330b12['query'][_0x370e('0x39')]);_0x1a99cc['where']=qs[_0x370e('0x31')](_[_0x370e('0x4b')](_0x330b12['query'],_0x5d62f6[_0x370e('0x31')]));if(_0x330b12['query'][_0x370e('0x3b')]){_0x1a99cc[_0x370e('0x3a')]=_['merge'](_0x1a99cc['where'],{'$or':_[_0x370e('0x2e')](_0x1a99cc['attributes'],function(_0x373a28){var _0xcfdc79={};_0xcfdc79[_0x373a28]={'$like':'%'+_0x330b12[_0x370e('0x2f')][_0x370e('0x3b')]+'%'};return _0xcfdc79;})});}_0x1a99cc=_['merge']({},_0x1a99cc,_0x330b12['options']);return _0x3c5979['getFields'](_0x1a99cc);}})['then'](function(_0x27028e){if(_0x27028e){_0x4acaf6=_0x27028e[_0x370e('0x35')];if(!_0x330b12[_0x370e('0x2f')]['hasOwnProperty'](_0x370e('0x37'))){_0x1a99cc[_0x370e('0x1e')]=qs[_0x370e('0x1e')](_0x330b12[_0x370e('0x2f')]['limit']);_0x1a99cc['offset']=qs[_0x370e('0x1d')](_0x330b12[_0x370e('0x2f')]['offset']);}return _0x3c5979[_0x370e('0x4c')](_0x1a99cc);}})[_0x370e('0x23')](function(_0x85d5c2){if(_0x85d5c2){return _0x85d5c2?{'count':_0x4acaf6,'rows':_0x85d5c2}:null;}})['then'](respondWithResult(_0x599e8f,null))[_0x370e('0x44')](handleError(_0x599e8f,null));};exports[_0x370e('0x4d')]=function(_0x54c9e3,_0x4b47af,_0x2cf3db){var _0x51b71f={};var _0x4206a9={};var _0x412ad7;var _0x3704e2;return db[_0x370e('0x3f')][_0x370e('0x4e')]({'where':{'id':_0x54c9e3['params']['id']}})[_0x370e('0x23')](handleEntityNotFound(_0x4b47af,null))[_0x370e('0x23')](function(_0x584b4e){if(_0x584b4e){_0x412ad7=_0x584b4e;_0x4206a9['model']=_['keys'](db['Dynamics365Field'][_0x370e('0x29')]);_0x4206a9[_0x370e('0x2f')]=_[_0x370e('0x30')](_0x54c9e3[_0x370e('0x2f')]);_0x4206a9[_0x370e('0x31')]=_['intersection'](_0x4206a9[_0x370e('0x2d')],_0x4206a9[_0x370e('0x2f')]);_0x51b71f[_0x370e('0x33')]=_[_0x370e('0x32')](_0x4206a9[_0x370e('0x2d')],qs[_0x370e('0x34')](_0x54c9e3[_0x370e('0x2f')][_0x370e('0x34')]));_0x51b71f['attributes']=_0x51b71f[_0x370e('0x33')][_0x370e('0x35')]?_0x51b71f['attributes']:_0x4206a9[_0x370e('0x2d')];_0x51b71f[_0x370e('0x38')]=qs[_0x370e('0x39')](_0x54c9e3[_0x370e('0x2f')][_0x370e('0x39')]);_0x51b71f[_0x370e('0x3a')]=qs['filters'](_[_0x370e('0x4b')](_0x54c9e3[_0x370e('0x2f')],_0x4206a9[_0x370e('0x31')]));if(_0x54c9e3[_0x370e('0x2f')][_0x370e('0x3b')]){_0x51b71f['where']=_[_0x370e('0x3c')](_0x51b71f['where'],{'$or':_['map'](_0x51b71f[_0x370e('0x33')],function(_0x5b053e){var _0x73c7fc={};_0x73c7fc[_0x5b053e]={'$like':'%'+_0x54c9e3[_0x370e('0x2f')]['filter']+'%'};return _0x73c7fc;})});}_0x51b71f=_[_0x370e('0x3c')]({},_0x51b71f,_0x54c9e3['options']);return _0x412ad7[_0x370e('0x4d')](_0x51b71f);}})['then'](function(_0x3573d4){if(_0x3573d4){_0x3704e2=_0x3573d4[_0x370e('0x35')];if(!_0x54c9e3[_0x370e('0x2f')][_0x370e('0x36')](_0x370e('0x37'))){_0x51b71f[_0x370e('0x1e')]=qs[_0x370e('0x1e')](_0x54c9e3['query'][_0x370e('0x1e')]);_0x51b71f[_0x370e('0x1d')]=qs[_0x370e('0x1d')](_0x54c9e3[_0x370e('0x2f')][_0x370e('0x1d')]);}return _0x412ad7[_0x370e('0x4d')](_0x51b71f);}})[_0x370e('0x23')](function(_0x2735e5){if(_0x2735e5){return _0x2735e5?{'count':_0x3704e2,'rows':_0x2735e5}:null;}})['then'](respondWithResult(_0x4b47af,null))[_0x370e('0x44')](handleError(_0x4b47af,null));};exports[_0x370e('0x4f')]=function(_0x5d8e58,_0x2dcf7d,_0x428292){var _0x315343={};var _0x1b3aad={};var _0x244f04;var _0x53da38;return db[_0x370e('0x3f')][_0x370e('0x4e')]({'where':{'id':_0x5d8e58[_0x370e('0x45')]['id']}})['then'](handleEntityNotFound(_0x2dcf7d,null))[_0x370e('0x23')](function(_0x28296a){if(_0x28296a){_0x244f04=_0x28296a;_0x1b3aad[_0x370e('0x2d')]=_[_0x370e('0x30')](db[_0x370e('0x4a')]['rawAttributes']);_0x1b3aad[_0x370e('0x2f')]=_[_0x370e('0x30')](_0x5d8e58[_0x370e('0x2f')]);_0x1b3aad[_0x370e('0x31')]=_['intersection'](_0x1b3aad['model'],_0x1b3aad[_0x370e('0x2f')]);_0x315343[_0x370e('0x33')]=_[_0x370e('0x32')](_0x1b3aad['model'],qs[_0x370e('0x34')](_0x5d8e58[_0x370e('0x2f')][_0x370e('0x34')]));_0x315343[_0x370e('0x33')]=_0x315343[_0x370e('0x33')][_0x370e('0x35')]?_0x315343[_0x370e('0x33')]:_0x1b3aad[_0x370e('0x2d')];_0x315343[_0x370e('0x38')]=qs[_0x370e('0x39')](_0x5d8e58['query'][_0x370e('0x39')]);_0x315343[_0x370e('0x3a')]=qs['filters'](_['pick'](_0x5d8e58['query'],_0x1b3aad[_0x370e('0x31')]));if(_0x5d8e58['query'][_0x370e('0x3b')]){_0x315343['where']=_['merge'](_0x315343[_0x370e('0x3a')],{'$or':_[_0x370e('0x2e')](_0x315343['attributes'],function(_0x357cf8){var _0x24b385={};_0x24b385[_0x357cf8]={'$like':'%'+_0x5d8e58['query'][_0x370e('0x3b')]+'%'};return _0x24b385;})});}_0x315343=_[_0x370e('0x3c')]({},_0x315343,_0x5d8e58[_0x370e('0x3e')]);return _0x244f04['getDescriptions'](_0x315343);}})[_0x370e('0x23')](function(_0x21a90c){if(_0x21a90c){_0x53da38=_0x21a90c[_0x370e('0x35')];if(!_0x5d8e58['query'][_0x370e('0x36')](_0x370e('0x37'))){_0x315343[_0x370e('0x1e')]=qs['limit'](_0x5d8e58[_0x370e('0x2f')]['limit']);_0x315343[_0x370e('0x1d')]=qs[_0x370e('0x1d')](_0x5d8e58[_0x370e('0x2f')]['offset']);}return _0x244f04[_0x370e('0x4f')](_0x315343);}})[_0x370e('0x23')](function(_0x42e202){if(_0x42e202){return _0x42e202?{'count':_0x53da38,'rows':_0x42e202}:null;}})[_0x370e('0x23')](respondWithResult(_0x2dcf7d,null))[_0x370e('0x44')](handleError(_0x2dcf7d,null));};