186e23e71d618249df01e488ff7801aa470705fd
[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 _0x13c4=['fast-json-patch','request-promise','moment','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','limit','undefined','count','offset','set','Content-Range','apply','reject','update','then','destroy','end','error','stack','name','index','map','SalesforceConfiguration','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','where','VIRTUAL','merge','includeAll','include','rows','catch','show','params','intersection','options','find','create','body','getFields','findOne','SalesforceField','order','getSubjects','getDescriptions','eml-format','rimraf','zip-dir'];(function(_0x3c4737,_0x2329ec){var _0x2bb926=function(_0x3b9605){while(--_0x3b9605){_0x3c4737['push'](_0x3c4737['shift']());}};_0x2bb926(++_0x2329ec);}(_0x13c4,0xf9));var _0x413c=function(_0x37eddf,_0x2d3277){_0x37eddf=_0x37eddf-0x0;var _0x376594=_0x13c4[_0x37eddf];return _0x376594;};'use strict';var emlformat=require(_0x413c('0x0'));var rimraf=require(_0x413c('0x1'));var zipdir=require(_0x413c('0x2'));var jsonpatch=require(_0x413c('0x3'));var rp=require(_0x413c('0x4'));var moment=require(_0x413c('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x413c('0x6'));var sox=require(_0x413c('0x7'));var csv=require('to-csv');var ejs=require(_0x413c('0x8'));var fs=require('fs');var fs_extra=require(_0x413c('0x9'));var _=require(_0x413c('0xa'));var squel=require(_0x413c('0xb'));var crypto=require(_0x413c('0xc'));var jsforce=require(_0x413c('0xd'));var deskjs=require(_0x413c('0xe'));var toCsv=require(_0x413c('0xf'));var querystring=require(_0x413c('0x10'));var Papa=require(_0x413c('0x11'));var Redis=require('ioredis');var authService=require(_0x413c('0x12'));var qs=require(_0x413c('0x13'));var as=require(_0x413c('0x14'));var hardwareService=require(_0x413c('0x15'));var logger=require(_0x413c('0x16'))(_0x413c('0x17'));var utils=require(_0x413c('0x18'));var config=require(_0x413c('0x19'));var licenseUtil=require(_0x413c('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x9bd289,_0x16f78f){_0x16f78f=_0x16f78f||0xcc;return function(_0x84e77c){if(_0x84e77c){return _0x9bd289[_0x413c('0x1b')](_0x16f78f);}return _0x9bd289[_0x413c('0x1c')](_0x16f78f)['end']();};}function respondWithResult(_0x46b7a8,_0x2259a5){_0x2259a5=_0x2259a5||0xc8;return function(_0x23ec89){if(_0x23ec89){return _0x46b7a8['status'](_0x2259a5)[_0x413c('0x1d')](_0x23ec89);}};}function respondWithFilteredResult(_0xff0f28,_0x3c8ffb){return function(_0x1b6e3b){if(_0x1b6e3b){var _0x2a45be=typeof _0x3c8ffb['offset']==='undefined'&&typeof _0x3c8ffb[_0x413c('0x1e')]===_0x413c('0x1f');var _0x58e368=_0x1b6e3b[_0x413c('0x20')];var _0x3df3f0=_0x2a45be?0x0:_0x3c8ffb[_0x413c('0x21')];var _0x56954b=_0x2a45be?_0x1b6e3b['count']:_0x3c8ffb[_0x413c('0x21')]+_0x3c8ffb['limit'];var _0x4b2aa9;if(_0x56954b>=_0x58e368){_0x56954b=_0x58e368;_0x4b2aa9=0xc8;}else{_0x4b2aa9=0xce;}_0xff0f28[_0x413c('0x1c')](_0x4b2aa9);return _0xff0f28[_0x413c('0x22')](_0x413c('0x23'),_0x3df3f0+'-'+_0x56954b+'/'+_0x58e368)['json'](_0x1b6e3b);}return null;};}function patchUpdates(_0x5f38cb){return function(_0xff7efb){try{jsonpatch[_0x413c('0x24')](_0xff7efb,_0x5f38cb,!![]);}catch(_0x42f2e){return BPromise[_0x413c('0x25')](_0x42f2e);}return _0xff7efb['save']();};}function saveUpdates(_0x28fd8c,_0x100e92){return function(_0x5b2a13){if(_0x5b2a13){return _0x5b2a13[_0x413c('0x26')](_0x28fd8c)[_0x413c('0x27')](function(_0x559e59){return _0x559e59;});}return null;};}function removeEntity(_0xe177e0,_0x2930f9){return function(_0x56bb67){if(_0x56bb67){return _0x56bb67[_0x413c('0x28')]()['then'](function(){_0xe177e0[_0x413c('0x1c')](0xcc)[_0x413c('0x29')]();});}};}function handleEntityNotFound(_0x3078b0,_0x2a2097){return function(_0x356e71){if(!_0x356e71){_0x3078b0[_0x413c('0x1b')](0x194);}return _0x356e71;};}function handleError(_0x37bcbd,_0x2ae36d){_0x2ae36d=_0x2ae36d||0x1f4;return function(_0x4a8d05){logger[_0x413c('0x2a')](_0x4a8d05[_0x413c('0x2b')]);if(_0x4a8d05['name']){delete _0x4a8d05[_0x413c('0x2c')];}_0x37bcbd[_0x413c('0x1c')](_0x2ae36d)['send'](_0x4a8d05);};}exports[_0x413c('0x2d')]=function(_0x3d3922,_0x54df05){var _0x38e37c={},_0x209140={},_0x48a479={'count':0x0,'rows':[]};var _0x5f353f=_[_0x413c('0x2e')](db[_0x413c('0x2f')][_0x413c('0x30')],function(_0x4cdd79){return{'name':_0x4cdd79[_0x413c('0x31')],'type':_0x4cdd79[_0x413c('0x32')][_0x413c('0x33')]};});_0x209140[_0x413c('0x34')]=_['map'](_0x5f353f,'name');_0x209140[_0x413c('0x35')]=_[_0x413c('0x36')](_0x3d3922[_0x413c('0x35')]);_0x209140[_0x413c('0x37')]=_['intersection'](_0x209140[_0x413c('0x34')],_0x209140[_0x413c('0x35')]);_0x38e37c[_0x413c('0x38')]=_['intersection'](_0x209140['model'],qs[_0x413c('0x39')](_0x3d3922[_0x413c('0x35')]['fields']));_0x38e37c[_0x413c('0x38')]=_0x38e37c['attributes'][_0x413c('0x3a')]?_0x38e37c[_0x413c('0x38')]:_0x209140[_0x413c('0x34')];if(!_0x3d3922[_0x413c('0x35')][_0x413c('0x3b')](_0x413c('0x3c'))){_0x38e37c['limit']=qs[_0x413c('0x1e')](_0x3d3922[_0x413c('0x35')][_0x413c('0x1e')]);_0x38e37c[_0x413c('0x21')]=qs[_0x413c('0x21')](_0x3d3922['query']['offset']);}_0x38e37c['order']=qs['sort'](_0x3d3922[_0x413c('0x35')][_0x413c('0x3d')]);_0x38e37c['where']=qs['filters'](_[_0x413c('0x3e')](_0x3d3922[_0x413c('0x35')],_0x209140[_0x413c('0x37')]),_0x5f353f);if(_0x3d3922[_0x413c('0x35')][_0x413c('0x3f')]){_0x38e37c[_0x413c('0x40')]=_['merge'](_0x38e37c[_0x413c('0x40')],{'$or':_['map'](_0x5f353f,function(_0x446e49){if(_0x446e49[_0x413c('0x32')]!==_0x413c('0x41')){var _0x2f1e={};_0x2f1e[_0x446e49[_0x413c('0x2c')]]={'$like':'%'+_0x3d3922[_0x413c('0x35')][_0x413c('0x3f')]+'%'};return _0x2f1e;}})});}_0x38e37c=_[_0x413c('0x42')]({},_0x38e37c,_0x3d3922['options']);var _0x5265c3={'where':_0x38e37c[_0x413c('0x40')]};return db[_0x413c('0x2f')]['count'](_0x5265c3)[_0x413c('0x27')](function(_0x43fa3d){_0x48a479[_0x413c('0x20')]=_0x43fa3d;if(_0x3d3922[_0x413c('0x35')][_0x413c('0x43')]){_0x38e37c[_0x413c('0x44')]=[{'all':!![]}];}return db[_0x413c('0x2f')]['findAll'](_0x38e37c);})['then'](function(_0xb7831a){_0x48a479[_0x413c('0x45')]=_0xb7831a;return _0x48a479;})[_0x413c('0x27')](respondWithFilteredResult(_0x54df05,_0x38e37c))[_0x413c('0x46')](handleError(_0x54df05,null));};exports[_0x413c('0x47')]=function(_0x7ebf2,_0x30a69c){var _0xdc0a8c={'raw':![],'where':{'id':_0x7ebf2[_0x413c('0x48')]['id']}},_0x14a4e8={};_0x14a4e8[_0x413c('0x34')]=_[_0x413c('0x36')](db[_0x413c('0x2f')][_0x413c('0x30')]);_0x14a4e8[_0x413c('0x35')]=_[_0x413c('0x36')](_0x7ebf2['query']);_0x14a4e8['filters']=_[_0x413c('0x49')](_0x14a4e8['model'],_0x14a4e8[_0x413c('0x35')]);_0xdc0a8c['attributes']=_[_0x413c('0x49')](_0x14a4e8['model'],qs[_0x413c('0x39')](_0x7ebf2[_0x413c('0x35')][_0x413c('0x39')]));_0xdc0a8c['attributes']=_0xdc0a8c[_0x413c('0x38')]['length']?_0xdc0a8c['attributes']:_0x14a4e8[_0x413c('0x34')];if(_0x7ebf2[_0x413c('0x35')][_0x413c('0x43')]){_0xdc0a8c[_0x413c('0x44')]=[{'all':!![]}];}_0xdc0a8c=_[_0x413c('0x42')]({},_0xdc0a8c,_0x7ebf2[_0x413c('0x4a')]);return db[_0x413c('0x2f')][_0x413c('0x4b')](_0xdc0a8c)[_0x413c('0x27')](handleEntityNotFound(_0x30a69c,null))[_0x413c('0x27')](respondWithResult(_0x30a69c,null))['catch'](handleError(_0x30a69c,null));};exports[_0x413c('0x4c')]=function(_0x3aaf52,_0x4ef965){return db[_0x413c('0x2f')][_0x413c('0x4c')](_0x3aaf52[_0x413c('0x4d')],{})[_0x413c('0x27')](respondWithResult(_0x4ef965,0xc9))['catch'](handleError(_0x4ef965,null));};exports[_0x413c('0x26')]=function(_0x4ec858,_0x394204){if(_0x4ec858['body']['id']){delete _0x4ec858[_0x413c('0x4d')]['id'];}return db[_0x413c('0x2f')]['find']({'where':{'id':_0x4ec858['params']['id']}})[_0x413c('0x27')](handleEntityNotFound(_0x394204,null))[_0x413c('0x27')](saveUpdates(_0x4ec858['body'],null))[_0x413c('0x27')](respondWithResult(_0x394204,null))[_0x413c('0x46')](handleError(_0x394204,null));};exports[_0x413c('0x28')]=function(_0x2b0828,_0x3ba384){return db[_0x413c('0x2f')][_0x413c('0x4b')]({'where':{'id':_0x2b0828['params']['id']}})[_0x413c('0x27')](handleEntityNotFound(_0x3ba384,null))[_0x413c('0x27')](removeEntity(_0x3ba384,null))['catch'](handleError(_0x3ba384,null));};exports[_0x413c('0x4e')]=function(_0x5ddcf1,_0x3b7090,_0x2c1436){var _0xb094f9={};var _0x2fd748={};var _0x53a202;var _0x5b175a;return db[_0x413c('0x2f')][_0x413c('0x4f')]({'where':{'id':_0x5ddcf1['params']['id']}})[_0x413c('0x27')](handleEntityNotFound(_0x3b7090,null))['then'](function(_0x18f001){if(_0x18f001){_0x53a202=_0x18f001;_0x2fd748['model']=_[_0x413c('0x36')](db[_0x413c('0x50')][_0x413c('0x30')]);_0x2fd748[_0x413c('0x35')]=_['keys'](_0x5ddcf1[_0x413c('0x35')]);_0x2fd748[_0x413c('0x37')]=_[_0x413c('0x49')](_0x2fd748[_0x413c('0x34')],_0x2fd748[_0x413c('0x35')]);_0xb094f9['attributes']=_[_0x413c('0x49')](_0x2fd748['model'],qs[_0x413c('0x39')](_0x5ddcf1[_0x413c('0x35')][_0x413c('0x39')]));_0xb094f9[_0x413c('0x38')]=_0xb094f9[_0x413c('0x38')][_0x413c('0x3a')]?_0xb094f9[_0x413c('0x38')]:_0x2fd748['model'];_0xb094f9[_0x413c('0x51')]=qs[_0x413c('0x3d')](_0x5ddcf1[_0x413c('0x35')][_0x413c('0x3d')]);_0xb094f9['where']=qs[_0x413c('0x37')](_[_0x413c('0x3e')](_0x5ddcf1[_0x413c('0x35')],_0x2fd748[_0x413c('0x37')]));if(_0x5ddcf1[_0x413c('0x35')][_0x413c('0x3f')]){_0xb094f9[_0x413c('0x40')]=_[_0x413c('0x42')](_0xb094f9[_0x413c('0x40')],{'$or':_[_0x413c('0x2e')](_0xb094f9[_0x413c('0x38')],function(_0x4062c3){var _0x27148b={};_0x27148b[_0x4062c3]={'$like':'%'+_0x5ddcf1[_0x413c('0x35')][_0x413c('0x3f')]+'%'};return _0x27148b;})});}_0xb094f9=_[_0x413c('0x42')]({},_0xb094f9,_0x5ddcf1['options']);return _0x53a202['getFields'](_0xb094f9);}})[_0x413c('0x27')](function(_0x1bb761){if(_0x1bb761){_0x5b175a=_0x1bb761['length'];if(!_0x5ddcf1[_0x413c('0x35')][_0x413c('0x3b')](_0x413c('0x3c'))){_0xb094f9[_0x413c('0x1e')]=qs['limit'](_0x5ddcf1[_0x413c('0x35')][_0x413c('0x1e')]);_0xb094f9['offset']=qs[_0x413c('0x21')](_0x5ddcf1[_0x413c('0x35')][_0x413c('0x21')]);}return _0x53a202[_0x413c('0x4e')](_0xb094f9);}})[_0x413c('0x27')](function(_0x34fe60){if(_0x34fe60){return _0x34fe60?{'count':_0x5b175a,'rows':_0x34fe60}:null;}})['then'](respondWithResult(_0x3b7090,null))['catch'](handleError(_0x3b7090,null));};exports[_0x413c('0x52')]=function(_0x1695cf,_0x15e11c,_0x3bf88c){var _0x7e0e6e={};var _0x1fd588={};var _0x19b66c;var _0x1acf6d;return db['SalesforceConfiguration'][_0x413c('0x4f')]({'where':{'id':_0x1695cf[_0x413c('0x48')]['id']}})['then'](handleEntityNotFound(_0x15e11c,null))[_0x413c('0x27')](function(_0x534263){if(_0x534263){_0x19b66c=_0x534263;_0x1fd588['model']=_[_0x413c('0x36')](db[_0x413c('0x50')][_0x413c('0x30')]);_0x1fd588['query']=_['keys'](_0x1695cf[_0x413c('0x35')]);_0x1fd588[_0x413c('0x37')]=_[_0x413c('0x49')](_0x1fd588[_0x413c('0x34')],_0x1fd588[_0x413c('0x35')]);_0x7e0e6e[_0x413c('0x38')]=_[_0x413c('0x49')](_0x1fd588['model'],qs[_0x413c('0x39')](_0x1695cf[_0x413c('0x35')][_0x413c('0x39')]));_0x7e0e6e[_0x413c('0x38')]=_0x7e0e6e[_0x413c('0x38')][_0x413c('0x3a')]?_0x7e0e6e['attributes']:_0x1fd588[_0x413c('0x34')];_0x7e0e6e['order']=qs['sort'](_0x1695cf[_0x413c('0x35')][_0x413c('0x3d')]);_0x7e0e6e[_0x413c('0x40')]=qs[_0x413c('0x37')](_[_0x413c('0x3e')](_0x1695cf[_0x413c('0x35')],_0x1fd588[_0x413c('0x37')]));if(_0x1695cf[_0x413c('0x35')][_0x413c('0x3f')]){_0x7e0e6e[_0x413c('0x40')]=_[_0x413c('0x42')](_0x7e0e6e[_0x413c('0x40')],{'$or':_['map'](_0x7e0e6e[_0x413c('0x38')],function(_0x45723d){var _0xfabe2e={};_0xfabe2e[_0x45723d]={'$like':'%'+_0x1695cf[_0x413c('0x35')][_0x413c('0x3f')]+'%'};return _0xfabe2e;})});}_0x7e0e6e=_[_0x413c('0x42')]({},_0x7e0e6e,_0x1695cf[_0x413c('0x4a')]);return _0x19b66c[_0x413c('0x52')](_0x7e0e6e);}})[_0x413c('0x27')](function(_0x2afb23){if(_0x2afb23){_0x1acf6d=_0x2afb23[_0x413c('0x3a')];if(!_0x1695cf['query'][_0x413c('0x3b')](_0x413c('0x3c'))){_0x7e0e6e['limit']=qs[_0x413c('0x1e')](_0x1695cf[_0x413c('0x35')]['limit']);_0x7e0e6e[_0x413c('0x21')]=qs['offset'](_0x1695cf[_0x413c('0x35')]['offset']);}return _0x19b66c[_0x413c('0x52')](_0x7e0e6e);}})['then'](function(_0x56bc1a){if(_0x56bc1a){return _0x56bc1a?{'count':_0x1acf6d,'rows':_0x56bc1a}:null;}})[_0x413c('0x27')](respondWithResult(_0x15e11c,null))[_0x413c('0x46')](handleError(_0x15e11c,null));};exports['getDescriptions']=function(_0x24bbc7,_0x12f632,_0x37302c){var _0x36293d={};var _0x27122b={};var _0x26d1ac;var _0xc32109;return db[_0x413c('0x2f')][_0x413c('0x4f')]({'where':{'id':_0x24bbc7[_0x413c('0x48')]['id']}})['then'](handleEntityNotFound(_0x12f632,null))['then'](function(_0x4c0721){if(_0x4c0721){_0x26d1ac=_0x4c0721;_0x27122b[_0x413c('0x34')]=_[_0x413c('0x36')](db['SalesforceField'][_0x413c('0x30')]);_0x27122b['query']=_[_0x413c('0x36')](_0x24bbc7[_0x413c('0x35')]);_0x27122b[_0x413c('0x37')]=_[_0x413c('0x49')](_0x27122b[_0x413c('0x34')],_0x27122b[_0x413c('0x35')]);_0x36293d[_0x413c('0x38')]=_[_0x413c('0x49')](_0x27122b[_0x413c('0x34')],qs[_0x413c('0x39')](_0x24bbc7['query'][_0x413c('0x39')]));_0x36293d[_0x413c('0x38')]=_0x36293d[_0x413c('0x38')][_0x413c('0x3a')]?_0x36293d['attributes']:_0x27122b[_0x413c('0x34')];_0x36293d['order']=qs['sort'](_0x24bbc7[_0x413c('0x35')][_0x413c('0x3d')]);_0x36293d['where']=qs[_0x413c('0x37')](_[_0x413c('0x3e')](_0x24bbc7[_0x413c('0x35')],_0x27122b['filters']));if(_0x24bbc7[_0x413c('0x35')][_0x413c('0x3f')]){_0x36293d[_0x413c('0x40')]=_['merge'](_0x36293d[_0x413c('0x40')],{'$or':_[_0x413c('0x2e')](_0x36293d[_0x413c('0x38')],function(_0x5f381f){var _0x4cd00e={};_0x4cd00e[_0x5f381f]={'$like':'%'+_0x24bbc7[_0x413c('0x35')][_0x413c('0x3f')]+'%'};return _0x4cd00e;})});}_0x36293d=_[_0x413c('0x42')]({},_0x36293d,_0x24bbc7[_0x413c('0x4a')]);return _0x26d1ac[_0x413c('0x53')](_0x36293d);}})[_0x413c('0x27')](function(_0x1d63bd){if(_0x1d63bd){_0xc32109=_0x1d63bd[_0x413c('0x3a')];if(!_0x24bbc7[_0x413c('0x35')]['hasOwnProperty']('nolimit')){_0x36293d[_0x413c('0x1e')]=qs[_0x413c('0x1e')](_0x24bbc7[_0x413c('0x35')][_0x413c('0x1e')]);_0x36293d[_0x413c('0x21')]=qs[_0x413c('0x21')](_0x24bbc7['query'][_0x413c('0x21')]);}return _0x26d1ac['getDescriptions'](_0x36293d);}})[_0x413c('0x27')](function(_0x467e09){if(_0x467e09){return _0x467e09?{'count':_0xc32109,'rows':_0x467e09}:null;}})[_0x413c('0x27')](respondWithResult(_0x12f632,null))['catch'](handleError(_0x12f632,null));};