cee456f48d85237151c864a9f3969cc5c5d15316
[motion2.git] / server / api / intSalesforceConfiguration / intSalesforceConfiguration.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 _0xbb07=['eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','reject','save','update','then','error','stack','name','send','map','SalesforceConfiguration','rawAttributes','fieldName','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','type','VIRTUAL','where','count','includeAll','findAll','catch','params','keys','include','find','create','body','destroy','getFields','findOne','SalesforceField','getSubjects','options','getDescriptions'];(function(_0x3c73e5,_0x198b7b){var _0x223370=function(_0x14657d){while(--_0x14657d){_0x3c73e5['push'](_0x3c73e5['shift']());}};_0x223370(++_0x198b7b);}(_0xbb07,0xf0));var _0x7bb0=function(_0x405531,_0x1c6e9b){_0x405531=_0x405531-0x0;var _0x2784f6=_0xbb07[_0x405531];return _0x2784f6;};'use strict';var emlformat=require(_0x7bb0('0x0'));var rimraf=require(_0x7bb0('0x1'));var zipdir=require(_0x7bb0('0x2'));var jsonpatch=require(_0x7bb0('0x3'));var rp=require(_0x7bb0('0x4'));var moment=require(_0x7bb0('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x7bb0('0x6'));var util=require('util');var path=require(_0x7bb0('0x7'));var sox=require(_0x7bb0('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7bb0('0x9'));var _=require(_0x7bb0('0xa'));var squel=require(_0x7bb0('0xb'));var crypto=require(_0x7bb0('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x7bb0('0xd'));var toCsv=require('to-csv');var querystring=require(_0x7bb0('0xe'));var Papa=require('papaparse');var Redis=require(_0x7bb0('0xf'));var authService=require(_0x7bb0('0x10'));var qs=require(_0x7bb0('0x11'));var as=require(_0x7bb0('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7bb0('0x13'))(_0x7bb0('0x14'));var utils=require(_0x7bb0('0x15'));var config=require(_0x7bb0('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x7bb0('0x17'))['db'];function respondWithStatusCode(_0x17f39a,_0x382314){_0x382314=_0x382314||0xcc;return function(_0x3f8720){if(_0x3f8720){return _0x17f39a[_0x7bb0('0x18')](_0x382314);}return _0x17f39a[_0x7bb0('0x19')](_0x382314)[_0x7bb0('0x1a')]();};}function respondWithResult(_0x3abe4a,_0x5f4c0b){_0x5f4c0b=_0x5f4c0b||0xc8;return function(_0x5b3b7d){if(_0x5b3b7d){return _0x3abe4a['status'](_0x5f4c0b)[_0x7bb0('0x1b')](_0x5b3b7d);}};}function respondWithFilteredResult(_0x271584,_0x56a6d8){return function(_0x150172){if(_0x150172){var _0x3a7d0e=typeof _0x56a6d8[_0x7bb0('0x1c')]===_0x7bb0('0x1d')&&typeof _0x56a6d8[_0x7bb0('0x1e')]===_0x7bb0('0x1d');var _0x400e2d=_0x150172['count'];var _0x1eff21=_0x3a7d0e?0x0:_0x56a6d8[_0x7bb0('0x1c')];var _0xf32c0a=_0x3a7d0e?_0x150172['count']:_0x56a6d8[_0x7bb0('0x1c')]+_0x56a6d8['limit'];var _0x1acee9;if(_0xf32c0a>=_0x400e2d){_0xf32c0a=_0x400e2d;_0x1acee9=0xc8;}else{_0x1acee9=0xce;}_0x271584['status'](_0x1acee9);return _0x271584[_0x7bb0('0x1f')](_0x7bb0('0x20'),_0x1eff21+'-'+_0xf32c0a+'/'+_0x400e2d)['json'](_0x150172);}return null;};}function patchUpdates(_0x4a4fe6){return function(_0x4f554e){try{jsonpatch['apply'](_0x4f554e,_0x4a4fe6,!![]);}catch(_0x2372d7){return BPromise[_0x7bb0('0x21')](_0x2372d7);}return _0x4f554e[_0x7bb0('0x22')]();};}function saveUpdates(_0x3f0304,_0x6c5ec2){return function(_0x5622c4){if(_0x5622c4){return _0x5622c4[_0x7bb0('0x23')](_0x3f0304)[_0x7bb0('0x24')](function(_0x7e5126){return _0x7e5126;});}return null;};}function removeEntity(_0x2993c9,_0x2236b8){return function(_0x5171ba){if(_0x5171ba){return _0x5171ba['destroy']()[_0x7bb0('0x24')](function(){_0x2993c9[_0x7bb0('0x19')](0xcc)[_0x7bb0('0x1a')]();});}};}function handleEntityNotFound(_0x2da65d,_0x2d6644){return function(_0x2d6e62){if(!_0x2d6e62){_0x2da65d[_0x7bb0('0x18')](0x194);}return _0x2d6e62;};}function handleError(_0x5993d1,_0x548f6f){_0x548f6f=_0x548f6f||0x1f4;return function(_0x165b92){logger[_0x7bb0('0x25')](_0x165b92[_0x7bb0('0x26')]);if(_0x165b92['name']){delete _0x165b92[_0x7bb0('0x27')];}_0x5993d1[_0x7bb0('0x19')](_0x548f6f)[_0x7bb0('0x28')](_0x165b92);};}exports['index']=function(_0x1db982,_0x238d25){var _0x4ff888={},_0x1757de={},_0x238b9b={'count':0x0,'rows':[]};var _0x3aab15=_[_0x7bb0('0x29')](db[_0x7bb0('0x2a')][_0x7bb0('0x2b')],function(_0x448deb){return{'name':_0x448deb[_0x7bb0('0x2c')],'type':_0x448deb['type'][_0x7bb0('0x2d')]};});_0x1757de[_0x7bb0('0x2e')]=_[_0x7bb0('0x29')](_0x3aab15,_0x7bb0('0x27'));_0x1757de[_0x7bb0('0x2f')]=_['keys'](_0x1db982[_0x7bb0('0x2f')]);_0x1757de[_0x7bb0('0x30')]=_[_0x7bb0('0x31')](_0x1757de[_0x7bb0('0x2e')],_0x1757de[_0x7bb0('0x2f')]);_0x4ff888['attributes']=_[_0x7bb0('0x31')](_0x1757de['model'],qs['fields'](_0x1db982[_0x7bb0('0x2f')][_0x7bb0('0x32')]));_0x4ff888['attributes']=_0x4ff888[_0x7bb0('0x33')][_0x7bb0('0x34')]?_0x4ff888[_0x7bb0('0x33')]:_0x1757de[_0x7bb0('0x2e')];if(!_0x1db982[_0x7bb0('0x2f')][_0x7bb0('0x35')](_0x7bb0('0x36'))){_0x4ff888[_0x7bb0('0x1e')]=qs['limit'](_0x1db982[_0x7bb0('0x2f')][_0x7bb0('0x1e')]);_0x4ff888[_0x7bb0('0x1c')]=qs[_0x7bb0('0x1c')](_0x1db982['query']['offset']);}_0x4ff888[_0x7bb0('0x37')]=qs[_0x7bb0('0x38')](_0x1db982['query'][_0x7bb0('0x38')]);_0x4ff888['where']=qs[_0x7bb0('0x30')](_[_0x7bb0('0x39')](_0x1db982['query'],_0x1757de[_0x7bb0('0x30')]),_0x3aab15);if(_0x1db982[_0x7bb0('0x2f')][_0x7bb0('0x3a')]){_0x4ff888['where']=_[_0x7bb0('0x3b')](_0x4ff888['where'],{'$or':_[_0x7bb0('0x29')](_0x3aab15,function(_0x23be67){if(_0x23be67[_0x7bb0('0x3c')]!==_0x7bb0('0x3d')){var _0x5c8789={};_0x5c8789[_0x23be67[_0x7bb0('0x27')]]={'$like':'%'+_0x1db982[_0x7bb0('0x2f')][_0x7bb0('0x3a')]+'%'};return _0x5c8789;}})});}_0x4ff888=_[_0x7bb0('0x3b')]({},_0x4ff888,_0x1db982['options']);var _0x51f42f={'where':_0x4ff888[_0x7bb0('0x3e')]};return db[_0x7bb0('0x2a')][_0x7bb0('0x3f')](_0x51f42f)[_0x7bb0('0x24')](function(_0x5f5da9){_0x238b9b[_0x7bb0('0x3f')]=_0x5f5da9;if(_0x1db982[_0x7bb0('0x2f')][_0x7bb0('0x40')]){_0x4ff888['include']=[{'all':!![]}];}return db[_0x7bb0('0x2a')][_0x7bb0('0x41')](_0x4ff888);})[_0x7bb0('0x24')](function(_0x58003a){_0x238b9b['rows']=_0x58003a;return _0x238b9b;})[_0x7bb0('0x24')](respondWithFilteredResult(_0x238d25,_0x4ff888))[_0x7bb0('0x42')](handleError(_0x238d25,null));};exports['show']=function(_0x32853a,_0xadf39){var _0x5b57c7={'raw':![],'where':{'id':_0x32853a[_0x7bb0('0x43')]['id']}},_0x34d487={};_0x34d487[_0x7bb0('0x2e')]=_[_0x7bb0('0x44')](db[_0x7bb0('0x2a')][_0x7bb0('0x2b')]);_0x34d487[_0x7bb0('0x2f')]=_['keys'](_0x32853a[_0x7bb0('0x2f')]);_0x34d487[_0x7bb0('0x30')]=_['intersection'](_0x34d487[_0x7bb0('0x2e')],_0x34d487[_0x7bb0('0x2f')]);_0x5b57c7[_0x7bb0('0x33')]=_['intersection'](_0x34d487[_0x7bb0('0x2e')],qs[_0x7bb0('0x32')](_0x32853a[_0x7bb0('0x2f')]['fields']));_0x5b57c7[_0x7bb0('0x33')]=_0x5b57c7[_0x7bb0('0x33')]['length']?_0x5b57c7['attributes']:_0x34d487[_0x7bb0('0x2e')];if(_0x32853a['query'][_0x7bb0('0x40')]){_0x5b57c7[_0x7bb0('0x45')]=[{'all':!![]}];}_0x5b57c7=_[_0x7bb0('0x3b')]({},_0x5b57c7,_0x32853a['options']);return db[_0x7bb0('0x2a')][_0x7bb0('0x46')](_0x5b57c7)[_0x7bb0('0x24')](handleEntityNotFound(_0xadf39,null))[_0x7bb0('0x24')](respondWithResult(_0xadf39,null))['catch'](handleError(_0xadf39,null));};exports[_0x7bb0('0x47')]=function(_0x3203c9,_0x3bc5d6){return db[_0x7bb0('0x2a')][_0x7bb0('0x47')](_0x3203c9[_0x7bb0('0x48')],{})['then'](respondWithResult(_0x3bc5d6,0xc9))[_0x7bb0('0x42')](handleError(_0x3bc5d6,null));};exports[_0x7bb0('0x23')]=function(_0x27497a,_0x5937b3){if(_0x27497a[_0x7bb0('0x48')]['id']){delete _0x27497a['body']['id'];}return db['SalesforceConfiguration']['find']({'where':{'id':_0x27497a['params']['id']}})['then'](handleEntityNotFound(_0x5937b3,null))[_0x7bb0('0x24')](saveUpdates(_0x27497a['body'],null))['then'](respondWithResult(_0x5937b3,null))[_0x7bb0('0x42')](handleError(_0x5937b3,null));};exports[_0x7bb0('0x49')]=function(_0x49c46c,_0x69dd14){return db[_0x7bb0('0x2a')][_0x7bb0('0x46')]({'where':{'id':_0x49c46c[_0x7bb0('0x43')]['id']}})[_0x7bb0('0x24')](handleEntityNotFound(_0x69dd14,null))[_0x7bb0('0x24')](removeEntity(_0x69dd14,null))[_0x7bb0('0x42')](handleError(_0x69dd14,null));};exports[_0x7bb0('0x4a')]=function(_0x15f389,_0xa5754f,_0xdc44ab){var _0x143637={};var _0x4348a6={};var _0x5a8f69;var _0x49bdca;return db['SalesforceConfiguration'][_0x7bb0('0x4b')]({'where':{'id':_0x15f389[_0x7bb0('0x43')]['id']}})['then'](handleEntityNotFound(_0xa5754f,null))[_0x7bb0('0x24')](function(_0x472d27){if(_0x472d27){_0x5a8f69=_0x472d27;_0x4348a6[_0x7bb0('0x2e')]=_['keys'](db[_0x7bb0('0x4c')]['rawAttributes']);_0x4348a6['query']=_['keys'](_0x15f389[_0x7bb0('0x2f')]);_0x4348a6[_0x7bb0('0x30')]=_['intersection'](_0x4348a6[_0x7bb0('0x2e')],_0x4348a6[_0x7bb0('0x2f')]);_0x143637[_0x7bb0('0x33')]=_[_0x7bb0('0x31')](_0x4348a6[_0x7bb0('0x2e')],qs[_0x7bb0('0x32')](_0x15f389[_0x7bb0('0x2f')][_0x7bb0('0x32')]));_0x143637[_0x7bb0('0x33')]=_0x143637['attributes'][_0x7bb0('0x34')]?_0x143637['attributes']:_0x4348a6[_0x7bb0('0x2e')];_0x143637[_0x7bb0('0x37')]=qs['sort'](_0x15f389['query'][_0x7bb0('0x38')]);_0x143637[_0x7bb0('0x3e')]=qs['filters'](_[_0x7bb0('0x39')](_0x15f389[_0x7bb0('0x2f')],_0x4348a6[_0x7bb0('0x30')]));if(_0x15f389[_0x7bb0('0x2f')]['filter']){_0x143637[_0x7bb0('0x3e')]=_[_0x7bb0('0x3b')](_0x143637[_0x7bb0('0x3e')],{'$or':_['map'](_0x143637[_0x7bb0('0x33')],function(_0x4adc38){var _0x3b054a={};_0x3b054a[_0x4adc38]={'$like':'%'+_0x15f389[_0x7bb0('0x2f')][_0x7bb0('0x3a')]+'%'};return _0x3b054a;})});}_0x143637=_[_0x7bb0('0x3b')]({},_0x143637,_0x15f389['options']);return _0x5a8f69[_0x7bb0('0x4a')](_0x143637);}})[_0x7bb0('0x24')](function(_0x5cfe44){if(_0x5cfe44){_0x49bdca=_0x5cfe44[_0x7bb0('0x34')];if(!_0x15f389[_0x7bb0('0x2f')]['hasOwnProperty'](_0x7bb0('0x36'))){_0x143637[_0x7bb0('0x1e')]=qs[_0x7bb0('0x1e')](_0x15f389[_0x7bb0('0x2f')][_0x7bb0('0x1e')]);_0x143637[_0x7bb0('0x1c')]=qs['offset'](_0x15f389[_0x7bb0('0x2f')][_0x7bb0('0x1c')]);}return _0x5a8f69[_0x7bb0('0x4a')](_0x143637);}})['then'](function(_0x176dbd){if(_0x176dbd){return _0x176dbd?{'count':_0x49bdca,'rows':_0x176dbd}:null;}})[_0x7bb0('0x24')](respondWithResult(_0xa5754f,null))[_0x7bb0('0x42')](handleError(_0xa5754f,null));};exports[_0x7bb0('0x4d')]=function(_0x52e067,_0x163619,_0x380db1){var _0x5eb738={};var _0xb67fee={};var _0x3afac5;var _0x571343;return db[_0x7bb0('0x2a')][_0x7bb0('0x4b')]({'where':{'id':_0x52e067[_0x7bb0('0x43')]['id']}})[_0x7bb0('0x24')](handleEntityNotFound(_0x163619,null))[_0x7bb0('0x24')](function(_0x59845e){if(_0x59845e){_0x3afac5=_0x59845e;_0xb67fee[_0x7bb0('0x2e')]=_[_0x7bb0('0x44')](db[_0x7bb0('0x4c')][_0x7bb0('0x2b')]);_0xb67fee[_0x7bb0('0x2f')]=_[_0x7bb0('0x44')](_0x52e067[_0x7bb0('0x2f')]);_0xb67fee[_0x7bb0('0x30')]=_[_0x7bb0('0x31')](_0xb67fee[_0x7bb0('0x2e')],_0xb67fee[_0x7bb0('0x2f')]);_0x5eb738['attributes']=_[_0x7bb0('0x31')](_0xb67fee[_0x7bb0('0x2e')],qs[_0x7bb0('0x32')](_0x52e067[_0x7bb0('0x2f')]['fields']));_0x5eb738[_0x7bb0('0x33')]=_0x5eb738[_0x7bb0('0x33')][_0x7bb0('0x34')]?_0x5eb738[_0x7bb0('0x33')]:_0xb67fee[_0x7bb0('0x2e')];_0x5eb738[_0x7bb0('0x37')]=qs[_0x7bb0('0x38')](_0x52e067[_0x7bb0('0x2f')]['sort']);_0x5eb738[_0x7bb0('0x3e')]=qs[_0x7bb0('0x30')](_[_0x7bb0('0x39')](_0x52e067[_0x7bb0('0x2f')],_0xb67fee[_0x7bb0('0x30')]));if(_0x52e067[_0x7bb0('0x2f')][_0x7bb0('0x3a')]){_0x5eb738[_0x7bb0('0x3e')]=_[_0x7bb0('0x3b')](_0x5eb738[_0x7bb0('0x3e')],{'$or':_[_0x7bb0('0x29')](_0x5eb738['attributes'],function(_0x342de6){var _0xb0c6a={};_0xb0c6a[_0x342de6]={'$like':'%'+_0x52e067[_0x7bb0('0x2f')][_0x7bb0('0x3a')]+'%'};return _0xb0c6a;})});}_0x5eb738=_['merge']({},_0x5eb738,_0x52e067[_0x7bb0('0x4e')]);return _0x3afac5['getSubjects'](_0x5eb738);}})[_0x7bb0('0x24')](function(_0x2ba0a3){if(_0x2ba0a3){_0x571343=_0x2ba0a3[_0x7bb0('0x34')];if(!_0x52e067['query'][_0x7bb0('0x35')](_0x7bb0('0x36'))){_0x5eb738[_0x7bb0('0x1e')]=qs[_0x7bb0('0x1e')](_0x52e067['query'][_0x7bb0('0x1e')]);_0x5eb738[_0x7bb0('0x1c')]=qs[_0x7bb0('0x1c')](_0x52e067['query'][_0x7bb0('0x1c')]);}return _0x3afac5[_0x7bb0('0x4d')](_0x5eb738);}})[_0x7bb0('0x24')](function(_0x7dec83){if(_0x7dec83){return _0x7dec83?{'count':_0x571343,'rows':_0x7dec83}:null;}})[_0x7bb0('0x24')](respondWithResult(_0x163619,null))[_0x7bb0('0x42')](handleError(_0x163619,null));};exports['getDescriptions']=function(_0x30fa7b,_0x117592,_0x465c88){var _0x28afad={};var _0x3f4c11={};var _0x43832f;var _0x2b2e08;return db[_0x7bb0('0x2a')][_0x7bb0('0x4b')]({'where':{'id':_0x30fa7b[_0x7bb0('0x43')]['id']}})[_0x7bb0('0x24')](handleEntityNotFound(_0x117592,null))[_0x7bb0('0x24')](function(_0x48ee2c){if(_0x48ee2c){_0x43832f=_0x48ee2c;_0x3f4c11['model']=_[_0x7bb0('0x44')](db[_0x7bb0('0x4c')][_0x7bb0('0x2b')]);_0x3f4c11[_0x7bb0('0x2f')]=_[_0x7bb0('0x44')](_0x30fa7b['query']);_0x3f4c11[_0x7bb0('0x30')]=_[_0x7bb0('0x31')](_0x3f4c11[_0x7bb0('0x2e')],_0x3f4c11[_0x7bb0('0x2f')]);_0x28afad[_0x7bb0('0x33')]=_[_0x7bb0('0x31')](_0x3f4c11[_0x7bb0('0x2e')],qs['fields'](_0x30fa7b[_0x7bb0('0x2f')][_0x7bb0('0x32')]));_0x28afad[_0x7bb0('0x33')]=_0x28afad[_0x7bb0('0x33')]['length']?_0x28afad[_0x7bb0('0x33')]:_0x3f4c11['model'];_0x28afad[_0x7bb0('0x37')]=qs[_0x7bb0('0x38')](_0x30fa7b[_0x7bb0('0x2f')][_0x7bb0('0x38')]);_0x28afad[_0x7bb0('0x3e')]=qs[_0x7bb0('0x30')](_[_0x7bb0('0x39')](_0x30fa7b[_0x7bb0('0x2f')],_0x3f4c11[_0x7bb0('0x30')]));if(_0x30fa7b[_0x7bb0('0x2f')][_0x7bb0('0x3a')]){_0x28afad[_0x7bb0('0x3e')]=_[_0x7bb0('0x3b')](_0x28afad[_0x7bb0('0x3e')],{'$or':_[_0x7bb0('0x29')](_0x28afad[_0x7bb0('0x33')],function(_0x45151d){var _0x5ed028={};_0x5ed028[_0x45151d]={'$like':'%'+_0x30fa7b['query'][_0x7bb0('0x3a')]+'%'};return _0x5ed028;})});}_0x28afad=_['merge']({},_0x28afad,_0x30fa7b['options']);return _0x43832f[_0x7bb0('0x4f')](_0x28afad);}})['then'](function(_0x50a8ab){if(_0x50a8ab){_0x2b2e08=_0x50a8ab[_0x7bb0('0x34')];if(!_0x30fa7b[_0x7bb0('0x2f')][_0x7bb0('0x35')](_0x7bb0('0x36'))){_0x28afad[_0x7bb0('0x1e')]=qs[_0x7bb0('0x1e')](_0x30fa7b[_0x7bb0('0x2f')][_0x7bb0('0x1e')]);_0x28afad[_0x7bb0('0x1c')]=qs['offset'](_0x30fa7b[_0x7bb0('0x2f')]['offset']);}return _0x43832f['getDescriptions'](_0x28afad);}})['then'](function(_0x149a5a){if(_0x149a5a){return _0x149a5a?{'count':_0x2b2e08,'rows':_0x149a5a}:null;}})[_0x7bb0('0x24')](respondWithResult(_0x117592,null))[_0x7bb0('0x42')](handleError(_0x117592,null));};