a6847f78114f1c488ca65c5a15f0fdde055f4887
[motion2.git] / server / api / intSalesforceAccount / intSalesforceAccount.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 _0x1099=['result','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','save','update','stack','name','map','SalesforceAccount','rawAttributes','fieldName','key','keys','query','filters','intersection','model','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','findAll','rows','show','params','fields','length','includeAll','include','options','find','create','body','destroy','getConfigurations','findOne','SalesforceConfiguration','addConfiguration','AccountId','Subjects','Descriptions','getDescriptions','channel','SalesforceField','getFields','remoteUri','clientId','clientSecret','username','password','securityToken','slice','substring','Connection','login','isNil','ticketType','sobject','describe','ActivityDate','Subject','Description','boolean','textarea','phone','remove','includes','custom','label','true','False','false','test','statusCode','send','Wrong\x20credentials','rimraf','fast-json-patch','request-promise','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','request','then','info','SalesforceAccount,\x20%s,\x20%s','debug','SalesforceAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message'];(function(_0x575a00,_0x181420){var _0x13b8d4=function(_0x44f9f9){while(--_0x44f9f9){_0x575a00['push'](_0x575a00['shift']());}};_0x13b8d4(++_0x181420);}(_0x1099,0xda));var _0x9109=function(_0x3fceab,_0x3e770f){_0x3fceab=_0x3fceab-0x0;var _0x3b638b=_0x1099[_0x3fceab];return _0x3b638b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9109('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9109('0x1'));var rp=require(_0x9109('0x2'));var moment=require('moment');var BPromise=require(_0x9109('0x3'));var Mustache=require(_0x9109('0x4'));var util=require('util');var path=require(_0x9109('0x5'));var sox=require('sox');var csv=require(_0x9109('0x6'));var ejs=require(_0x9109('0x7'));var fs=require('fs');var fs_extra=require(_0x9109('0x8'));var _=require(_0x9109('0x9'));var squel=require('squel');var crypto=require(_0x9109('0xa'));var jsforce=require(_0x9109('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x9109('0x6'));var querystring=require('querystring');var Papa=require(_0x9109('0xc'));var Redis=require('ioredis');var authService=require(_0x9109('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x9109('0xe'));var hardwareService=require(_0x9109('0xf'));var logger=require(_0x9109('0x10'))(_0x9109('0x11'));var utils=require(_0x9109('0x12'));var config=require(_0x9109('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x9109('0x14'))['db'];var integrations=require(_0x9109('0x15'));var jayson=require(_0x9109('0x16'));var client=jayson[_0x9109('0x17')][_0x9109('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x49333d,_0x9a6877,_0x10cbe9,_0x27721f){return new BPromise(function(_0x225f2a,_0x171ecd){var _0x3b3d36=_0x27721f||client;return _0x3b3d36[_0x9109('0x19')](_0x49333d,_0x10cbe9)[_0x9109('0x1a')](function(_0x2adaf1){logger[_0x9109('0x1b')](_0x9109('0x1c'),_0x9a6877,'request\x20sent');logger[_0x9109('0x1d')](_0x9109('0x1e'),_0x9a6877,_0x9109('0x1f'),JSON[_0x9109('0x20')](_0x2adaf1));if(_0x2adaf1[_0x9109('0x21')]){if(_0x2adaf1['error'][_0x9109('0x22')]===0x1f4){logger[_0x9109('0x21')](_0x9109('0x1c'),_0x9a6877,_0x2adaf1['error']['message']);return _0x171ecd(_0x2adaf1[_0x9109('0x21')][_0x9109('0x23')]);}logger[_0x9109('0x21')](_0x9109('0x1c'),_0x9a6877,_0x2adaf1[_0x9109('0x21')]['message']);return _0x225f2a(_0x2adaf1[_0x9109('0x21')][_0x9109('0x23')]);}else{logger['info']('SalesforceAccount,\x20%s,\x20%s',_0x9a6877,'request\x20sent');_0x225f2a(_0x2adaf1[_0x9109('0x24')][_0x9109('0x23')]);}})[_0x9109('0x25')](function(_0x5062d3){logger[_0x9109('0x21')](_0x9109('0x1c'),_0x9a6877,_0x5062d3);_0x171ecd(_0x5062d3);});});}function respondWithStatusCode(_0x6d1170,_0x21dbd2){_0x21dbd2=_0x21dbd2||0xcc;return function(_0xdab59e){if(_0xdab59e){return _0x6d1170[_0x9109('0x26')](_0x21dbd2);}return _0x6d1170[_0x9109('0x27')](_0x21dbd2)[_0x9109('0x28')]();};}function respondWithResult(_0x41a31f,_0x4042c9){_0x4042c9=_0x4042c9||0xc8;return function(_0x370d90){if(_0x370d90){return _0x41a31f[_0x9109('0x27')](_0x4042c9)[_0x9109('0x29')](_0x370d90);}};}function respondWithFilteredResult(_0x3f922b,_0x487832){return function(_0x301766){if(_0x301766){var _0x5c7797=_0x301766[_0x9109('0x2a')],_0x4bfe30=_0x487832['offset'],_0xcfcbaa=_0x487832[_0x9109('0x2b')]+_0x487832[_0x9109('0x2c')],_0x5151bb;if(_0xcfcbaa>=_0x5c7797){_0xcfcbaa=_0x5c7797;_0x5151bb=0xc8;}else{_0x5151bb=0xce;}_0x3f922b[_0x9109('0x27')](_0x5151bb);return _0x3f922b['set'](_0x9109('0x2d'),_0x4bfe30+'-'+_0xcfcbaa+'/'+_0x5c7797)[_0x9109('0x29')](_0x301766);}return null;};}function patchUpdates(_0x24b22a){return function(_0x4cb468){try{jsonpatch[_0x9109('0x2e')](_0x4cb468,_0x24b22a,!![]);}catch(_0x447c40){return BPromise['reject'](_0x447c40);}return _0x4cb468[_0x9109('0x2f')]();};}function saveUpdates(_0x22e743,_0x5e0c66){return function(_0x250ba3){if(_0x250ba3){return _0x250ba3[_0x9109('0x30')](_0x22e743)[_0x9109('0x1a')](function(_0x2ed632){return _0x2ed632;});}return null;};}function removeEntity(_0x2ac857,_0x116b7a){return function(_0x195175){if(_0x195175){return _0x195175['destroy']()[_0x9109('0x1a')](function(){_0x2ac857['status'](0xcc)[_0x9109('0x28')]();});}};}function handleEntityNotFound(_0xb8612e,_0x3eb29f){return function(_0x370fb9){if(!_0x370fb9){_0xb8612e[_0x9109('0x26')](0x194);}return _0x370fb9;};}function handleError(_0x39f678,_0x25b8ae){_0x25b8ae=_0x25b8ae||0x1f4;return function(_0xe938b6){logger[_0x9109('0x21')](_0xe938b6[_0x9109('0x31')]);if(_0xe938b6['name']){delete _0xe938b6[_0x9109('0x32')];}_0x39f678[_0x9109('0x27')](_0x25b8ae)['send'](_0xe938b6);};}exports['index']=function(_0x1c653e,_0x18d7d0){var _0xd8d210={},_0x128647={},_0x7f0688={'count':0x0,'rows':[]};var _0xee45af=_[_0x9109('0x33')](db[_0x9109('0x34')][_0x9109('0x35')],function(_0x172b31){return{'name':_0x172b31[_0x9109('0x36')],'type':_0x172b31['type'][_0x9109('0x37')]};});_0x128647['model']=_[_0x9109('0x33')](_0xee45af,'name');_0x128647['query']=_[_0x9109('0x38')](_0x1c653e[_0x9109('0x39')]);_0x128647[_0x9109('0x3a')]=_[_0x9109('0x3b')](_0x128647[_0x9109('0x3c')],_0x128647[_0x9109('0x39')]);_0xd8d210[_0x9109('0x3d')]=_[_0x9109('0x3b')](_0x128647['model'],qs['fields'](_0x1c653e['query']['fields']));_0xd8d210['attributes']=_0xd8d210[_0x9109('0x3d')]['length']?_0xd8d210[_0x9109('0x3d')]:_0x128647[_0x9109('0x3c')];if(!_0x1c653e['query'][_0x9109('0x3e')](_0x9109('0x3f'))){_0xd8d210[_0x9109('0x2c')]=qs[_0x9109('0x2c')](_0x1c653e[_0x9109('0x39')]['limit']);_0xd8d210[_0x9109('0x2b')]=qs['offset'](_0x1c653e[_0x9109('0x39')][_0x9109('0x2b')]);}_0xd8d210[_0x9109('0x40')]=qs[_0x9109('0x41')](_0x1c653e[_0x9109('0x39')]['sort']);_0xd8d210[_0x9109('0x42')]=qs[_0x9109('0x3a')](_[_0x9109('0x43')](_0x1c653e[_0x9109('0x39')],_0x128647[_0x9109('0x3a')]),_0xee45af);if(_0x1c653e[_0x9109('0x39')][_0x9109('0x44')]){_0xd8d210['where']=_[_0x9109('0x45')](_0xd8d210[_0x9109('0x42')],{'$or':_[_0x9109('0x33')](_0xee45af,function(_0x46a553){if(_0x46a553[_0x9109('0x46')]!==_0x9109('0x47')){var _0x375fdb={};_0x375fdb[_0x46a553[_0x9109('0x32')]]={'$like':'%'+_0x1c653e[_0x9109('0x39')][_0x9109('0x44')]+'%'};return _0x375fdb;}})});}_0xd8d210=_[_0x9109('0x45')]({},_0xd8d210,_0x1c653e['options']);var _0x4feb5b={'where':_0xd8d210[_0x9109('0x42')]};return db[_0x9109('0x34')][_0x9109('0x2a')](_0x4feb5b)['then'](function(_0x2ba37b){_0x7f0688[_0x9109('0x2a')]=_0x2ba37b;if(_0x1c653e[_0x9109('0x39')]['includeAll']){_0xd8d210['include']=[{'all':!![]}];}return db[_0x9109('0x34')][_0x9109('0x48')](_0xd8d210);})[_0x9109('0x1a')](function(_0x5de177){_0x7f0688[_0x9109('0x49')]=_0x5de177;return _0x7f0688;})[_0x9109('0x1a')](respondWithFilteredResult(_0x18d7d0,_0xd8d210))['catch'](handleError(_0x18d7d0,null));};exports[_0x9109('0x4a')]=function(_0x26df8d,_0x4cafad){var _0x17bf73={'raw':![],'where':{'id':_0x26df8d[_0x9109('0x4b')]['id']}},_0x2b57c2={};_0x2b57c2[_0x9109('0x3c')]=_[_0x9109('0x38')](db[_0x9109('0x34')][_0x9109('0x35')]);_0x2b57c2['query']=_[_0x9109('0x38')](_0x26df8d['query']);_0x2b57c2[_0x9109('0x3a')]=_[_0x9109('0x3b')](_0x2b57c2[_0x9109('0x3c')],_0x2b57c2['query']);_0x17bf73[_0x9109('0x3d')]=_['intersection'](_0x2b57c2[_0x9109('0x3c')],qs[_0x9109('0x4c')](_0x26df8d[_0x9109('0x39')][_0x9109('0x4c')]));_0x17bf73[_0x9109('0x3d')]=_0x17bf73[_0x9109('0x3d')][_0x9109('0x4d')]?_0x17bf73[_0x9109('0x3d')]:_0x2b57c2['model'];if(_0x26df8d[_0x9109('0x39')][_0x9109('0x4e')]){_0x17bf73[_0x9109('0x4f')]=[{'all':!![]}];}_0x17bf73=_[_0x9109('0x45')]({},_0x17bf73,_0x26df8d[_0x9109('0x50')]);return db['SalesforceAccount'][_0x9109('0x51')](_0x17bf73)[_0x9109('0x1a')](handleEntityNotFound(_0x4cafad,null))['then'](respondWithResult(_0x4cafad,null))[_0x9109('0x25')](handleError(_0x4cafad,null));};exports['create']=function(_0x53d7de,_0x51eaa4){return db[_0x9109('0x34')][_0x9109('0x52')](_0x53d7de[_0x9109('0x53')],{})[_0x9109('0x1a')](respondWithResult(_0x51eaa4,0xc9))['catch'](handleError(_0x51eaa4,null));};exports[_0x9109('0x30')]=function(_0x12aaae,_0x1ac96f){if(_0x12aaae[_0x9109('0x53')]['id']){delete _0x12aaae[_0x9109('0x53')]['id'];}return db[_0x9109('0x34')][_0x9109('0x51')]({'where':{'id':_0x12aaae[_0x9109('0x4b')]['id']}})[_0x9109('0x1a')](handleEntityNotFound(_0x1ac96f,null))[_0x9109('0x1a')](saveUpdates(_0x12aaae[_0x9109('0x53')],null))[_0x9109('0x1a')](respondWithResult(_0x1ac96f,null))[_0x9109('0x25')](handleError(_0x1ac96f,null));};exports[_0x9109('0x54')]=function(_0x1e036d,_0x169ace){return db['SalesforceAccount'][_0x9109('0x51')]({'where':{'id':_0x1e036d[_0x9109('0x4b')]['id']}})[_0x9109('0x1a')](handleEntityNotFound(_0x169ace,null))[_0x9109('0x1a')](removeEntity(_0x169ace,null))[_0x9109('0x25')](handleError(_0x169ace,null));};exports[_0x9109('0x55')]=function(_0x2aadd8,_0x9de088,_0x3b9b31){var _0x364978={};var _0x2039bf={};var _0x25f85d;var _0x285140;return db[_0x9109('0x34')][_0x9109('0x56')]({'where':{'id':_0x2aadd8[_0x9109('0x4b')]['id']}})[_0x9109('0x1a')](handleEntityNotFound(_0x9de088,null))[_0x9109('0x1a')](function(_0x2dfe5a){if(_0x2dfe5a){_0x25f85d=_0x2dfe5a;_0x2039bf[_0x9109('0x3c')]=_[_0x9109('0x38')](db[_0x9109('0x57')][_0x9109('0x35')]);_0x2039bf[_0x9109('0x39')]=_[_0x9109('0x38')](_0x2aadd8['query']);_0x2039bf[_0x9109('0x3a')]=_[_0x9109('0x3b')](_0x2039bf[_0x9109('0x3c')],_0x2039bf[_0x9109('0x39')]);_0x364978['attributes']=_['intersection'](_0x2039bf[_0x9109('0x3c')],qs[_0x9109('0x4c')](_0x2aadd8[_0x9109('0x39')]['fields']));_0x364978[_0x9109('0x3d')]=_0x364978[_0x9109('0x3d')][_0x9109('0x4d')]?_0x364978[_0x9109('0x3d')]:_0x2039bf[_0x9109('0x3c')];_0x364978[_0x9109('0x40')]=qs['sort'](_0x2aadd8[_0x9109('0x39')][_0x9109('0x41')]);_0x364978[_0x9109('0x42')]=qs[_0x9109('0x3a')](_['pick'](_0x2aadd8[_0x9109('0x39')],_0x2039bf[_0x9109('0x3a')]));if(_0x2aadd8[_0x9109('0x39')][_0x9109('0x44')]){_0x364978[_0x9109('0x42')]=_[_0x9109('0x45')](_0x364978[_0x9109('0x42')],{'$or':_[_0x9109('0x33')](_0x364978['attributes'],function(_0x199b4f){var _0x78697={};_0x78697[_0x199b4f]={'$like':'%'+_0x2aadd8[_0x9109('0x39')][_0x9109('0x44')]+'%'};return _0x78697;})});}_0x364978=_[_0x9109('0x45')]({},_0x364978,_0x2aadd8[_0x9109('0x50')]);return _0x25f85d[_0x9109('0x55')](_0x364978);}})[_0x9109('0x1a')](function(_0x465e2b){if(_0x465e2b){_0x285140=_0x465e2b[_0x9109('0x4d')];if(!_0x2aadd8[_0x9109('0x39')][_0x9109('0x3e')](_0x9109('0x3f'))){_0x364978[_0x9109('0x2c')]=qs['limit'](_0x2aadd8[_0x9109('0x39')]['limit']);_0x364978['offset']=qs[_0x9109('0x2b')](_0x2aadd8[_0x9109('0x39')]['offset']);}return _0x25f85d['getConfigurations'](_0x364978);}})[_0x9109('0x1a')](function(_0x395871){if(_0x395871){return _0x395871?{'count':_0x285140,'rows':_0x395871}:null;}})[_0x9109('0x1a')](respondWithResult(_0x9de088,null))[_0x9109('0x25')](handleError(_0x9de088,null));};exports[_0x9109('0x58')]=function(_0x36bf72,_0x25dd45,_0x4f597c){if(_0x36bf72[_0x9109('0x53')]['id']){delete _0x36bf72[_0x9109('0x53')]['id'];}return db['SalesforceAccount']['findOne']({'where':{'id':_0x36bf72[_0x9109('0x4b')]['id']}})[_0x9109('0x1a')](handleEntityNotFound(_0x25dd45,null))[_0x9109('0x1a')](function(_0x10f0d0){if(_0x10f0d0){_0x36bf72[_0x9109('0x53')][_0x9109('0x59')]=_0x10f0d0['id'];_0x36bf72[_0x9109('0x53')][_0x9109('0x5a')]=integrations['getSubjects'](_0x36bf72[_0x9109('0x53')]['channel'],_0x36bf72[_0x9109('0x53')][_0x9109('0x46')]);_0x36bf72[_0x9109('0x53')][_0x9109('0x5b')]=integrations[_0x9109('0x5c')](_0x36bf72[_0x9109('0x53')][_0x9109('0x5d')],_0x36bf72[_0x9109('0x53')][_0x9109('0x46')]);return db[_0x9109('0x57')][_0x9109('0x52')](_0x36bf72[_0x9109('0x53')],{'include':[{'model':db[_0x9109('0x5e')],'as':_0x9109('0x5a')},{'model':db[_0x9109('0x5e')],'as':_0x9109('0x5b')}]});}return null;})[_0x9109('0x1a')](respondWithResult(_0x25dd45,null))[_0x9109('0x25')](handleError(_0x25dd45,null));};exports[_0x9109('0x5f')]=function(_0x217fc6,_0x136186,_0x1367f5){var _0x5a9a6c;var _0x5439cb='';var _0x31244c='Task';return db[_0x9109('0x34')][_0x9109('0x56')]({'where':{'id':_0x217fc6[_0x9109('0x4b')]['id']},'attributes':['id',_0x9109('0x60'),_0x9109('0x61'),_0x9109('0x62'),_0x9109('0x63'),_0x9109('0x64'),_0x9109('0x65')]})[_0x9109('0x1a')](handleEntityNotFound(_0x136186,null))[_0x9109('0x1a')](function(_0x4e55d1){if(_0x4e55d1){_0x5439cb=_0x4e55d1[_0x9109('0x60')];var _0x2bdf23=_0x5439cb[_0x9109('0x66')](-0x1);if(_0x2bdf23==='/'){_0x5439cb=_0x5439cb[_0x9109('0x67')](0x0,_0x5439cb['lastIndexOf'](_0x2bdf23));}_0x5a9a6c=new jsforce[(_0x9109('0x68'))]({'oauth2':{'loginUrl':_0x5439cb,'clientId':_0x4e55d1[_0x9109('0x61')],'clientSecret':_0x4e55d1[_0x9109('0x62')]}});return _0x5a9a6c[_0x9109('0x69')](_0x4e55d1[_0x9109('0x63')],_0x4e55d1['password']['concat'](_0x4e55d1[_0x9109('0x65')]));}})[_0x9109('0x1a')](function(_0x202409){if(_0x202409){if(!_[_0x9109('0x6a')](_0x217fc6[_0x9109('0x39')][_0x9109('0x6b')])){_0x31244c=_0x217fc6['query'][_0x9109('0x6b')];}return _0x5a9a6c[_0x9109('0x6c')](_0x31244c)[_0x9109('0x6d')]();}})[_0x9109('0x1a')](function(_0x19b53a){var _0x317739=['OwnerId',_0x9109('0x6e'),'IsReminderSet','IsRecurrence',_0x9109('0x6f'),_0x9109('0x70')];var _0x5635f0=['string','int','picklist',_0x9109('0x71'),'email',_0x9109('0x72'),_0x9109('0x73')];if(_0x19b53a){_[_0x9109('0x74')](_0x19b53a[_0x9109('0x4c')],function(_0x480a78){return _0x317739[_0x9109('0x75')](_0x480a78[_0x9109('0x32')])||!_0x5635f0['includes'](_0x480a78[_0x9109('0x46')]);});return{'count':_0x19b53a['fields']['length'],'rows':_['map'](_0x19b53a[_0x9109('0x4c')],function(_0x266b3a){return{'id':_0x266b3a[_0x9109('0x32')],'name':_0x266b3a['label'],'custom':_0x266b3a[_0x9109('0x76')],'options':_0x266b3a['picklistValues']['length']>0x0?_[_0x9109('0x33')](_0x266b3a['picklistValues'],function(_0x51381d){return{'name':_0x51381d[_0x9109('0x77')],'value':_0x51381d['value']};}):_0x266b3a[_0x9109('0x46')]==_0x9109('0x71')?[{'name':'True','value':_0x9109('0x78')},{'name':_0x9109('0x79'),'value':_0x9109('0x7a')}]:[]};})};}})[_0x9109('0x1a')](respondWithResult(_0x136186,null))[_0x9109('0x25')](function(_0x17deb3){var _0x7520cf=_0x217fc6[_0x9109('0x39')][_0x9109('0x7b')]?0x1f4:_0x17deb3[_0x9109('0x7c')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x9109('0x5f'),_0x7520cf,JSON['stringify'](_0x17deb3));delete _0x17deb3['name'];if(_0x7520cf===0x191){_0x7520cf=0x190;}_0x136186['status'](_0x7520cf)[_0x9109('0x7d')](_0x217fc6[_0x9109('0x39')][_0x9109('0x7b')]?{'message':_0x9109('0x7e'),'statusCode':_0x17deb3[_0x9109('0x7c')]}:_0x17deb3);});};