Built motion from commit 013e4bb4.|2.6.18
[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 _0x9e8e=['ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','json','offset','undefined','limit','count','status','Content-Range','apply','reject','update','then','destroy','error','stack','name','index','map','rawAttributes','key','query','keys','intersection','attributes','model','fields','hasOwnProperty','nolimit','order','sort','filters','pick','where','merge','type','VIRTUAL','filter','SalesforceConfiguration','findAll','catch','show','params','length','includeAll','include','options','find','create','body','getFields','findOne','SalesforceField','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','util','path','sox','to-csv'];(function(_0x473ad1,_0x5b0b98){var _0xc22592=function(_0x53b22c){while(--_0x53b22c){_0x473ad1['push'](_0x473ad1['shift']());}};_0xc22592(++_0x5b0b98);}(_0x9e8e,0x1cb));var _0xe9e8=function(_0x102f0a,_0x13474d){_0x102f0a=_0x102f0a-0x0;var _0x35e503=_0x9e8e[_0x102f0a];return _0x35e503;};'use strict';var emlformat=require(_0xe9e8('0x0'));var rimraf=require(_0xe9e8('0x1'));var zipdir=require(_0xe9e8('0x2'));var jsonpatch=require(_0xe9e8('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xe9e8('0x4'));var Mustache=require('mustache');var util=require(_0xe9e8('0x5'));var path=require(_0xe9e8('0x6'));var sox=require(_0xe9e8('0x7'));var csv=require(_0xe9e8('0x8'));var ejs=require(_0xe9e8('0x9'));var fs=require('fs');var fs_extra=require(_0xe9e8('0xa'));var _=require(_0xe9e8('0xb'));var squel=require('squel');var crypto=require(_0xe9e8('0xc'));var jsforce=require(_0xe9e8('0xd'));var deskjs=require(_0xe9e8('0xe'));var toCsv=require(_0xe9e8('0x8'));var querystring=require(_0xe9e8('0xf'));var Papa=require(_0xe9e8('0x10'));var Redis=require(_0xe9e8('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xe9e8('0x12'));var hardwareService=require(_0xe9e8('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0xe9e8('0x14'));var config=require(_0xe9e8('0x15'));var licenseUtil=require(_0xe9e8('0x16'));var db=require(_0xe9e8('0x17'))['db'];function respondWithStatusCode(_0x21ef48,_0xbc9b9d){_0xbc9b9d=_0xbc9b9d||0xcc;return function(_0x4f8f7a){if(_0x4f8f7a){return _0x21ef48[_0xe9e8('0x18')](_0xbc9b9d);}return _0x21ef48['status'](_0xbc9b9d)['end']();};}function respondWithResult(_0x115dc1,_0x4bbaa1){_0x4bbaa1=_0x4bbaa1||0xc8;return function(_0x38f587){if(_0x38f587){return _0x115dc1['status'](_0x4bbaa1)[_0xe9e8('0x19')](_0x38f587);}};}function respondWithFilteredResult(_0x5945c5,_0x2c5c4f){return function(_0xc0d8f2){if(_0xc0d8f2){var _0x2e8df9=typeof _0x2c5c4f[_0xe9e8('0x1a')]===_0xe9e8('0x1b')&&typeof _0x2c5c4f[_0xe9e8('0x1c')]===_0xe9e8('0x1b');var _0x124c9b=_0xc0d8f2[_0xe9e8('0x1d')];var _0x425bb7=_0x2e8df9?0x0:_0x2c5c4f[_0xe9e8('0x1a')];var _0x2ae3e9=_0x2e8df9?_0xc0d8f2['count']:_0x2c5c4f['offset']+_0x2c5c4f['limit'];var _0x25b019;if(_0x2ae3e9>=_0x124c9b){_0x2ae3e9=_0x124c9b;_0x25b019=0xc8;}else{_0x25b019=0xce;}_0x5945c5[_0xe9e8('0x1e')](_0x25b019);return _0x5945c5['set'](_0xe9e8('0x1f'),_0x425bb7+'-'+_0x2ae3e9+'/'+_0x124c9b)[_0xe9e8('0x19')](_0xc0d8f2);}return null;};}function patchUpdates(_0x372820){return function(_0x58d9b7){try{jsonpatch[_0xe9e8('0x20')](_0x58d9b7,_0x372820,!![]);}catch(_0xc2b1c4){return BPromise[_0xe9e8('0x21')](_0xc2b1c4);}return _0x58d9b7['save']();};}function saveUpdates(_0x11a347,_0x24a8c1){return function(_0x5ece1e){if(_0x5ece1e){return _0x5ece1e[_0xe9e8('0x22')](_0x11a347)[_0xe9e8('0x23')](function(_0x551b70){return _0x551b70;});}return null;};}function removeEntity(_0x5ba3af,_0x83b1b){return function(_0x5a3664){if(_0x5a3664){return _0x5a3664[_0xe9e8('0x24')]()[_0xe9e8('0x23')](function(){_0x5ba3af[_0xe9e8('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x22a540,_0xc49010){return function(_0x34b4d9){if(!_0x34b4d9){_0x22a540['sendStatus'](0x194);}return _0x34b4d9;};}function handleError(_0x11c2d0,_0x3c7441){_0x3c7441=_0x3c7441||0x1f4;return function(_0x19334e){logger[_0xe9e8('0x25')](_0x19334e[_0xe9e8('0x26')]);if(_0x19334e[_0xe9e8('0x27')]){delete _0x19334e[_0xe9e8('0x27')];}_0x11c2d0[_0xe9e8('0x1e')](_0x3c7441)['send'](_0x19334e);};}exports[_0xe9e8('0x28')]=function(_0x3d3674,_0x26ebad){var _0x389bf6={},_0x35286a={},_0x3e0501={'count':0x0,'rows':[]};var _0x19d232=_[_0xe9e8('0x29')](db['SalesforceConfiguration'][_0xe9e8('0x2a')],function(_0x23d08b){return{'name':_0x23d08b['fieldName'],'type':_0x23d08b['type'][_0xe9e8('0x2b')]};});_0x35286a['model']=_[_0xe9e8('0x29')](_0x19d232,_0xe9e8('0x27'));_0x35286a[_0xe9e8('0x2c')]=_[_0xe9e8('0x2d')](_0x3d3674[_0xe9e8('0x2c')]);_0x35286a['filters']=_[_0xe9e8('0x2e')](_0x35286a['model'],_0x35286a[_0xe9e8('0x2c')]);_0x389bf6[_0xe9e8('0x2f')]=_[_0xe9e8('0x2e')](_0x35286a[_0xe9e8('0x30')],qs[_0xe9e8('0x31')](_0x3d3674[_0xe9e8('0x2c')][_0xe9e8('0x31')]));_0x389bf6[_0xe9e8('0x2f')]=_0x389bf6[_0xe9e8('0x2f')]['length']?_0x389bf6[_0xe9e8('0x2f')]:_0x35286a[_0xe9e8('0x30')];if(!_0x3d3674[_0xe9e8('0x2c')][_0xe9e8('0x32')](_0xe9e8('0x33'))){_0x389bf6[_0xe9e8('0x1c')]=qs[_0xe9e8('0x1c')](_0x3d3674['query'][_0xe9e8('0x1c')]);_0x389bf6[_0xe9e8('0x1a')]=qs[_0xe9e8('0x1a')](_0x3d3674[_0xe9e8('0x2c')][_0xe9e8('0x1a')]);}_0x389bf6[_0xe9e8('0x34')]=qs[_0xe9e8('0x35')](_0x3d3674[_0xe9e8('0x2c')][_0xe9e8('0x35')]);_0x389bf6['where']=qs[_0xe9e8('0x36')](_[_0xe9e8('0x37')](_0x3d3674[_0xe9e8('0x2c')],_0x35286a[_0xe9e8('0x36')]),_0x19d232);if(_0x3d3674['query']['filter']){_0x389bf6[_0xe9e8('0x38')]=_[_0xe9e8('0x39')](_0x389bf6[_0xe9e8('0x38')],{'$or':_[_0xe9e8('0x29')](_0x19d232,function(_0x1eaac9){if(_0x1eaac9[_0xe9e8('0x3a')]!==_0xe9e8('0x3b')){var _0x31d776={};_0x31d776[_0x1eaac9[_0xe9e8('0x27')]]={'$like':'%'+_0x3d3674[_0xe9e8('0x2c')][_0xe9e8('0x3c')]+'%'};return _0x31d776;}})});}_0x389bf6=_[_0xe9e8('0x39')]({},_0x389bf6,_0x3d3674['options']);var _0x2eb8d7={'where':_0x389bf6[_0xe9e8('0x38')]};return db['SalesforceConfiguration']['count'](_0x2eb8d7)[_0xe9e8('0x23')](function(_0x3617fe){_0x3e0501[_0xe9e8('0x1d')]=_0x3617fe;if(_0x3d3674['query']['includeAll']){_0x389bf6['include']=[{'all':!![]}];}return db[_0xe9e8('0x3d')][_0xe9e8('0x3e')](_0x389bf6);})[_0xe9e8('0x23')](function(_0x5400fa){_0x3e0501['rows']=_0x5400fa;return _0x3e0501;})[_0xe9e8('0x23')](respondWithFilteredResult(_0x26ebad,_0x389bf6))[_0xe9e8('0x3f')](handleError(_0x26ebad,null));};exports[_0xe9e8('0x40')]=function(_0x2ff9b1,_0x43d069){var _0x5ea8db={'raw':![],'where':{'id':_0x2ff9b1[_0xe9e8('0x41')]['id']}},_0x5c1eb1={};_0x5c1eb1[_0xe9e8('0x30')]=_[_0xe9e8('0x2d')](db[_0xe9e8('0x3d')][_0xe9e8('0x2a')]);_0x5c1eb1[_0xe9e8('0x2c')]=_[_0xe9e8('0x2d')](_0x2ff9b1['query']);_0x5c1eb1[_0xe9e8('0x36')]=_[_0xe9e8('0x2e')](_0x5c1eb1['model'],_0x5c1eb1[_0xe9e8('0x2c')]);_0x5ea8db[_0xe9e8('0x2f')]=_[_0xe9e8('0x2e')](_0x5c1eb1['model'],qs[_0xe9e8('0x31')](_0x2ff9b1[_0xe9e8('0x2c')][_0xe9e8('0x31')]));_0x5ea8db[_0xe9e8('0x2f')]=_0x5ea8db['attributes'][_0xe9e8('0x42')]?_0x5ea8db[_0xe9e8('0x2f')]:_0x5c1eb1['model'];if(_0x2ff9b1[_0xe9e8('0x2c')][_0xe9e8('0x43')]){_0x5ea8db[_0xe9e8('0x44')]=[{'all':!![]}];}_0x5ea8db=_[_0xe9e8('0x39')]({},_0x5ea8db,_0x2ff9b1[_0xe9e8('0x45')]);return db[_0xe9e8('0x3d')][_0xe9e8('0x46')](_0x5ea8db)[_0xe9e8('0x23')](handleEntityNotFound(_0x43d069,null))['then'](respondWithResult(_0x43d069,null))[_0xe9e8('0x3f')](handleError(_0x43d069,null));};exports[_0xe9e8('0x47')]=function(_0x3e94f1,_0x4ca8b7){return db[_0xe9e8('0x3d')][_0xe9e8('0x47')](_0x3e94f1[_0xe9e8('0x48')],{})[_0xe9e8('0x23')](respondWithResult(_0x4ca8b7,0xc9))[_0xe9e8('0x3f')](handleError(_0x4ca8b7,null));};exports['update']=function(_0x1f8165,_0x3b2b13){if(_0x1f8165[_0xe9e8('0x48')]['id']){delete _0x1f8165['body']['id'];}return db[_0xe9e8('0x3d')][_0xe9e8('0x46')]({'where':{'id':_0x1f8165[_0xe9e8('0x41')]['id']}})[_0xe9e8('0x23')](handleEntityNotFound(_0x3b2b13,null))[_0xe9e8('0x23')](saveUpdates(_0x1f8165['body'],null))[_0xe9e8('0x23')](respondWithResult(_0x3b2b13,null))[_0xe9e8('0x3f')](handleError(_0x3b2b13,null));};exports[_0xe9e8('0x24')]=function(_0x5103f6,_0x423ed5){return db[_0xe9e8('0x3d')][_0xe9e8('0x46')]({'where':{'id':_0x5103f6[_0xe9e8('0x41')]['id']}})['then'](handleEntityNotFound(_0x423ed5,null))[_0xe9e8('0x23')](removeEntity(_0x423ed5,null))[_0xe9e8('0x3f')](handleError(_0x423ed5,null));};exports[_0xe9e8('0x49')]=function(_0x4cd4a1,_0x131c4b,_0x230640){var _0x5225dd={};var _0xd83808={};var _0x24d142;var _0x58d0a9;return db[_0xe9e8('0x3d')][_0xe9e8('0x4a')]({'where':{'id':_0x4cd4a1[_0xe9e8('0x41')]['id']}})['then'](handleEntityNotFound(_0x131c4b,null))[_0xe9e8('0x23')](function(_0xa6ebb0){if(_0xa6ebb0){_0x24d142=_0xa6ebb0;_0xd83808[_0xe9e8('0x30')]=_[_0xe9e8('0x2d')](db[_0xe9e8('0x4b')]['rawAttributes']);_0xd83808[_0xe9e8('0x2c')]=_[_0xe9e8('0x2d')](_0x4cd4a1[_0xe9e8('0x2c')]);_0xd83808['filters']=_[_0xe9e8('0x2e')](_0xd83808[_0xe9e8('0x30')],_0xd83808[_0xe9e8('0x2c')]);_0x5225dd[_0xe9e8('0x2f')]=_['intersection'](_0xd83808[_0xe9e8('0x30')],qs['fields'](_0x4cd4a1[_0xe9e8('0x2c')][_0xe9e8('0x31')]));_0x5225dd['attributes']=_0x5225dd[_0xe9e8('0x2f')]['length']?_0x5225dd[_0xe9e8('0x2f')]:_0xd83808['model'];_0x5225dd[_0xe9e8('0x34')]=qs['sort'](_0x4cd4a1['query'][_0xe9e8('0x35')]);_0x5225dd['where']=qs['filters'](_['pick'](_0x4cd4a1[_0xe9e8('0x2c')],_0xd83808[_0xe9e8('0x36')]));if(_0x4cd4a1[_0xe9e8('0x2c')][_0xe9e8('0x3c')]){_0x5225dd[_0xe9e8('0x38')]=_[_0xe9e8('0x39')](_0x5225dd[_0xe9e8('0x38')],{'$or':_[_0xe9e8('0x29')](_0x5225dd['attributes'],function(_0x2bf23f){var _0x8a59ca={};_0x8a59ca[_0x2bf23f]={'$like':'%'+_0x4cd4a1['query']['filter']+'%'};return _0x8a59ca;})});}_0x5225dd=_['merge']({},_0x5225dd,_0x4cd4a1[_0xe9e8('0x45')]);return _0x24d142[_0xe9e8('0x49')](_0x5225dd);}})[_0xe9e8('0x23')](function(_0x29c3b7){if(_0x29c3b7){_0x58d0a9=_0x29c3b7[_0xe9e8('0x42')];if(!_0x4cd4a1[_0xe9e8('0x2c')][_0xe9e8('0x32')](_0xe9e8('0x33'))){_0x5225dd[_0xe9e8('0x1c')]=qs[_0xe9e8('0x1c')](_0x4cd4a1[_0xe9e8('0x2c')][_0xe9e8('0x1c')]);_0x5225dd['offset']=qs[_0xe9e8('0x1a')](_0x4cd4a1[_0xe9e8('0x2c')][_0xe9e8('0x1a')]);}return _0x24d142[_0xe9e8('0x49')](_0x5225dd);}})[_0xe9e8('0x23')](function(_0x5d6dbf){if(_0x5d6dbf){return _0x5d6dbf?{'count':_0x58d0a9,'rows':_0x5d6dbf}:null;}})['then'](respondWithResult(_0x131c4b,null))[_0xe9e8('0x3f')](handleError(_0x131c4b,null));};exports[_0xe9e8('0x4c')]=function(_0x406a06,_0x33d791,_0x3dbf34){var _0x46ae35={};var _0xa8ae12={};var _0x243676;var _0x2f8853;return db[_0xe9e8('0x3d')][_0xe9e8('0x4a')]({'where':{'id':_0x406a06[_0xe9e8('0x41')]['id']}})[_0xe9e8('0x23')](handleEntityNotFound(_0x33d791,null))[_0xe9e8('0x23')](function(_0x4152c4){if(_0x4152c4){_0x243676=_0x4152c4;_0xa8ae12[_0xe9e8('0x30')]=_[_0xe9e8('0x2d')](db[_0xe9e8('0x4b')][_0xe9e8('0x2a')]);_0xa8ae12[_0xe9e8('0x2c')]=_['keys'](_0x406a06[_0xe9e8('0x2c')]);_0xa8ae12['filters']=_[_0xe9e8('0x2e')](_0xa8ae12[_0xe9e8('0x30')],_0xa8ae12['query']);_0x46ae35[_0xe9e8('0x2f')]=_[_0xe9e8('0x2e')](_0xa8ae12['model'],qs[_0xe9e8('0x31')](_0x406a06['query']['fields']));_0x46ae35[_0xe9e8('0x2f')]=_0x46ae35[_0xe9e8('0x2f')][_0xe9e8('0x42')]?_0x46ae35['attributes']:_0xa8ae12['model'];_0x46ae35[_0xe9e8('0x34')]=qs['sort'](_0x406a06['query'][_0xe9e8('0x35')]);_0x46ae35[_0xe9e8('0x38')]=qs[_0xe9e8('0x36')](_[_0xe9e8('0x37')](_0x406a06[_0xe9e8('0x2c')],_0xa8ae12[_0xe9e8('0x36')]));if(_0x406a06[_0xe9e8('0x2c')]['filter']){_0x46ae35['where']=_['merge'](_0x46ae35['where'],{'$or':_['map'](_0x46ae35[_0xe9e8('0x2f')],function(_0x3ebfa7){var _0x5ed814={};_0x5ed814[_0x3ebfa7]={'$like':'%'+_0x406a06[_0xe9e8('0x2c')][_0xe9e8('0x3c')]+'%'};return _0x5ed814;})});}_0x46ae35=_['merge']({},_0x46ae35,_0x406a06[_0xe9e8('0x45')]);return _0x243676[_0xe9e8('0x4c')](_0x46ae35);}})['then'](function(_0x48c3ca){if(_0x48c3ca){_0x2f8853=_0x48c3ca[_0xe9e8('0x42')];if(!_0x406a06['query']['hasOwnProperty']('nolimit')){_0x46ae35[_0xe9e8('0x1c')]=qs['limit'](_0x406a06['query']['limit']);_0x46ae35['offset']=qs[_0xe9e8('0x1a')](_0x406a06[_0xe9e8('0x2c')]['offset']);}return _0x243676[_0xe9e8('0x4c')](_0x46ae35);}})['then'](function(_0x201d4a){if(_0x201d4a){return _0x201d4a?{'count':_0x2f8853,'rows':_0x201d4a}:null;}})['then'](respondWithResult(_0x33d791,null))['catch'](handleError(_0x33d791,null));};exports[_0xe9e8('0x4d')]=function(_0x57e85d,_0x149bad,_0xee3576){var _0x1e3351={};var _0x1d2e75={};var _0x4dbaff;var _0x49ab0b;return db['SalesforceConfiguration'][_0xe9e8('0x4a')]({'where':{'id':_0x57e85d[_0xe9e8('0x41')]['id']}})[_0xe9e8('0x23')](handleEntityNotFound(_0x149bad,null))[_0xe9e8('0x23')](function(_0x1ca38b){if(_0x1ca38b){_0x4dbaff=_0x1ca38b;_0x1d2e75['model']=_['keys'](db[_0xe9e8('0x4b')][_0xe9e8('0x2a')]);_0x1d2e75[_0xe9e8('0x2c')]=_[_0xe9e8('0x2d')](_0x57e85d['query']);_0x1d2e75['filters']=_[_0xe9e8('0x2e')](_0x1d2e75[_0xe9e8('0x30')],_0x1d2e75[_0xe9e8('0x2c')]);_0x1e3351['attributes']=_['intersection'](_0x1d2e75[_0xe9e8('0x30')],qs[_0xe9e8('0x31')](_0x57e85d['query']['fields']));_0x1e3351[_0xe9e8('0x2f')]=_0x1e3351['attributes'][_0xe9e8('0x42')]?_0x1e3351[_0xe9e8('0x2f')]:_0x1d2e75['model'];_0x1e3351['order']=qs[_0xe9e8('0x35')](_0x57e85d['query'][_0xe9e8('0x35')]);_0x1e3351[_0xe9e8('0x38')]=qs[_0xe9e8('0x36')](_[_0xe9e8('0x37')](_0x57e85d[_0xe9e8('0x2c')],_0x1d2e75[_0xe9e8('0x36')]));if(_0x57e85d[_0xe9e8('0x2c')][_0xe9e8('0x3c')]){_0x1e3351[_0xe9e8('0x38')]=_[_0xe9e8('0x39')](_0x1e3351[_0xe9e8('0x38')],{'$or':_[_0xe9e8('0x29')](_0x1e3351[_0xe9e8('0x2f')],function(_0xc03aef){var _0x36b994={};_0x36b994[_0xc03aef]={'$like':'%'+_0x57e85d[_0xe9e8('0x2c')][_0xe9e8('0x3c')]+'%'};return _0x36b994;})});}_0x1e3351=_['merge']({},_0x1e3351,_0x57e85d[_0xe9e8('0x45')]);return _0x4dbaff[_0xe9e8('0x4d')](_0x1e3351);}})[_0xe9e8('0x23')](function(_0x53c132){if(_0x53c132){_0x49ab0b=_0x53c132['length'];if(!_0x57e85d[_0xe9e8('0x2c')][_0xe9e8('0x32')](_0xe9e8('0x33'))){_0x1e3351[_0xe9e8('0x1c')]=qs['limit'](_0x57e85d[_0xe9e8('0x2c')]['limit']);_0x1e3351[_0xe9e8('0x1a')]=qs[_0xe9e8('0x1a')](_0x57e85d[_0xe9e8('0x2c')][_0xe9e8('0x1a')]);}return _0x4dbaff[_0xe9e8('0x4d')](_0x1e3351);}})[_0xe9e8('0x23')](function(_0x45f04f){if(_0x45f04f){return _0x45f04f?{'count':_0x49ab0b,'rows':_0x45f04f}:null;}})[_0xe9e8('0x23')](respondWithResult(_0x149bad,null))[_0xe9e8('0x3f')](handleError(_0x149bad,null));};