fc8fa546ea86d2364c39a2fb31e570b858fda794
[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 _0xb26c=['error','stack','name','send','index','map','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','include','findAll','rows','catch','show','params','keys','SalesforceAccount','rawAttributes','options','find','create','body','destroy','getConfigurations','AccountId','getSubjects','Descriptions','getDescriptions','channel','Subjects','SalesforceField','getFields','Task','findOne','clientSecret','password','securityToken','slice','substring','lastIndexOf','clientId','login','username','isNil','ticketType','sobject','describe','OwnerId','ActivityDate','IsReminderSet','Subject','Description','string','picklist','boolean','email','textarea','remove','includes','custom','picklistValues','False','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../components/integrations/configuration','sendStatus','status','json','offset','undefined','count','limit','set','apply','reject','update','then','end'];(function(_0x1eed3b,_0x4564f5){var _0x5ce406=function(_0x5e7e18){while(--_0x5e7e18){_0x1eed3b['push'](_0x1eed3b['shift']());}};_0x5ce406(++_0x4564f5);}(_0xb26c,0x1aa));var _0xcb26=function(_0x52a3e9,_0x419096){_0x52a3e9=_0x52a3e9-0x0;var _0x44629d=_0xb26c[_0x52a3e9];return _0x44629d;};'use strict';var emlformat=require(_0xcb26('0x0'));var rimraf=require(_0xcb26('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xcb26('0x2'));var rp=require(_0xcb26('0x3'));var moment=require(_0xcb26('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xcb26('0x5'));var util=require(_0xcb26('0x6'));var path=require('path');var sox=require(_0xcb26('0x7'));var csv=require(_0xcb26('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xcb26('0x9'));var _=require('lodash');var squel=require(_0xcb26('0xa'));var crypto=require(_0xcb26('0xb'));var jsforce=require(_0xcb26('0xc'));var deskjs=require(_0xcb26('0xd'));var toCsv=require(_0xcb26('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xcb26('0xe'));var qs=require(_0xcb26('0xf'));var as=require(_0xcb26('0x10'));var hardwareService=require(_0xcb26('0x11'));var logger=require(_0xcb26('0x12'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xcb26('0x13'));var db=require('../../mysqldb')['db'];var integrations=require(_0xcb26('0x14'));function respondWithStatusCode(_0x40eee5,_0x5f21c7){_0x5f21c7=_0x5f21c7||0xcc;return function(_0x475ce4){if(_0x475ce4){return _0x40eee5[_0xcb26('0x15')](_0x5f21c7);}return _0x40eee5['status'](_0x5f21c7)['end']();};}function respondWithResult(_0x3a7c6e,_0x331951){_0x331951=_0x331951||0xc8;return function(_0xbbaeaa){if(_0xbbaeaa){return _0x3a7c6e[_0xcb26('0x16')](_0x331951)[_0xcb26('0x17')](_0xbbaeaa);}};}function respondWithFilteredResult(_0x5a3811,_0x543f33){return function(_0xf65705){if(_0xf65705){var _0x3797f3=typeof _0x543f33[_0xcb26('0x18')]===_0xcb26('0x19')&&typeof _0x543f33['limit']==='undefined';var _0x2d5640=_0xf65705[_0xcb26('0x1a')];var _0x11d229=_0x3797f3?0x0:_0x543f33[_0xcb26('0x18')];var _0x5998fc=_0x3797f3?_0xf65705[_0xcb26('0x1a')]:_0x543f33[_0xcb26('0x18')]+_0x543f33[_0xcb26('0x1b')];var _0x433012;if(_0x5998fc>=_0x2d5640){_0x5998fc=_0x2d5640;_0x433012=0xc8;}else{_0x433012=0xce;}_0x5a3811[_0xcb26('0x16')](_0x433012);return _0x5a3811[_0xcb26('0x1c')]('Content-Range',_0x11d229+'-'+_0x5998fc+'/'+_0x2d5640)[_0xcb26('0x17')](_0xf65705);}return null;};}function patchUpdates(_0x38e53f){return function(_0x2c4306){try{jsonpatch[_0xcb26('0x1d')](_0x2c4306,_0x38e53f,!![]);}catch(_0xe42db2){return BPromise[_0xcb26('0x1e')](_0xe42db2);}return _0x2c4306['save']();};}function saveUpdates(_0x21ebde,_0x3e9fd2){return function(_0x447aad){if(_0x447aad){return _0x447aad[_0xcb26('0x1f')](_0x21ebde)[_0xcb26('0x20')](function(_0x271f0d){return _0x271f0d;});}return null;};}function removeEntity(_0x3a84ac,_0x535ede){return function(_0x5a260a){if(_0x5a260a){return _0x5a260a['destroy']()['then'](function(){_0x3a84ac[_0xcb26('0x16')](0xcc)[_0xcb26('0x21')]();});}};}function handleEntityNotFound(_0x48857c,_0x261e10){return function(_0x1024db){if(!_0x1024db){_0x48857c[_0xcb26('0x15')](0x194);}return _0x1024db;};}function handleError(_0xb54630,_0x54aef9){_0x54aef9=_0x54aef9||0x1f4;return function(_0x31d298){logger[_0xcb26('0x22')](_0x31d298[_0xcb26('0x23')]);if(_0x31d298['name']){delete _0x31d298[_0xcb26('0x24')];}_0xb54630[_0xcb26('0x16')](_0x54aef9)[_0xcb26('0x25')](_0x31d298);};}exports[_0xcb26('0x26')]=function(_0x43c184,_0x213be9){var _0x1ac1eb={},_0x304e7e={},_0x5e6831={'count':0x0,'rows':[]};var _0x28ada7=_[_0xcb26('0x27')](db['SalesforceAccount']['rawAttributes'],function(_0x4848c6){return{'name':_0x4848c6[_0xcb26('0x28')],'type':_0x4848c6[_0xcb26('0x29')]['key']};});_0x304e7e[_0xcb26('0x2a')]=_[_0xcb26('0x27')](_0x28ada7,_0xcb26('0x24'));_0x304e7e[_0xcb26('0x2b')]=_['keys'](_0x43c184['query']);_0x304e7e[_0xcb26('0x2c')]=_[_0xcb26('0x2d')](_0x304e7e[_0xcb26('0x2a')],_0x304e7e['query']);_0x1ac1eb[_0xcb26('0x2e')]=_['intersection'](_0x304e7e[_0xcb26('0x2a')],qs[_0xcb26('0x2f')](_0x43c184[_0xcb26('0x2b')][_0xcb26('0x2f')]));_0x1ac1eb[_0xcb26('0x2e')]=_0x1ac1eb[_0xcb26('0x2e')][_0xcb26('0x30')]?_0x1ac1eb[_0xcb26('0x2e')]:_0x304e7e[_0xcb26('0x2a')];if(!_0x43c184[_0xcb26('0x2b')][_0xcb26('0x31')](_0xcb26('0x32'))){_0x1ac1eb['limit']=qs['limit'](_0x43c184['query']['limit']);_0x1ac1eb['offset']=qs[_0xcb26('0x18')](_0x43c184[_0xcb26('0x2b')][_0xcb26('0x18')]);}_0x1ac1eb[_0xcb26('0x33')]=qs[_0xcb26('0x34')](_0x43c184[_0xcb26('0x2b')][_0xcb26('0x34')]);_0x1ac1eb[_0xcb26('0x35')]=qs[_0xcb26('0x2c')](_[_0xcb26('0x36')](_0x43c184[_0xcb26('0x2b')],_0x304e7e['filters']),_0x28ada7);if(_0x43c184[_0xcb26('0x2b')][_0xcb26('0x37')]){_0x1ac1eb[_0xcb26('0x35')]=_[_0xcb26('0x38')](_0x1ac1eb['where'],{'$or':_[_0xcb26('0x27')](_0x28ada7,function(_0x57f1f5){if(_0x57f1f5[_0xcb26('0x29')]!==_0xcb26('0x39')){var _0x593f31={};_0x593f31[_0x57f1f5['name']]={'$like':'%'+_0x43c184['query'][_0xcb26('0x37')]+'%'};return _0x593f31;}})});}_0x1ac1eb=_[_0xcb26('0x38')]({},_0x1ac1eb,_0x43c184['options']);var _0x230da1={'where':_0x1ac1eb[_0xcb26('0x35')]};return db['SalesforceAccount'][_0xcb26('0x1a')](_0x230da1)[_0xcb26('0x20')](function(_0x41b9cb){_0x5e6831[_0xcb26('0x1a')]=_0x41b9cb;if(_0x43c184[_0xcb26('0x2b')]['includeAll']){_0x1ac1eb[_0xcb26('0x3a')]=[{'all':!![]}];}return db['SalesforceAccount'][_0xcb26('0x3b')](_0x1ac1eb);})['then'](function(_0x34de68){_0x5e6831[_0xcb26('0x3c')]=_0x34de68;return _0x5e6831;})[_0xcb26('0x20')](respondWithFilteredResult(_0x213be9,_0x1ac1eb))[_0xcb26('0x3d')](handleError(_0x213be9,null));};exports[_0xcb26('0x3e')]=function(_0x24deed,_0x401af3){var _0x11c71c={'raw':![],'where':{'id':_0x24deed[_0xcb26('0x3f')]['id']}},_0x1db32a={};_0x1db32a[_0xcb26('0x2a')]=_[_0xcb26('0x40')](db[_0xcb26('0x41')][_0xcb26('0x42')]);_0x1db32a[_0xcb26('0x2b')]=_['keys'](_0x24deed[_0xcb26('0x2b')]);_0x1db32a['filters']=_[_0xcb26('0x2d')](_0x1db32a['model'],_0x1db32a[_0xcb26('0x2b')]);_0x11c71c[_0xcb26('0x2e')]=_[_0xcb26('0x2d')](_0x1db32a[_0xcb26('0x2a')],qs[_0xcb26('0x2f')](_0x24deed['query']['fields']));_0x11c71c[_0xcb26('0x2e')]=_0x11c71c[_0xcb26('0x2e')]['length']?_0x11c71c[_0xcb26('0x2e')]:_0x1db32a[_0xcb26('0x2a')];if(_0x24deed[_0xcb26('0x2b')]['includeAll']){_0x11c71c[_0xcb26('0x3a')]=[{'all':!![]}];}_0x11c71c=_[_0xcb26('0x38')]({},_0x11c71c,_0x24deed[_0xcb26('0x43')]);return db['SalesforceAccount'][_0xcb26('0x44')](_0x11c71c)['then'](handleEntityNotFound(_0x401af3,null))[_0xcb26('0x20')](respondWithResult(_0x401af3,null))[_0xcb26('0x3d')](handleError(_0x401af3,null));};exports[_0xcb26('0x45')]=function(_0x1aefe2,_0x90a403){return db['SalesforceAccount'][_0xcb26('0x45')](_0x1aefe2[_0xcb26('0x46')],{})[_0xcb26('0x20')](respondWithResult(_0x90a403,0xc9))[_0xcb26('0x3d')](handleError(_0x90a403,null));};exports[_0xcb26('0x1f')]=function(_0x174eea,_0x3088ca){if(_0x174eea['body']['id']){delete _0x174eea[_0xcb26('0x46')]['id'];}return db[_0xcb26('0x41')][_0xcb26('0x44')]({'where':{'id':_0x174eea[_0xcb26('0x3f')]['id']}})[_0xcb26('0x20')](handleEntityNotFound(_0x3088ca,null))[_0xcb26('0x20')](saveUpdates(_0x174eea[_0xcb26('0x46')],null))[_0xcb26('0x20')](respondWithResult(_0x3088ca,null))[_0xcb26('0x3d')](handleError(_0x3088ca,null));};exports[_0xcb26('0x47')]=function(_0x2c5cd0,_0x21b3bf){return db[_0xcb26('0x41')][_0xcb26('0x44')]({'where':{'id':_0x2c5cd0[_0xcb26('0x3f')]['id']}})['then'](handleEntityNotFound(_0x21b3bf,null))['then'](removeEntity(_0x21b3bf,null))[_0xcb26('0x3d')](handleError(_0x21b3bf,null));};exports[_0xcb26('0x48')]=function(_0x4b9d38,_0x39edde,_0x2cb2c5){var _0x10ea96={};var _0x87af51={};var _0x15fc93;var _0x1dac6e;return db[_0xcb26('0x41')]['findOne']({'where':{'id':_0x4b9d38[_0xcb26('0x3f')]['id']}})[_0xcb26('0x20')](handleEntityNotFound(_0x39edde,null))[_0xcb26('0x20')](function(_0x58b592){if(_0x58b592){_0x15fc93=_0x58b592;_0x87af51[_0xcb26('0x2a')]=_[_0xcb26('0x40')](db['SalesforceConfiguration'][_0xcb26('0x42')]);_0x87af51[_0xcb26('0x2b')]=_['keys'](_0x4b9d38[_0xcb26('0x2b')]);_0x87af51[_0xcb26('0x2c')]=_[_0xcb26('0x2d')](_0x87af51[_0xcb26('0x2a')],_0x87af51[_0xcb26('0x2b')]);_0x10ea96[_0xcb26('0x2e')]=_['intersection'](_0x87af51[_0xcb26('0x2a')],qs[_0xcb26('0x2f')](_0x4b9d38[_0xcb26('0x2b')][_0xcb26('0x2f')]));_0x10ea96['attributes']=_0x10ea96[_0xcb26('0x2e')][_0xcb26('0x30')]?_0x10ea96[_0xcb26('0x2e')]:_0x87af51['model'];_0x10ea96[_0xcb26('0x33')]=qs[_0xcb26('0x34')](_0x4b9d38[_0xcb26('0x2b')][_0xcb26('0x34')]);_0x10ea96[_0xcb26('0x35')]=qs['filters'](_[_0xcb26('0x36')](_0x4b9d38[_0xcb26('0x2b')],_0x87af51[_0xcb26('0x2c')]));if(_0x4b9d38[_0xcb26('0x2b')][_0xcb26('0x37')]){_0x10ea96[_0xcb26('0x35')]=_[_0xcb26('0x38')](_0x10ea96[_0xcb26('0x35')],{'$or':_['map'](_0x10ea96['attributes'],function(_0x138a99){var _0x48edec={};_0x48edec[_0x138a99]={'$like':'%'+_0x4b9d38[_0xcb26('0x2b')][_0xcb26('0x37')]+'%'};return _0x48edec;})});}_0x10ea96=_[_0xcb26('0x38')]({},_0x10ea96,_0x4b9d38[_0xcb26('0x43')]);return _0x15fc93['getConfigurations'](_0x10ea96);}})[_0xcb26('0x20')](function(_0x4849df){if(_0x4849df){_0x1dac6e=_0x4849df[_0xcb26('0x30')];if(!_0x4b9d38[_0xcb26('0x2b')][_0xcb26('0x31')]('nolimit')){_0x10ea96[_0xcb26('0x1b')]=qs[_0xcb26('0x1b')](_0x4b9d38['query'][_0xcb26('0x1b')]);_0x10ea96[_0xcb26('0x18')]=qs['offset'](_0x4b9d38[_0xcb26('0x2b')][_0xcb26('0x18')]);}return _0x15fc93[_0xcb26('0x48')](_0x10ea96);}})[_0xcb26('0x20')](function(_0x2ebefd){if(_0x2ebefd){return _0x2ebefd?{'count':_0x1dac6e,'rows':_0x2ebefd}:null;}})[_0xcb26('0x20')](respondWithResult(_0x39edde,null))[_0xcb26('0x3d')](handleError(_0x39edde,null));};exports['addConfiguration']=function(_0x533731,_0x46f814,_0x3d3d63){if(_0x533731[_0xcb26('0x46')]['id']){delete _0x533731[_0xcb26('0x46')]['id'];}return db['SalesforceAccount']['findOne']({'where':{'id':_0x533731[_0xcb26('0x3f')]['id']}})[_0xcb26('0x20')](handleEntityNotFound(_0x46f814,null))['then'](function(_0x57f999){if(_0x57f999){_0x533731[_0xcb26('0x46')][_0xcb26('0x49')]=_0x57f999['id'];_0x533731[_0xcb26('0x46')]['Subjects']=integrations[_0xcb26('0x4a')](_0x533731[_0xcb26('0x46')]['channel'],_0x533731[_0xcb26('0x46')]['type']);_0x533731['body'][_0xcb26('0x4b')]=integrations[_0xcb26('0x4c')](_0x533731[_0xcb26('0x46')][_0xcb26('0x4d')],_0x533731[_0xcb26('0x46')][_0xcb26('0x29')]);return db['SalesforceConfiguration'][_0xcb26('0x45')](_0x533731[_0xcb26('0x46')],{'include':[{'model':db['SalesforceField'],'as':_0xcb26('0x4e')},{'model':db[_0xcb26('0x4f')],'as':'Descriptions'}]});}return null;})[_0xcb26('0x20')](respondWithResult(_0x46f814,null))[_0xcb26('0x3d')](handleError(_0x46f814,null));};exports[_0xcb26('0x50')]=function(_0x1eac21,_0x31ce5e,_0x19cf6e){var _0x15431f;var _0x513b85='';var _0x22ec10=_0xcb26('0x51');return db[_0xcb26('0x41')][_0xcb26('0x52')]({'where':{'id':_0x1eac21['params']['id']},'attributes':['id','remoteUri','clientId',_0xcb26('0x53'),'username',_0xcb26('0x54'),_0xcb26('0x55')]})['then'](handleEntityNotFound(_0x31ce5e,null))[_0xcb26('0x20')](function(_0x3293dc){if(_0x3293dc){_0x513b85=_0x3293dc['remoteUri'];var _0x309d34=_0x513b85[_0xcb26('0x56')](-0x1);if(_0x309d34==='/'){_0x513b85=_0x513b85[_0xcb26('0x57')](0x0,_0x513b85[_0xcb26('0x58')](_0x309d34));}_0x15431f=new jsforce['Connection']({'oauth2':{'loginUrl':_0x513b85,'clientId':_0x3293dc[_0xcb26('0x59')],'clientSecret':_0x3293dc[_0xcb26('0x53')]}});return _0x15431f[_0xcb26('0x5a')](_0x3293dc[_0xcb26('0x5b')],_0x3293dc[_0xcb26('0x54')]['concat'](_0x3293dc['securityToken']));}})[_0xcb26('0x20')](function(_0x24e860){if(_0x24e860){if(!_[_0xcb26('0x5c')](_0x1eac21[_0xcb26('0x2b')][_0xcb26('0x5d')])){_0x22ec10=_0x1eac21[_0xcb26('0x2b')]['ticketType'];}return _0x15431f[_0xcb26('0x5e')](_0x22ec10)[_0xcb26('0x5f')]();}})[_0xcb26('0x20')](function(_0x1c2937){var _0x5749b1=[_0xcb26('0x60'),_0xcb26('0x61'),_0xcb26('0x62'),'IsRecurrence',_0xcb26('0x63'),_0xcb26('0x64')];var _0x40a9a1=[_0xcb26('0x65'),'int',_0xcb26('0x66'),_0xcb26('0x67'),_0xcb26('0x68'),_0xcb26('0x69'),'phone'];if(_0x1c2937){_[_0xcb26('0x6a')](_0x1c2937[_0xcb26('0x2f')],function(_0x18c2bf){return _0x5749b1[_0xcb26('0x6b')](_0x18c2bf[_0xcb26('0x24')])||!_0x40a9a1[_0xcb26('0x6b')](_0x18c2bf[_0xcb26('0x29')]);});return{'count':_0x1c2937[_0xcb26('0x2f')][_0xcb26('0x30')],'rows':_[_0xcb26('0x27')](_0x1c2937[_0xcb26('0x2f')],function(_0x45bc41){return{'id':_0x45bc41[_0xcb26('0x24')],'name':_0x45bc41['label'],'custom':_0x45bc41[_0xcb26('0x6c')],'options':_0x45bc41['picklistValues']['length']>0x0?_['map'](_0x45bc41[_0xcb26('0x6d')],function(_0x3485ba){return{'name':_0x3485ba['label'],'value':_0x3485ba['value']};}):_0x45bc41[_0xcb26('0x29')]=='boolean'?[{'name':'True','value':'true'},{'name':_0xcb26('0x6e'),'value':'false'}]:[]};})};}})['then'](respondWithResult(_0x31ce5e,null))[_0xcb26('0x3d')](function(_0x3091d6){var _0x2779aa=_0x1eac21[_0xcb26('0x2b')][_0xcb26('0x6f')]?0x1f4:_0x3091d6[_0xcb26('0x70')]||0x1f4;logger[_0xcb26('0x22')](_0xcb26('0x71'),_0xcb26('0x50'),_0x2779aa,JSON[_0xcb26('0x72')](_0x3091d6));delete _0x3091d6[_0xcb26('0x24')];if(_0x2779aa===0x191){_0x2779aa=0x190;}_0x31ce5e[_0xcb26('0x16')](_0x2779aa)['send'](_0x1eac21[_0xcb26('0x2b')][_0xcb26('0x6f')]?{'message':'Wrong\x20credentials','statusCode':_0x3091d6['statusCode']}:_0x3091d6);});};