6d358c1bf5188f32604aec1402cd2145a2f99e4e
[motion2.git] / server / api / intSugarcrmConfiguration / intSugarcrmConfiguration.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 _0x8a51=['eml-format','rimraf','fast-json-patch','moment','bluebird','path','ejs','lodash','jsforce','desk.js','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','status','undefined','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','end','sendStatus','name','send','index','map','SugarcrmConfiguration','rawAttributes','fieldName','type','key','query','keys','intersection','attributes','fields','model','hasOwnProperty','order','sort','where','filters','pick','merge','filter','options','includeAll','findAll','rows','catch','show','params','include','create','body','update','find','getFields','findOne','SugarcrmField','length','nolimit','getSubjects','getDescriptions'];(function(_0x14591c,_0x1e0b35){var _0x1a6205=function(_0x5995c9){while(--_0x5995c9){_0x14591c['push'](_0x14591c['shift']());}};_0x1a6205(++_0x1e0b35);}(_0x8a51,0x124));var _0x18a5=function(_0x27af45,_0x1b57aa){_0x27af45=_0x27af45-0x0;var _0x18df21=_0x8a51[_0x27af45];return _0x18df21;};'use strict';var emlformat=require(_0x18a5('0x0'));var rimraf=require(_0x18a5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x18a5('0x2'));var rp=require('request-promise');var moment=require(_0x18a5('0x3'));var BPromise=require(_0x18a5('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x18a5('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x18a5('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x18a5('0x7'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x18a5('0x8'));var deskjs=require(_0x18a5('0x9'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x18a5('0xa'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x18a5('0xb'));var hardwareService=require(_0x18a5('0xc'));var logger=require('../../config/logger')(_0x18a5('0xd'));var utils=require(_0x18a5('0xe'));var config=require(_0x18a5('0xf'));var licenseUtil=require(_0x18a5('0x10'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3c7bab,_0x161b2d){_0x161b2d=_0x161b2d||0xcc;return function(_0x5b60e4){if(_0x5b60e4){return _0x3c7bab['sendStatus'](_0x161b2d);}return _0x3c7bab[_0x18a5('0x11')](_0x161b2d)['end']();};}function respondWithResult(_0x2dba50,_0x2bf0e0){_0x2bf0e0=_0x2bf0e0||0xc8;return function(_0xe073de){if(_0xe073de){return _0x2dba50[_0x18a5('0x11')](_0x2bf0e0)['json'](_0xe073de);}};}function respondWithFilteredResult(_0x321ebe,_0xcafd34){return function(_0x4626e4){if(_0x4626e4){var _0x13d69b=typeof _0xcafd34['offset']==='undefined'&&typeof _0xcafd34['limit']===_0x18a5('0x12');var _0x1a20d2=_0x4626e4[_0x18a5('0x13')];var _0xbe5902=_0x13d69b?0x0:_0xcafd34[_0x18a5('0x14')];var _0x22b8ff=_0x13d69b?_0x4626e4[_0x18a5('0x13')]:_0xcafd34[_0x18a5('0x14')]+_0xcafd34[_0x18a5('0x15')];var _0x3ceeed;if(_0x22b8ff>=_0x1a20d2){_0x22b8ff=_0x1a20d2;_0x3ceeed=0xc8;}else{_0x3ceeed=0xce;}_0x321ebe[_0x18a5('0x11')](_0x3ceeed);return _0x321ebe[_0x18a5('0x16')](_0x18a5('0x17'),_0xbe5902+'-'+_0x22b8ff+'/'+_0x1a20d2)['json'](_0x4626e4);}return null;};}function patchUpdates(_0x5e1ac8){return function(_0x5c4af7){try{jsonpatch[_0x18a5('0x18')](_0x5c4af7,_0x5e1ac8,!![]);}catch(_0x4b80b5){return BPromise[_0x18a5('0x19')](_0x4b80b5);}return _0x5c4af7[_0x18a5('0x1a')]();};}function saveUpdates(_0x9d279a,_0x3687c8){return function(_0x3063bd){if(_0x3063bd){return _0x3063bd['update'](_0x9d279a)[_0x18a5('0x1b')](function(_0x41d8a5){return _0x41d8a5;});}return null;};}function removeEntity(_0x29e8b7,_0x97f5a6){return function(_0x521e78){if(_0x521e78){return _0x521e78[_0x18a5('0x1c')]()[_0x18a5('0x1b')](function(){_0x29e8b7[_0x18a5('0x11')](0xcc)[_0x18a5('0x1d')]();});}};}function handleEntityNotFound(_0x51c0ef,_0x5406d5){return function(_0x553c72){if(!_0x553c72){_0x51c0ef[_0x18a5('0x1e')](0x194);}return _0x553c72;};}function handleError(_0x242d9a,_0x448966){_0x448966=_0x448966||0x1f4;return function(_0x125310){logger['error'](_0x125310['stack']);if(_0x125310[_0x18a5('0x1f')]){delete _0x125310[_0x18a5('0x1f')];}_0x242d9a[_0x18a5('0x11')](_0x448966)[_0x18a5('0x20')](_0x125310);};}exports[_0x18a5('0x21')]=function(_0x16032b,_0x426944){var _0x18b455={},_0x98f812={},_0x2f45={'count':0x0,'rows':[]};var _0x4a584e=_[_0x18a5('0x22')](db[_0x18a5('0x23')][_0x18a5('0x24')],function(_0x3780a3){return{'name':_0x3780a3[_0x18a5('0x25')],'type':_0x3780a3[_0x18a5('0x26')][_0x18a5('0x27')]};});_0x98f812['model']=_[_0x18a5('0x22')](_0x4a584e,_0x18a5('0x1f'));_0x98f812[_0x18a5('0x28')]=_[_0x18a5('0x29')](_0x16032b['query']);_0x98f812['filters']=_[_0x18a5('0x2a')](_0x98f812['model'],_0x98f812[_0x18a5('0x28')]);_0x18b455[_0x18a5('0x2b')]=_['intersection'](_0x98f812['model'],qs[_0x18a5('0x2c')](_0x16032b['query'][_0x18a5('0x2c')]));_0x18b455[_0x18a5('0x2b')]=_0x18b455[_0x18a5('0x2b')]['length']?_0x18b455[_0x18a5('0x2b')]:_0x98f812[_0x18a5('0x2d')];if(!_0x16032b['query'][_0x18a5('0x2e')]('nolimit')){_0x18b455[_0x18a5('0x15')]=qs[_0x18a5('0x15')](_0x16032b[_0x18a5('0x28')][_0x18a5('0x15')]);_0x18b455[_0x18a5('0x14')]=qs[_0x18a5('0x14')](_0x16032b['query'][_0x18a5('0x14')]);}_0x18b455[_0x18a5('0x2f')]=qs[_0x18a5('0x30')](_0x16032b[_0x18a5('0x28')]['sort']);_0x18b455[_0x18a5('0x31')]=qs[_0x18a5('0x32')](_[_0x18a5('0x33')](_0x16032b[_0x18a5('0x28')],_0x98f812[_0x18a5('0x32')]),_0x4a584e);if(_0x16032b[_0x18a5('0x28')]['filter']){_0x18b455['where']=_[_0x18a5('0x34')](_0x18b455[_0x18a5('0x31')],{'$or':_[_0x18a5('0x22')](_0x4a584e,function(_0x399104){if(_0x399104[_0x18a5('0x26')]!=='VIRTUAL'){var _0x55aae4={};_0x55aae4[_0x399104[_0x18a5('0x1f')]]={'$like':'%'+_0x16032b[_0x18a5('0x28')][_0x18a5('0x35')]+'%'};return _0x55aae4;}})});}_0x18b455=_[_0x18a5('0x34')]({},_0x18b455,_0x16032b[_0x18a5('0x36')]);var _0x1d1dd2={'where':_0x18b455[_0x18a5('0x31')]};return db[_0x18a5('0x23')]['count'](_0x1d1dd2)['then'](function(_0x11970c){_0x2f45['count']=_0x11970c;if(_0x16032b[_0x18a5('0x28')][_0x18a5('0x37')]){_0x18b455['include']=[{'all':!![]}];}return db['SugarcrmConfiguration'][_0x18a5('0x38')](_0x18b455);})[_0x18a5('0x1b')](function(_0x545b94){_0x2f45[_0x18a5('0x39')]=_0x545b94;return _0x2f45;})['then'](respondWithFilteredResult(_0x426944,_0x18b455))[_0x18a5('0x3a')](handleError(_0x426944,null));};exports[_0x18a5('0x3b')]=function(_0x1351d3,_0x1bb693){var _0x528652={'raw':![],'where':{'id':_0x1351d3[_0x18a5('0x3c')]['id']}},_0x3a5b39={};_0x3a5b39[_0x18a5('0x2d')]=_[_0x18a5('0x29')](db[_0x18a5('0x23')][_0x18a5('0x24')]);_0x3a5b39[_0x18a5('0x28')]=_['keys'](_0x1351d3['query']);_0x3a5b39[_0x18a5('0x32')]=_[_0x18a5('0x2a')](_0x3a5b39[_0x18a5('0x2d')],_0x3a5b39[_0x18a5('0x28')]);_0x528652[_0x18a5('0x2b')]=_[_0x18a5('0x2a')](_0x3a5b39['model'],qs[_0x18a5('0x2c')](_0x1351d3['query'][_0x18a5('0x2c')]));_0x528652[_0x18a5('0x2b')]=_0x528652['attributes']['length']?_0x528652[_0x18a5('0x2b')]:_0x3a5b39['model'];if(_0x1351d3[_0x18a5('0x28')][_0x18a5('0x37')]){_0x528652[_0x18a5('0x3d')]=[{'all':!![]}];}_0x528652=_[_0x18a5('0x34')]({},_0x528652,_0x1351d3['options']);return db['SugarcrmConfiguration']['find'](_0x528652)[_0x18a5('0x1b')](handleEntityNotFound(_0x1bb693,null))['then'](respondWithResult(_0x1bb693,null))[_0x18a5('0x3a')](handleError(_0x1bb693,null));};exports[_0x18a5('0x3e')]=function(_0x5a2bb5,_0x392bc5){return db['SugarcrmConfiguration']['create'](_0x5a2bb5[_0x18a5('0x3f')],{})['then'](respondWithResult(_0x392bc5,0xc9))['catch'](handleError(_0x392bc5,null));};exports[_0x18a5('0x40')]=function(_0x365adb,_0x173d20){if(_0x365adb['body']['id']){delete _0x365adb[_0x18a5('0x3f')]['id'];}return db['SugarcrmConfiguration']['find']({'where':{'id':_0x365adb[_0x18a5('0x3c')]['id']}})[_0x18a5('0x1b')](handleEntityNotFound(_0x173d20,null))['then'](saveUpdates(_0x365adb[_0x18a5('0x3f')],null))['then'](respondWithResult(_0x173d20,null))[_0x18a5('0x3a')](handleError(_0x173d20,null));};exports[_0x18a5('0x1c')]=function(_0x2acc36,_0x56ffe9){return db[_0x18a5('0x23')][_0x18a5('0x41')]({'where':{'id':_0x2acc36[_0x18a5('0x3c')]['id']}})['then'](handleEntityNotFound(_0x56ffe9,null))['then'](removeEntity(_0x56ffe9,null))[_0x18a5('0x3a')](handleError(_0x56ffe9,null));};exports[_0x18a5('0x42')]=function(_0x1075f8,_0x520f67,_0x2388d1){var _0x3b59c4={};var _0x314392={};var _0x4fd1a9;var _0x54e492;return db[_0x18a5('0x23')][_0x18a5('0x43')]({'where':{'id':_0x1075f8[_0x18a5('0x3c')]['id']}})[_0x18a5('0x1b')](handleEntityNotFound(_0x520f67,null))['then'](function(_0xe95325){if(_0xe95325){_0x4fd1a9=_0xe95325;_0x314392[_0x18a5('0x2d')]=_[_0x18a5('0x29')](db[_0x18a5('0x44')][_0x18a5('0x24')]);_0x314392['query']=_['keys'](_0x1075f8[_0x18a5('0x28')]);_0x314392[_0x18a5('0x32')]=_[_0x18a5('0x2a')](_0x314392[_0x18a5('0x2d')],_0x314392[_0x18a5('0x28')]);_0x3b59c4['attributes']=_['intersection'](_0x314392[_0x18a5('0x2d')],qs[_0x18a5('0x2c')](_0x1075f8[_0x18a5('0x28')][_0x18a5('0x2c')]));_0x3b59c4['attributes']=_0x3b59c4[_0x18a5('0x2b')][_0x18a5('0x45')]?_0x3b59c4[_0x18a5('0x2b')]:_0x314392[_0x18a5('0x2d')];_0x3b59c4[_0x18a5('0x2f')]=qs[_0x18a5('0x30')](_0x1075f8[_0x18a5('0x28')][_0x18a5('0x30')]);_0x3b59c4[_0x18a5('0x31')]=qs[_0x18a5('0x32')](_[_0x18a5('0x33')](_0x1075f8[_0x18a5('0x28')],_0x314392['filters']));if(_0x1075f8[_0x18a5('0x28')][_0x18a5('0x35')]){_0x3b59c4[_0x18a5('0x31')]=_['merge'](_0x3b59c4[_0x18a5('0x31')],{'$or':_[_0x18a5('0x22')](_0x3b59c4['attributes'],function(_0x942709){var _0x52c66a={};_0x52c66a[_0x942709]={'$like':'%'+_0x1075f8[_0x18a5('0x28')]['filter']+'%'};return _0x52c66a;})});}_0x3b59c4=_[_0x18a5('0x34')]({},_0x3b59c4,_0x1075f8[_0x18a5('0x36')]);return _0x4fd1a9[_0x18a5('0x42')](_0x3b59c4);}})[_0x18a5('0x1b')](function(_0x3b0c08){if(_0x3b0c08){_0x54e492=_0x3b0c08['length'];if(!_0x1075f8['query'][_0x18a5('0x2e')](_0x18a5('0x46'))){_0x3b59c4[_0x18a5('0x15')]=qs[_0x18a5('0x15')](_0x1075f8['query'][_0x18a5('0x15')]);_0x3b59c4[_0x18a5('0x14')]=qs[_0x18a5('0x14')](_0x1075f8[_0x18a5('0x28')][_0x18a5('0x14')]);}return _0x4fd1a9[_0x18a5('0x42')](_0x3b59c4);}})[_0x18a5('0x1b')](function(_0x5b5a1b){if(_0x5b5a1b){return _0x5b5a1b?{'count':_0x54e492,'rows':_0x5b5a1b}:null;}})[_0x18a5('0x1b')](respondWithResult(_0x520f67,null))[_0x18a5('0x3a')](handleError(_0x520f67,null));};exports['getSubjects']=function(_0x1c39c1,_0x210283,_0x172408){var _0x3499ae={};var _0x45e259={};var _0x198fac;var _0x17de0b;return db['SugarcrmConfiguration'][_0x18a5('0x43')]({'where':{'id':_0x1c39c1[_0x18a5('0x3c')]['id']}})[_0x18a5('0x1b')](handleEntityNotFound(_0x210283,null))[_0x18a5('0x1b')](function(_0x3c5b61){if(_0x3c5b61){_0x198fac=_0x3c5b61;_0x45e259[_0x18a5('0x2d')]=_[_0x18a5('0x29')](db[_0x18a5('0x44')][_0x18a5('0x24')]);_0x45e259[_0x18a5('0x28')]=_[_0x18a5('0x29')](_0x1c39c1[_0x18a5('0x28')]);_0x45e259['filters']=_[_0x18a5('0x2a')](_0x45e259[_0x18a5('0x2d')],_0x45e259[_0x18a5('0x28')]);_0x3499ae['attributes']=_[_0x18a5('0x2a')](_0x45e259[_0x18a5('0x2d')],qs[_0x18a5('0x2c')](_0x1c39c1['query'][_0x18a5('0x2c')]));_0x3499ae[_0x18a5('0x2b')]=_0x3499ae[_0x18a5('0x2b')]['length']?_0x3499ae['attributes']:_0x45e259['model'];_0x3499ae[_0x18a5('0x2f')]=qs['sort'](_0x1c39c1[_0x18a5('0x28')][_0x18a5('0x30')]);_0x3499ae['where']=qs['filters'](_[_0x18a5('0x33')](_0x1c39c1[_0x18a5('0x28')],_0x45e259[_0x18a5('0x32')]));if(_0x1c39c1[_0x18a5('0x28')][_0x18a5('0x35')]){_0x3499ae['where']=_[_0x18a5('0x34')](_0x3499ae[_0x18a5('0x31')],{'$or':_['map'](_0x3499ae[_0x18a5('0x2b')],function(_0x560d95){var _0x4240ce={};_0x4240ce[_0x560d95]={'$like':'%'+_0x1c39c1[_0x18a5('0x28')]['filter']+'%'};return _0x4240ce;})});}_0x3499ae=_[_0x18a5('0x34')]({},_0x3499ae,_0x1c39c1[_0x18a5('0x36')]);return _0x198fac[_0x18a5('0x47')](_0x3499ae);}})[_0x18a5('0x1b')](function(_0x3c767e){if(_0x3c767e){_0x17de0b=_0x3c767e[_0x18a5('0x45')];if(!_0x1c39c1[_0x18a5('0x28')][_0x18a5('0x2e')](_0x18a5('0x46'))){_0x3499ae[_0x18a5('0x15')]=qs['limit'](_0x1c39c1[_0x18a5('0x28')][_0x18a5('0x15')]);_0x3499ae[_0x18a5('0x14')]=qs[_0x18a5('0x14')](_0x1c39c1[_0x18a5('0x28')]['offset']);}return _0x198fac['getSubjects'](_0x3499ae);}})[_0x18a5('0x1b')](function(_0x24e853){if(_0x24e853){return _0x24e853?{'count':_0x17de0b,'rows':_0x24e853}:null;}})[_0x18a5('0x1b')](respondWithResult(_0x210283,null))[_0x18a5('0x3a')](handleError(_0x210283,null));};exports[_0x18a5('0x48')]=function(_0x4715f2,_0x2720fd,_0x2e0123){var _0xefd86c={};var _0x2ff318={};var _0x5eb610;var _0x1c1999;return db[_0x18a5('0x23')][_0x18a5('0x43')]({'where':{'id':_0x4715f2['params']['id']}})[_0x18a5('0x1b')](handleEntityNotFound(_0x2720fd,null))['then'](function(_0x51761e){if(_0x51761e){_0x5eb610=_0x51761e;_0x2ff318[_0x18a5('0x2d')]=_['keys'](db[_0x18a5('0x44')][_0x18a5('0x24')]);_0x2ff318[_0x18a5('0x28')]=_[_0x18a5('0x29')](_0x4715f2['query']);_0x2ff318[_0x18a5('0x32')]=_[_0x18a5('0x2a')](_0x2ff318['model'],_0x2ff318['query']);_0xefd86c['attributes']=_[_0x18a5('0x2a')](_0x2ff318[_0x18a5('0x2d')],qs['fields'](_0x4715f2[_0x18a5('0x28')]['fields']));_0xefd86c['attributes']=_0xefd86c[_0x18a5('0x2b')][_0x18a5('0x45')]?_0xefd86c[_0x18a5('0x2b')]:_0x2ff318['model'];_0xefd86c['order']=qs[_0x18a5('0x30')](_0x4715f2['query'][_0x18a5('0x30')]);_0xefd86c[_0x18a5('0x31')]=qs[_0x18a5('0x32')](_['pick'](_0x4715f2['query'],_0x2ff318[_0x18a5('0x32')]));if(_0x4715f2['query'][_0x18a5('0x35')]){_0xefd86c[_0x18a5('0x31')]=_[_0x18a5('0x34')](_0xefd86c[_0x18a5('0x31')],{'$or':_[_0x18a5('0x22')](_0xefd86c[_0x18a5('0x2b')],function(_0x1966c5){var _0x37a3d7={};_0x37a3d7[_0x1966c5]={'$like':'%'+_0x4715f2[_0x18a5('0x28')][_0x18a5('0x35')]+'%'};return _0x37a3d7;})});}_0xefd86c=_[_0x18a5('0x34')]({},_0xefd86c,_0x4715f2[_0x18a5('0x36')]);return _0x5eb610['getDescriptions'](_0xefd86c);}})[_0x18a5('0x1b')](function(_0x336935){if(_0x336935){_0x1c1999=_0x336935[_0x18a5('0x45')];if(!_0x4715f2[_0x18a5('0x28')][_0x18a5('0x2e')](_0x18a5('0x46'))){_0xefd86c[_0x18a5('0x15')]=qs[_0x18a5('0x15')](_0x4715f2['query'][_0x18a5('0x15')]);_0xefd86c[_0x18a5('0x14')]=qs[_0x18a5('0x14')](_0x4715f2['query'][_0x18a5('0x14')]);}return _0x5eb610[_0x18a5('0x48')](_0xefd86c);}})[_0x18a5('0x1b')](function(_0x1dd134){if(_0x1dd134){return _0x1dd134?{'count':_0x1c1999,'rows':_0x1dd134}:null;}})[_0x18a5('0x1b')](respondWithResult(_0x2720fd,null))['catch'](handleError(_0x2720fd,null));};