0fdf5d1ae16e76c6a728307fac449fd748e82634
[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 _0x277c=['to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','client','http','then','info','request\x20sent','debug','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','error','SalesforceConfiguration,\x20%s,\x20%s','message','result','catch','sendStatus','status','json','offset','undefined','count','limit','set','apply','reject','update','end','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','nolimit','sort','filters','pick','filter','where','VIRTUAL','merge','options','SalesforceConfiguration','includeAll','include','findAll','rows','show','create','body','destroy','getFields','findOne','params','SalesforceField','order','hasOwnProperty','getSubjects','getDescriptions','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','crypto','jsforce'];(function(_0x4dbe67,_0x1ebc59){var _0x3d7eb9=function(_0x44eecb){while(--_0x44eecb){_0x4dbe67['push'](_0x4dbe67['shift']());}};_0x3d7eb9(++_0x1ebc59);}(_0x277c,0x153));var _0xc277=function(_0x9ae50e,_0xbe487){_0x9ae50e=_0x9ae50e-0x0;var _0x26f2b3=_0x277c[_0x9ae50e];return _0x26f2b3;};'use strict';var emlformat=require(_0xc277('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc277('0x1'));var jsonpatch=require(_0xc277('0x2'));var rp=require(_0xc277('0x3'));var moment=require(_0xc277('0x4'));var BPromise=require(_0xc277('0x5'));var Mustache=require(_0xc277('0x6'));var util=require(_0xc277('0x7'));var path=require(_0xc277('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xc277('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc277('0xa'));var squel=require('squel');var crypto=require(_0xc277('0xb'));var jsforce=require(_0xc277('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xc277('0xd'));var querystring=require(_0xc277('0xe'));var Papa=require(_0xc277('0xf'));var Redis=require(_0xc277('0x10'));var authService=require(_0xc277('0x11'));var qs=require(_0xc277('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xc277('0x13'))(_0xc277('0x14'));var utils=require(_0xc277('0x15'));var config=require(_0xc277('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xc277('0x17'))['db'];var jayson=require('jayson/promise');var client=jayson[_0xc277('0x18')][_0xc277('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x1850eb,_0x30ecc3,_0x4bced3,_0x222bc8){return new BPromise(function(_0x182d35,_0x8895bd){var _0x4de960=_0x222bc8||client;return _0x4de960['request'](_0x1850eb,_0x4bced3)[_0xc277('0x1a')](function(_0x5c212c){logger[_0xc277('0x1b')]('SalesforceConfiguration,\x20%s,\x20%s',_0x30ecc3,_0xc277('0x1c'));logger[_0xc277('0x1d')](_0xc277('0x1e'),_0x30ecc3,'request\x20sent',JSON['stringify'](_0x5c212c));if(_0x5c212c[_0xc277('0x1f')]){if(_0x5c212c['error']['code']===0x1f4){logger[_0xc277('0x1f')](_0xc277('0x20'),_0x30ecc3,_0x5c212c[_0xc277('0x1f')][_0xc277('0x21')]);return _0x8895bd(_0x5c212c[_0xc277('0x1f')][_0xc277('0x21')]);}logger[_0xc277('0x1f')]('SalesforceConfiguration,\x20%s,\x20%s',_0x30ecc3,_0x5c212c['error'][_0xc277('0x21')]);return _0x182d35(_0x5c212c[_0xc277('0x1f')][_0xc277('0x21')]);}else{logger[_0xc277('0x1b')](_0xc277('0x20'),_0x30ecc3,_0xc277('0x1c'));_0x182d35(_0x5c212c[_0xc277('0x22')][_0xc277('0x21')]);}})[_0xc277('0x23')](function(_0x2bc7ad){logger[_0xc277('0x1f')]('SalesforceConfiguration,\x20%s,\x20%s',_0x30ecc3,_0x2bc7ad);_0x8895bd(_0x2bc7ad);});});}function respondWithStatusCode(_0x2b9936,_0x21af1b){_0x21af1b=_0x21af1b||0xcc;return function(_0x54b2e1){if(_0x54b2e1){return _0x2b9936[_0xc277('0x24')](_0x21af1b);}return _0x2b9936['status'](_0x21af1b)['end']();};}function respondWithResult(_0x3292ab,_0x57b03){_0x57b03=_0x57b03||0xc8;return function(_0x1583b6){if(_0x1583b6){return _0x3292ab[_0xc277('0x25')](_0x57b03)[_0xc277('0x26')](_0x1583b6);}};}function respondWithFilteredResult(_0x3aa598,_0x37b893){return function(_0x9ad1c5){if(_0x9ad1c5){var _0xf903ea=typeof _0x37b893[_0xc277('0x27')]===_0xc277('0x28')&&typeof _0x37b893['limit']==='undefined';var _0x31b6d4=_0x9ad1c5[_0xc277('0x29')];var _0x4ebb0f=_0xf903ea?0x0:_0x37b893['offset'];var _0x388717=_0xf903ea?_0x9ad1c5[_0xc277('0x29')]:_0x37b893[_0xc277('0x27')]+_0x37b893[_0xc277('0x2a')];var _0x3fc62f;if(_0x388717>=_0x31b6d4){_0x388717=_0x31b6d4;_0x3fc62f=0xc8;}else{_0x3fc62f=0xce;}_0x3aa598['status'](_0x3fc62f);return _0x3aa598[_0xc277('0x2b')]('Content-Range',_0x4ebb0f+'-'+_0x388717+'/'+_0x31b6d4)[_0xc277('0x26')](_0x9ad1c5);}return null;};}function patchUpdates(_0x74ff17){return function(_0x4348d9){try{jsonpatch[_0xc277('0x2c')](_0x4348d9,_0x74ff17,!![]);}catch(_0x5e9f22){return BPromise[_0xc277('0x2d')](_0x5e9f22);}return _0x4348d9['save']();};}function saveUpdates(_0x211379,_0x288e42){return function(_0xbc1a66){if(_0xbc1a66){return _0xbc1a66[_0xc277('0x2e')](_0x211379)['then'](function(_0x278e56){return _0x278e56;});}return null;};}function removeEntity(_0x3a7294,_0x567307){return function(_0x3ecc0b){if(_0x3ecc0b){return _0x3ecc0b['destroy']()[_0xc277('0x1a')](function(){_0x3a7294[_0xc277('0x25')](0xcc)[_0xc277('0x2f')]();});}};}function handleEntityNotFound(_0x2cc802,_0x2cc28d){return function(_0x86f57b){if(!_0x86f57b){_0x2cc802[_0xc277('0x24')](0x194);}return _0x86f57b;};}function handleError(_0x2c5b28,_0x39830d){_0x39830d=_0x39830d||0x1f4;return function(_0x100853){logger[_0xc277('0x1f')](_0x100853['stack']);if(_0x100853[_0xc277('0x30')]){delete _0x100853[_0xc277('0x30')];}_0x2c5b28[_0xc277('0x25')](_0x39830d)['send'](_0x100853);};}exports[_0xc277('0x31')]=function(_0xe6631d,_0x18986b){var _0x3e9701={},_0x3522ee={},_0x5cfba7={'count':0x0,'rows':[]};var _0x4de270=_[_0xc277('0x32')](db['SalesforceConfiguration'][_0xc277('0x33')],function(_0x469863){return{'name':_0x469863[_0xc277('0x34')],'type':_0x469863[_0xc277('0x35')][_0xc277('0x36')]};});_0x3522ee[_0xc277('0x37')]=_[_0xc277('0x32')](_0x4de270,_0xc277('0x30'));_0x3522ee[_0xc277('0x38')]=_[_0xc277('0x39')](_0xe6631d[_0xc277('0x38')]);_0x3522ee['filters']=_[_0xc277('0x3a')](_0x3522ee[_0xc277('0x37')],_0x3522ee[_0xc277('0x38')]);_0x3e9701['attributes']=_[_0xc277('0x3a')](_0x3522ee[_0xc277('0x37')],qs['fields'](_0xe6631d['query'][_0xc277('0x3b')]));_0x3e9701[_0xc277('0x3c')]=_0x3e9701[_0xc277('0x3c')][_0xc277('0x3d')]?_0x3e9701[_0xc277('0x3c')]:_0x3522ee[_0xc277('0x37')];if(!_0xe6631d[_0xc277('0x38')]['hasOwnProperty'](_0xc277('0x3e'))){_0x3e9701[_0xc277('0x2a')]=qs[_0xc277('0x2a')](_0xe6631d['query']['limit']);_0x3e9701['offset']=qs['offset'](_0xe6631d['query'][_0xc277('0x27')]);}_0x3e9701['order']=qs[_0xc277('0x3f')](_0xe6631d[_0xc277('0x38')][_0xc277('0x3f')]);_0x3e9701['where']=qs[_0xc277('0x40')](_[_0xc277('0x41')](_0xe6631d[_0xc277('0x38')],_0x3522ee[_0xc277('0x40')]),_0x4de270);if(_0xe6631d['query'][_0xc277('0x42')]){_0x3e9701[_0xc277('0x43')]=_['merge'](_0x3e9701[_0xc277('0x43')],{'$or':_[_0xc277('0x32')](_0x4de270,function(_0x4405ef){if(_0x4405ef[_0xc277('0x35')]!==_0xc277('0x44')){var _0x224601={};_0x224601[_0x4405ef[_0xc277('0x30')]]={'$like':'%'+_0xe6631d[_0xc277('0x38')][_0xc277('0x42')]+'%'};return _0x224601;}})});}_0x3e9701=_[_0xc277('0x45')]({},_0x3e9701,_0xe6631d[_0xc277('0x46')]);var _0x55e691={'where':_0x3e9701[_0xc277('0x43')]};return db[_0xc277('0x47')][_0xc277('0x29')](_0x55e691)[_0xc277('0x1a')](function(_0x53a8f3){_0x5cfba7[_0xc277('0x29')]=_0x53a8f3;if(_0xe6631d['query'][_0xc277('0x48')]){_0x3e9701[_0xc277('0x49')]=[{'all':!![]}];}return db[_0xc277('0x47')][_0xc277('0x4a')](_0x3e9701);})[_0xc277('0x1a')](function(_0x57c759){_0x5cfba7[_0xc277('0x4b')]=_0x57c759;return _0x5cfba7;})[_0xc277('0x1a')](respondWithFilteredResult(_0x18986b,_0x3e9701))[_0xc277('0x23')](handleError(_0x18986b,null));};exports[_0xc277('0x4c')]=function(_0x552fae,_0x386021){var _0x9c910a={'raw':![],'where':{'id':_0x552fae['params']['id']}},_0x150876={};_0x150876[_0xc277('0x37')]=_['keys'](db[_0xc277('0x47')][_0xc277('0x33')]);_0x150876[_0xc277('0x38')]=_[_0xc277('0x39')](_0x552fae[_0xc277('0x38')]);_0x150876[_0xc277('0x40')]=_[_0xc277('0x3a')](_0x150876[_0xc277('0x37')],_0x150876[_0xc277('0x38')]);_0x9c910a[_0xc277('0x3c')]=_[_0xc277('0x3a')](_0x150876[_0xc277('0x37')],qs['fields'](_0x552fae[_0xc277('0x38')]['fields']));_0x9c910a[_0xc277('0x3c')]=_0x9c910a[_0xc277('0x3c')][_0xc277('0x3d')]?_0x9c910a[_0xc277('0x3c')]:_0x150876[_0xc277('0x37')];if(_0x552fae['query'][_0xc277('0x48')]){_0x9c910a[_0xc277('0x49')]=[{'all':!![]}];}_0x9c910a=_['merge']({},_0x9c910a,_0x552fae['options']);return db[_0xc277('0x47')]['find'](_0x9c910a)[_0xc277('0x1a')](handleEntityNotFound(_0x386021,null))[_0xc277('0x1a')](respondWithResult(_0x386021,null))[_0xc277('0x23')](handleError(_0x386021,null));};exports[_0xc277('0x4d')]=function(_0x1f1a7d,_0x4c7fe3){return db['SalesforceConfiguration'][_0xc277('0x4d')](_0x1f1a7d[_0xc277('0x4e')],{})[_0xc277('0x1a')](respondWithResult(_0x4c7fe3,0xc9))['catch'](handleError(_0x4c7fe3,null));};exports[_0xc277('0x2e')]=function(_0x5db8f6,_0x1709b7){if(_0x5db8f6[_0xc277('0x4e')]['id']){delete _0x5db8f6[_0xc277('0x4e')]['id'];}return db['SalesforceConfiguration']['find']({'where':{'id':_0x5db8f6['params']['id']}})[_0xc277('0x1a')](handleEntityNotFound(_0x1709b7,null))[_0xc277('0x1a')](saveUpdates(_0x5db8f6['body'],null))['then'](respondWithResult(_0x1709b7,null))[_0xc277('0x23')](handleError(_0x1709b7,null));};exports[_0xc277('0x4f')]=function(_0x365eae,_0x14582e){return db['SalesforceConfiguration']['find']({'where':{'id':_0x365eae['params']['id']}})[_0xc277('0x1a')](handleEntityNotFound(_0x14582e,null))[_0xc277('0x1a')](removeEntity(_0x14582e,null))['catch'](handleError(_0x14582e,null));};exports[_0xc277('0x50')]=function(_0xce525b,_0x49f89f,_0x4e71bd){var _0x3cbb8b={};var _0x2f64ff={};var _0x18146f;var _0x10942d;return db[_0xc277('0x47')][_0xc277('0x51')]({'where':{'id':_0xce525b[_0xc277('0x52')]['id']}})[_0xc277('0x1a')](handleEntityNotFound(_0x49f89f,null))['then'](function(_0x76d5ff){if(_0x76d5ff){_0x18146f=_0x76d5ff;_0x2f64ff['model']=_[_0xc277('0x39')](db[_0xc277('0x53')]['rawAttributes']);_0x2f64ff['query']=_[_0xc277('0x39')](_0xce525b[_0xc277('0x38')]);_0x2f64ff[_0xc277('0x40')]=_['intersection'](_0x2f64ff['model'],_0x2f64ff[_0xc277('0x38')]);_0x3cbb8b[_0xc277('0x3c')]=_[_0xc277('0x3a')](_0x2f64ff[_0xc277('0x37')],qs[_0xc277('0x3b')](_0xce525b[_0xc277('0x38')]['fields']));_0x3cbb8b[_0xc277('0x3c')]=_0x3cbb8b[_0xc277('0x3c')][_0xc277('0x3d')]?_0x3cbb8b[_0xc277('0x3c')]:_0x2f64ff[_0xc277('0x37')];_0x3cbb8b[_0xc277('0x54')]=qs[_0xc277('0x3f')](_0xce525b[_0xc277('0x38')][_0xc277('0x3f')]);_0x3cbb8b[_0xc277('0x43')]=qs[_0xc277('0x40')](_['pick'](_0xce525b[_0xc277('0x38')],_0x2f64ff[_0xc277('0x40')]));if(_0xce525b[_0xc277('0x38')][_0xc277('0x42')]){_0x3cbb8b['where']=_[_0xc277('0x45')](_0x3cbb8b[_0xc277('0x43')],{'$or':_[_0xc277('0x32')](_0x3cbb8b[_0xc277('0x3c')],function(_0x9738d4){var _0x13fd77={};_0x13fd77[_0x9738d4]={'$like':'%'+_0xce525b['query'][_0xc277('0x42')]+'%'};return _0x13fd77;})});}_0x3cbb8b=_['merge']({},_0x3cbb8b,_0xce525b[_0xc277('0x46')]);return _0x18146f[_0xc277('0x50')](_0x3cbb8b);}})['then'](function(_0x49ef82){if(_0x49ef82){_0x10942d=_0x49ef82[_0xc277('0x3d')];if(!_0xce525b[_0xc277('0x38')]['hasOwnProperty'](_0xc277('0x3e'))){_0x3cbb8b[_0xc277('0x2a')]=qs[_0xc277('0x2a')](_0xce525b[_0xc277('0x38')][_0xc277('0x2a')]);_0x3cbb8b[_0xc277('0x27')]=qs[_0xc277('0x27')](_0xce525b[_0xc277('0x38')][_0xc277('0x27')]);}return _0x18146f[_0xc277('0x50')](_0x3cbb8b);}})['then'](function(_0x57f570){if(_0x57f570){return _0x57f570?{'count':_0x10942d,'rows':_0x57f570}:null;}})[_0xc277('0x1a')](respondWithResult(_0x49f89f,null))[_0xc277('0x23')](handleError(_0x49f89f,null));};exports['getSubjects']=function(_0x696342,_0x37a97b,_0x35ab8c){var _0x5b4fdb={};var _0x2192ac={};var _0x137889;var _0x2abd4d;return db[_0xc277('0x47')]['findOne']({'where':{'id':_0x696342[_0xc277('0x52')]['id']}})[_0xc277('0x1a')](handleEntityNotFound(_0x37a97b,null))[_0xc277('0x1a')](function(_0x51e712){if(_0x51e712){_0x137889=_0x51e712;_0x2192ac[_0xc277('0x37')]=_[_0xc277('0x39')](db[_0xc277('0x53')][_0xc277('0x33')]);_0x2192ac[_0xc277('0x38')]=_['keys'](_0x696342[_0xc277('0x38')]);_0x2192ac[_0xc277('0x40')]=_[_0xc277('0x3a')](_0x2192ac[_0xc277('0x37')],_0x2192ac[_0xc277('0x38')]);_0x5b4fdb[_0xc277('0x3c')]=_[_0xc277('0x3a')](_0x2192ac[_0xc277('0x37')],qs[_0xc277('0x3b')](_0x696342[_0xc277('0x38')][_0xc277('0x3b')]));_0x5b4fdb[_0xc277('0x3c')]=_0x5b4fdb[_0xc277('0x3c')][_0xc277('0x3d')]?_0x5b4fdb[_0xc277('0x3c')]:_0x2192ac['model'];_0x5b4fdb[_0xc277('0x54')]=qs['sort'](_0x696342['query'][_0xc277('0x3f')]);_0x5b4fdb['where']=qs[_0xc277('0x40')](_[_0xc277('0x41')](_0x696342[_0xc277('0x38')],_0x2192ac['filters']));if(_0x696342[_0xc277('0x38')][_0xc277('0x42')]){_0x5b4fdb[_0xc277('0x43')]=_[_0xc277('0x45')](_0x5b4fdb[_0xc277('0x43')],{'$or':_[_0xc277('0x32')](_0x5b4fdb[_0xc277('0x3c')],function(_0x37e9be){var _0x3a79f7={};_0x3a79f7[_0x37e9be]={'$like':'%'+_0x696342[_0xc277('0x38')][_0xc277('0x42')]+'%'};return _0x3a79f7;})});}_0x5b4fdb=_[_0xc277('0x45')]({},_0x5b4fdb,_0x696342[_0xc277('0x46')]);return _0x137889['getSubjects'](_0x5b4fdb);}})[_0xc277('0x1a')](function(_0x3e0e3c){if(_0x3e0e3c){_0x2abd4d=_0x3e0e3c['length'];if(!_0x696342[_0xc277('0x38')][_0xc277('0x55')](_0xc277('0x3e'))){_0x5b4fdb[_0xc277('0x2a')]=qs[_0xc277('0x2a')](_0x696342['query']['limit']);_0x5b4fdb[_0xc277('0x27')]=qs['offset'](_0x696342[_0xc277('0x38')][_0xc277('0x27')]);}return _0x137889[_0xc277('0x56')](_0x5b4fdb);}})['then'](function(_0x80f980){if(_0x80f980){return _0x80f980?{'count':_0x2abd4d,'rows':_0x80f980}:null;}})[_0xc277('0x1a')](respondWithResult(_0x37a97b,null))[_0xc277('0x23')](handleError(_0x37a97b,null));};exports[_0xc277('0x57')]=function(_0x239111,_0x593d5e,_0x519d2c){var _0x5217dd={};var _0x4dc1b3={};var _0x1ddf5d;var _0xe41415;return db[_0xc277('0x47')][_0xc277('0x51')]({'where':{'id':_0x239111['params']['id']}})['then'](handleEntityNotFound(_0x593d5e,null))[_0xc277('0x1a')](function(_0x20e389){if(_0x20e389){_0x1ddf5d=_0x20e389;_0x4dc1b3[_0xc277('0x37')]=_['keys'](db[_0xc277('0x53')][_0xc277('0x33')]);_0x4dc1b3[_0xc277('0x38')]=_['keys'](_0x239111[_0xc277('0x38')]);_0x4dc1b3[_0xc277('0x40')]=_[_0xc277('0x3a')](_0x4dc1b3[_0xc277('0x37')],_0x4dc1b3[_0xc277('0x38')]);_0x5217dd[_0xc277('0x3c')]=_['intersection'](_0x4dc1b3['model'],qs[_0xc277('0x3b')](_0x239111['query'][_0xc277('0x3b')]));_0x5217dd[_0xc277('0x3c')]=_0x5217dd['attributes']['length']?_0x5217dd[_0xc277('0x3c')]:_0x4dc1b3[_0xc277('0x37')];_0x5217dd[_0xc277('0x54')]=qs[_0xc277('0x3f')](_0x239111['query'][_0xc277('0x3f')]);_0x5217dd[_0xc277('0x43')]=qs['filters'](_[_0xc277('0x41')](_0x239111[_0xc277('0x38')],_0x4dc1b3[_0xc277('0x40')]));if(_0x239111['query'][_0xc277('0x42')]){_0x5217dd[_0xc277('0x43')]=_['merge'](_0x5217dd[_0xc277('0x43')],{'$or':_[_0xc277('0x32')](_0x5217dd[_0xc277('0x3c')],function(_0x55f6ac){var _0x5076b9={};_0x5076b9[_0x55f6ac]={'$like':'%'+_0x239111[_0xc277('0x38')][_0xc277('0x42')]+'%'};return _0x5076b9;})});}_0x5217dd=_['merge']({},_0x5217dd,_0x239111[_0xc277('0x46')]);return _0x1ddf5d[_0xc277('0x57')](_0x5217dd);}})[_0xc277('0x1a')](function(_0x35bbe4){if(_0x35bbe4){_0xe41415=_0x35bbe4[_0xc277('0x3d')];if(!_0x239111['query']['hasOwnProperty'](_0xc277('0x3e'))){_0x5217dd[_0xc277('0x2a')]=qs[_0xc277('0x2a')](_0x239111[_0xc277('0x38')]['limit']);_0x5217dd[_0xc277('0x27')]=qs['offset'](_0x239111[_0xc277('0x38')]['offset']);}return _0x1ddf5d[_0xc277('0x57')](_0x5217dd);}})[_0xc277('0x1a')](function(_0x57fd1a){if(_0x57fd1a){return _0x57fd1a?{'count':_0xe41415,'rows':_0x57fd1a}:null;}})[_0xc277('0x1a')](respondWithResult(_0x593d5e,null))['catch'](handleError(_0x593d5e,null));};