362cea251e1a06e7b7d7cf0b4a460af0710602be
[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 _0x5c71=['ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','offset','undefined','limit','count','json','apply','save','update','then','destroy','end','error','stack','name','send','index','map','SalesforceConfiguration','fieldName','type','key','model','query','keys','filters','fields','attributes','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','intersection','length','create','body','find','getFields','findOne','SalesforceField','rawAttributes','order','getSubjects','nolimit','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring'];(function(_0x577d4c,_0x589a5d){var _0x402a3b=function(_0x38d426){while(--_0x38d426){_0x577d4c['push'](_0x577d4c['shift']());}};_0x402a3b(++_0x589a5d);}(_0x5c71,0x1e5));var _0x15c7=function(_0x5307d8,_0x3112a9){_0x5307d8=_0x5307d8-0x0;var _0x547d68=_0x5c71[_0x5307d8];return _0x547d68;};'use strict';var emlformat=require(_0x15c7('0x0'));var rimraf=require(_0x15c7('0x1'));var zipdir=require(_0x15c7('0x2'));var jsonpatch=require(_0x15c7('0x3'));var rp=require(_0x15c7('0x4'));var moment=require(_0x15c7('0x5'));var BPromise=require(_0x15c7('0x6'));var Mustache=require(_0x15c7('0x7'));var util=require(_0x15c7('0x8'));var path=require(_0x15c7('0x9'));var sox=require(_0x15c7('0xa'));var csv=require(_0x15c7('0xb'));var ejs=require(_0x15c7('0xc'));var fs=require('fs');var fs_extra=require(_0x15c7('0xd'));var _=require(_0x15c7('0xe'));var squel=require(_0x15c7('0xf'));var crypto=require('crypto');var jsforce=require(_0x15c7('0x10'));var deskjs=require(_0x15c7('0x11'));var toCsv=require(_0x15c7('0xb'));var querystring=require(_0x15c7('0x12'));var Papa=require('papaparse');var Redis=require(_0x15c7('0x13'));var authService=require(_0x15c7('0x14'));var qs=require(_0x15c7('0x15'));var as=require(_0x15c7('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x15c7('0x17'))(_0x15c7('0x18'));var utils=require(_0x15c7('0x19'));var config=require(_0x15c7('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x15c7('0x1b'))['db'];function respondWithStatusCode(_0xed3a3,_0x5bb4cb){_0x5bb4cb=_0x5bb4cb||0xcc;return function(_0x38e057){if(_0x38e057){return _0xed3a3[_0x15c7('0x1c')](_0x5bb4cb);}return _0xed3a3[_0x15c7('0x1d')](_0x5bb4cb)['end']();};}function respondWithResult(_0x1410ca,_0x438ba7){_0x438ba7=_0x438ba7||0xc8;return function(_0x51d81c){if(_0x51d81c){return _0x1410ca[_0x15c7('0x1d')](_0x438ba7)['json'](_0x51d81c);}};}function respondWithFilteredResult(_0x274f3a,_0x1363b6){return function(_0x51c250){if(_0x51c250){var _0x739632=typeof _0x1363b6[_0x15c7('0x1e')]===_0x15c7('0x1f')&&typeof _0x1363b6[_0x15c7('0x20')]===_0x15c7('0x1f');var _0x507674=_0x51c250[_0x15c7('0x21')];var _0x3eff9d=_0x739632?0x0:_0x1363b6['offset'];var _0xa342b9=_0x739632?_0x51c250['count']:_0x1363b6[_0x15c7('0x1e')]+_0x1363b6[_0x15c7('0x20')];var _0x56b75a;if(_0xa342b9>=_0x507674){_0xa342b9=_0x507674;_0x56b75a=0xc8;}else{_0x56b75a=0xce;}_0x274f3a[_0x15c7('0x1d')](_0x56b75a);return _0x274f3a['set']('Content-Range',_0x3eff9d+'-'+_0xa342b9+'/'+_0x507674)[_0x15c7('0x22')](_0x51c250);}return null;};}function patchUpdates(_0xe1833d){return function(_0x449c28){try{jsonpatch[_0x15c7('0x23')](_0x449c28,_0xe1833d,!![]);}catch(_0x37bf16){return BPromise['reject'](_0x37bf16);}return _0x449c28[_0x15c7('0x24')]();};}function saveUpdates(_0x50eff7,_0x3c9d98){return function(_0x535c8d){if(_0x535c8d){return _0x535c8d[_0x15c7('0x25')](_0x50eff7)[_0x15c7('0x26')](function(_0x1b8615){return _0x1b8615;});}return null;};}function removeEntity(_0x1cb7d5,_0x179d32){return function(_0x4ac413){if(_0x4ac413){return _0x4ac413[_0x15c7('0x27')]()['then'](function(){_0x1cb7d5[_0x15c7('0x1d')](0xcc)[_0x15c7('0x28')]();});}};}function handleEntityNotFound(_0x2be6dc,_0x961846){return function(_0x4ea401){if(!_0x4ea401){_0x2be6dc['sendStatus'](0x194);}return _0x4ea401;};}function handleError(_0x289725,_0x5dd040){_0x5dd040=_0x5dd040||0x1f4;return function(_0x43e30e){logger[_0x15c7('0x29')](_0x43e30e[_0x15c7('0x2a')]);if(_0x43e30e[_0x15c7('0x2b')]){delete _0x43e30e[_0x15c7('0x2b')];}_0x289725[_0x15c7('0x1d')](_0x5dd040)[_0x15c7('0x2c')](_0x43e30e);};}exports[_0x15c7('0x2d')]=function(_0x5b8385,_0x386e5d){var _0xe61b73={},_0x2eebae={},_0x3d0e3d={'count':0x0,'rows':[]};var _0x334763=_[_0x15c7('0x2e')](db[_0x15c7('0x2f')]['rawAttributes'],function(_0x9fc78a){return{'name':_0x9fc78a[_0x15c7('0x30')],'type':_0x9fc78a[_0x15c7('0x31')][_0x15c7('0x32')]};});_0x2eebae[_0x15c7('0x33')]=_[_0x15c7('0x2e')](_0x334763,_0x15c7('0x2b'));_0x2eebae[_0x15c7('0x34')]=_[_0x15c7('0x35')](_0x5b8385[_0x15c7('0x34')]);_0x2eebae[_0x15c7('0x36')]=_['intersection'](_0x2eebae[_0x15c7('0x33')],_0x2eebae[_0x15c7('0x34')]);_0xe61b73['attributes']=_['intersection'](_0x2eebae['model'],qs[_0x15c7('0x37')](_0x5b8385[_0x15c7('0x34')][_0x15c7('0x37')]));_0xe61b73[_0x15c7('0x38')]=_0xe61b73[_0x15c7('0x38')]['length']?_0xe61b73[_0x15c7('0x38')]:_0x2eebae[_0x15c7('0x33')];if(!_0x5b8385[_0x15c7('0x34')][_0x15c7('0x39')]('nolimit')){_0xe61b73[_0x15c7('0x20')]=qs[_0x15c7('0x20')](_0x5b8385[_0x15c7('0x34')][_0x15c7('0x20')]);_0xe61b73[_0x15c7('0x1e')]=qs[_0x15c7('0x1e')](_0x5b8385[_0x15c7('0x34')][_0x15c7('0x1e')]);}_0xe61b73['order']=qs[_0x15c7('0x3a')](_0x5b8385[_0x15c7('0x34')][_0x15c7('0x3a')]);_0xe61b73[_0x15c7('0x3b')]=qs[_0x15c7('0x36')](_[_0x15c7('0x3c')](_0x5b8385[_0x15c7('0x34')],_0x2eebae[_0x15c7('0x36')]),_0x334763);if(_0x5b8385[_0x15c7('0x34')][_0x15c7('0x3d')]){_0xe61b73[_0x15c7('0x3b')]=_[_0x15c7('0x3e')](_0xe61b73[_0x15c7('0x3b')],{'$or':_[_0x15c7('0x2e')](_0x334763,function(_0x42ba47){if(_0x42ba47['type']!==_0x15c7('0x3f')){var _0x441aa1={};_0x441aa1[_0x42ba47[_0x15c7('0x2b')]]={'$like':'%'+_0x5b8385[_0x15c7('0x34')][_0x15c7('0x3d')]+'%'};return _0x441aa1;}})});}_0xe61b73=_[_0x15c7('0x3e')]({},_0xe61b73,_0x5b8385[_0x15c7('0x40')]);var _0x2b59c9={'where':_0xe61b73['where']};return db[_0x15c7('0x2f')][_0x15c7('0x21')](_0x2b59c9)[_0x15c7('0x26')](function(_0x4b4ef0){_0x3d0e3d['count']=_0x4b4ef0;if(_0x5b8385[_0x15c7('0x34')]['includeAll']){_0xe61b73[_0x15c7('0x41')]=[{'all':!![]}];}return db['SalesforceConfiguration'][_0x15c7('0x42')](_0xe61b73);})['then'](function(_0x3a9dfb){_0x3d0e3d[_0x15c7('0x43')]=_0x3a9dfb;return _0x3d0e3d;})[_0x15c7('0x26')](respondWithFilteredResult(_0x386e5d,_0xe61b73))[_0x15c7('0x44')](handleError(_0x386e5d,null));};exports[_0x15c7('0x45')]=function(_0x32cbd1,_0x205a58){var _0x445ec6={'raw':![],'where':{'id':_0x32cbd1[_0x15c7('0x46')]['id']}},_0x6665dc={};_0x6665dc[_0x15c7('0x33')]=_['keys'](db[_0x15c7('0x2f')]['rawAttributes']);_0x6665dc['query']=_['keys'](_0x32cbd1[_0x15c7('0x34')]);_0x6665dc[_0x15c7('0x36')]=_[_0x15c7('0x47')](_0x6665dc[_0x15c7('0x33')],_0x6665dc[_0x15c7('0x34')]);_0x445ec6[_0x15c7('0x38')]=_[_0x15c7('0x47')](_0x6665dc[_0x15c7('0x33')],qs['fields'](_0x32cbd1[_0x15c7('0x34')][_0x15c7('0x37')]));_0x445ec6[_0x15c7('0x38')]=_0x445ec6[_0x15c7('0x38')][_0x15c7('0x48')]?_0x445ec6[_0x15c7('0x38')]:_0x6665dc[_0x15c7('0x33')];if(_0x32cbd1[_0x15c7('0x34')]['includeAll']){_0x445ec6[_0x15c7('0x41')]=[{'all':!![]}];}_0x445ec6=_[_0x15c7('0x3e')]({},_0x445ec6,_0x32cbd1['options']);return db['SalesforceConfiguration']['find'](_0x445ec6)['then'](handleEntityNotFound(_0x205a58,null))[_0x15c7('0x26')](respondWithResult(_0x205a58,null))[_0x15c7('0x44')](handleError(_0x205a58,null));};exports[_0x15c7('0x49')]=function(_0x1d329b,_0x2eff2f){return db[_0x15c7('0x2f')][_0x15c7('0x49')](_0x1d329b[_0x15c7('0x4a')],{})[_0x15c7('0x26')](respondWithResult(_0x2eff2f,0xc9))[_0x15c7('0x44')](handleError(_0x2eff2f,null));};exports['update']=function(_0x5e8e26,_0x432818){if(_0x5e8e26[_0x15c7('0x4a')]['id']){delete _0x5e8e26[_0x15c7('0x4a')]['id'];}return db[_0x15c7('0x2f')]['find']({'where':{'id':_0x5e8e26[_0x15c7('0x46')]['id']}})[_0x15c7('0x26')](handleEntityNotFound(_0x432818,null))['then'](saveUpdates(_0x5e8e26[_0x15c7('0x4a')],null))['then'](respondWithResult(_0x432818,null))[_0x15c7('0x44')](handleError(_0x432818,null));};exports[_0x15c7('0x27')]=function(_0x128eec,_0x4d14fa){return db['SalesforceConfiguration'][_0x15c7('0x4b')]({'where':{'id':_0x128eec[_0x15c7('0x46')]['id']}})[_0x15c7('0x26')](handleEntityNotFound(_0x4d14fa,null))[_0x15c7('0x26')](removeEntity(_0x4d14fa,null))[_0x15c7('0x44')](handleError(_0x4d14fa,null));};exports[_0x15c7('0x4c')]=function(_0x12e904,_0x1dfb4d,_0xdda39c){var _0x30a9d4={};var _0x1e6bea={};var _0x32752a;var _0x5f0762;return db['SalesforceConfiguration'][_0x15c7('0x4d')]({'where':{'id':_0x12e904['params']['id']}})['then'](handleEntityNotFound(_0x1dfb4d,null))[_0x15c7('0x26')](function(_0x6e8142){if(_0x6e8142){_0x32752a=_0x6e8142;_0x1e6bea[_0x15c7('0x33')]=_[_0x15c7('0x35')](db[_0x15c7('0x4e')][_0x15c7('0x4f')]);_0x1e6bea['query']=_[_0x15c7('0x35')](_0x12e904[_0x15c7('0x34')]);_0x1e6bea[_0x15c7('0x36')]=_[_0x15c7('0x47')](_0x1e6bea[_0x15c7('0x33')],_0x1e6bea[_0x15c7('0x34')]);_0x30a9d4['attributes']=_[_0x15c7('0x47')](_0x1e6bea[_0x15c7('0x33')],qs[_0x15c7('0x37')](_0x12e904[_0x15c7('0x34')][_0x15c7('0x37')]));_0x30a9d4['attributes']=_0x30a9d4['attributes']['length']?_0x30a9d4['attributes']:_0x1e6bea['model'];_0x30a9d4[_0x15c7('0x50')]=qs[_0x15c7('0x3a')](_0x12e904[_0x15c7('0x34')][_0x15c7('0x3a')]);_0x30a9d4[_0x15c7('0x3b')]=qs[_0x15c7('0x36')](_[_0x15c7('0x3c')](_0x12e904[_0x15c7('0x34')],_0x1e6bea[_0x15c7('0x36')]));if(_0x12e904['query']['filter']){_0x30a9d4[_0x15c7('0x3b')]=_[_0x15c7('0x3e')](_0x30a9d4['where'],{'$or':_[_0x15c7('0x2e')](_0x30a9d4['attributes'],function(_0x177f33){var _0x2bec28={};_0x2bec28[_0x177f33]={'$like':'%'+_0x12e904[_0x15c7('0x34')][_0x15c7('0x3d')]+'%'};return _0x2bec28;})});}_0x30a9d4=_['merge']({},_0x30a9d4,_0x12e904[_0x15c7('0x40')]);return _0x32752a[_0x15c7('0x4c')](_0x30a9d4);}})[_0x15c7('0x26')](function(_0x148b03){if(_0x148b03){_0x5f0762=_0x148b03[_0x15c7('0x48')];if(!_0x12e904[_0x15c7('0x34')][_0x15c7('0x39')]('nolimit')){_0x30a9d4[_0x15c7('0x20')]=qs[_0x15c7('0x20')](_0x12e904[_0x15c7('0x34')][_0x15c7('0x20')]);_0x30a9d4[_0x15c7('0x1e')]=qs[_0x15c7('0x1e')](_0x12e904[_0x15c7('0x34')][_0x15c7('0x1e')]);}return _0x32752a[_0x15c7('0x4c')](_0x30a9d4);}})[_0x15c7('0x26')](function(_0x1a4b87){if(_0x1a4b87){return _0x1a4b87?{'count':_0x5f0762,'rows':_0x1a4b87}:null;}})[_0x15c7('0x26')](respondWithResult(_0x1dfb4d,null))[_0x15c7('0x44')](handleError(_0x1dfb4d,null));};exports[_0x15c7('0x51')]=function(_0x4c42d4,_0x2608c8,_0x6c08d3){var _0x5b7ff1={};var _0x140ae6={};var _0x4810be;var _0x1b634b;return db[_0x15c7('0x2f')][_0x15c7('0x4d')]({'where':{'id':_0x4c42d4['params']['id']}})[_0x15c7('0x26')](handleEntityNotFound(_0x2608c8,null))[_0x15c7('0x26')](function(_0x5eee5c){if(_0x5eee5c){_0x4810be=_0x5eee5c;_0x140ae6[_0x15c7('0x33')]=_[_0x15c7('0x35')](db['SalesforceField'][_0x15c7('0x4f')]);_0x140ae6['query']=_[_0x15c7('0x35')](_0x4c42d4[_0x15c7('0x34')]);_0x140ae6['filters']=_[_0x15c7('0x47')](_0x140ae6[_0x15c7('0x33')],_0x140ae6[_0x15c7('0x34')]);_0x5b7ff1[_0x15c7('0x38')]=_['intersection'](_0x140ae6[_0x15c7('0x33')],qs[_0x15c7('0x37')](_0x4c42d4[_0x15c7('0x34')][_0x15c7('0x37')]));_0x5b7ff1[_0x15c7('0x38')]=_0x5b7ff1[_0x15c7('0x38')][_0x15c7('0x48')]?_0x5b7ff1[_0x15c7('0x38')]:_0x140ae6[_0x15c7('0x33')];_0x5b7ff1[_0x15c7('0x50')]=qs[_0x15c7('0x3a')](_0x4c42d4[_0x15c7('0x34')][_0x15c7('0x3a')]);_0x5b7ff1[_0x15c7('0x3b')]=qs['filters'](_[_0x15c7('0x3c')](_0x4c42d4[_0x15c7('0x34')],_0x140ae6[_0x15c7('0x36')]));if(_0x4c42d4[_0x15c7('0x34')][_0x15c7('0x3d')]){_0x5b7ff1[_0x15c7('0x3b')]=_[_0x15c7('0x3e')](_0x5b7ff1[_0x15c7('0x3b')],{'$or':_[_0x15c7('0x2e')](_0x5b7ff1[_0x15c7('0x38')],function(_0x44d011){var _0x4ec1e4={};_0x4ec1e4[_0x44d011]={'$like':'%'+_0x4c42d4[_0x15c7('0x34')]['filter']+'%'};return _0x4ec1e4;})});}_0x5b7ff1=_['merge']({},_0x5b7ff1,_0x4c42d4[_0x15c7('0x40')]);return _0x4810be['getSubjects'](_0x5b7ff1);}})[_0x15c7('0x26')](function(_0x23c83f){if(_0x23c83f){_0x1b634b=_0x23c83f[_0x15c7('0x48')];if(!_0x4c42d4['query']['hasOwnProperty'](_0x15c7('0x52'))){_0x5b7ff1[_0x15c7('0x20')]=qs[_0x15c7('0x20')](_0x4c42d4['query'][_0x15c7('0x20')]);_0x5b7ff1[_0x15c7('0x1e')]=qs[_0x15c7('0x1e')](_0x4c42d4['query'][_0x15c7('0x1e')]);}return _0x4810be[_0x15c7('0x51')](_0x5b7ff1);}})['then'](function(_0x70c19d){if(_0x70c19d){return _0x70c19d?{'count':_0x1b634b,'rows':_0x70c19d}:null;}})[_0x15c7('0x26')](respondWithResult(_0x2608c8,null))[_0x15c7('0x44')](handleError(_0x2608c8,null));};exports['getDescriptions']=function(_0x4d8212,_0x3490ca,_0x1e9bee){var _0x36627a={};var _0x2aad98={};var _0x11799a;var _0x9ec094;return db[_0x15c7('0x2f')]['findOne']({'where':{'id':_0x4d8212[_0x15c7('0x46')]['id']}})[_0x15c7('0x26')](handleEntityNotFound(_0x3490ca,null))[_0x15c7('0x26')](function(_0xfc81cd){if(_0xfc81cd){_0x11799a=_0xfc81cd;_0x2aad98['model']=_[_0x15c7('0x35')](db[_0x15c7('0x4e')][_0x15c7('0x4f')]);_0x2aad98[_0x15c7('0x34')]=_[_0x15c7('0x35')](_0x4d8212['query']);_0x2aad98[_0x15c7('0x36')]=_['intersection'](_0x2aad98[_0x15c7('0x33')],_0x2aad98[_0x15c7('0x34')]);_0x36627a[_0x15c7('0x38')]=_[_0x15c7('0x47')](_0x2aad98[_0x15c7('0x33')],qs[_0x15c7('0x37')](_0x4d8212[_0x15c7('0x34')][_0x15c7('0x37')]));_0x36627a[_0x15c7('0x38')]=_0x36627a[_0x15c7('0x38')]['length']?_0x36627a[_0x15c7('0x38')]:_0x2aad98[_0x15c7('0x33')];_0x36627a[_0x15c7('0x50')]=qs[_0x15c7('0x3a')](_0x4d8212[_0x15c7('0x34')][_0x15c7('0x3a')]);_0x36627a[_0x15c7('0x3b')]=qs[_0x15c7('0x36')](_['pick'](_0x4d8212['query'],_0x2aad98['filters']));if(_0x4d8212[_0x15c7('0x34')][_0x15c7('0x3d')]){_0x36627a['where']=_[_0x15c7('0x3e')](_0x36627a[_0x15c7('0x3b')],{'$or':_['map'](_0x36627a[_0x15c7('0x38')],function(_0x23bfcd){var _0x47a27b={};_0x47a27b[_0x23bfcd]={'$like':'%'+_0x4d8212[_0x15c7('0x34')]['filter']+'%'};return _0x47a27b;})});}_0x36627a=_[_0x15c7('0x3e')]({},_0x36627a,_0x4d8212['options']);return _0x11799a[_0x15c7('0x53')](_0x36627a);}})[_0x15c7('0x26')](function(_0x1d3139){if(_0x1d3139){_0x9ec094=_0x1d3139['length'];if(!_0x4d8212[_0x15c7('0x34')][_0x15c7('0x39')](_0x15c7('0x52'))){_0x36627a[_0x15c7('0x20')]=qs[_0x15c7('0x20')](_0x4d8212[_0x15c7('0x34')][_0x15c7('0x20')]);_0x36627a[_0x15c7('0x1e')]=qs[_0x15c7('0x1e')](_0x4d8212[_0x15c7('0x34')][_0x15c7('0x1e')]);}return _0x11799a[_0x15c7('0x53')](_0x36627a);}})[_0x15c7('0x26')](function(_0x28d390){if(_0x28d390){return _0x28d390?{'count':_0x9ec094,'rows':_0x28d390}:null;}})[_0x15c7('0x26')](respondWithResult(_0x3490ca,null))['catch'](handleError(_0x3490ca,null));};