19dbd873bc6890ebffe2d221a6d47e5be1202132
[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 _0xf60f=['describe','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject','Description','string','int','picklist','boolean','email','textarea','phone','remove','includes','label','custom','value','true','False','false','test','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','statusCode','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','map','SalesforceAccount','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','filters','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','length','includeAll','find','create','body','params','getConfigurations','SalesforceConfiguration','addConfiguration','findOne','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','SalesforceField','remoteUri','password','securityToken','slice','substring','lastIndexOf','Connection','clientId','clientSecret','username','concat','ticketType','sobject'];(function(_0x2c558a,_0xcd16ff){var _0x2170f3=function(_0x4c0554){while(--_0x4c0554){_0x2c558a['push'](_0x2c558a['shift']());}};_0x2170f3(++_0xcd16ff);}(_0xf60f,0x1a7));var _0xff60=function(_0x7609da,_0x51909a){_0x7609da=_0x7609da-0x0;var _0x3c6c99=_0xf60f[_0x7609da];return _0x3c6c99;};'use strict';var emlformat=require(_0xff60('0x0'));var rimraf=require(_0xff60('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xff60('0x2'));var rp=require(_0xff60('0x3'));var moment=require(_0xff60('0x4'));var BPromise=require(_0xff60('0x5'));var Mustache=require(_0xff60('0x6'));var util=require(_0xff60('0x7'));var path=require(_0xff60('0x8'));var sox=require(_0xff60('0x9'));var csv=require(_0xff60('0xa'));var ejs=require(_0xff60('0xb'));var fs=require('fs');var fs_extra=require(_0xff60('0xc'));var _=require(_0xff60('0xd'));var squel=require(_0xff60('0xe'));var crypto=require('crypto');var jsforce=require(_0xff60('0xf'));var deskjs=require(_0xff60('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xff60('0x11'));var Redis=require(_0xff60('0x12'));var authService=require(_0xff60('0x13'));var qs=require(_0xff60('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xff60('0x15'));var logger=require(_0xff60('0x16'))(_0xff60('0x17'));var utils=require(_0xff60('0x18'));var config=require(_0xff60('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xff60('0x1a'))['db'];var integrations=require(_0xff60('0x1b'));function respondWithStatusCode(_0x516fbf,_0x220fc7){_0x220fc7=_0x220fc7||0xcc;return function(_0x1c116d){if(_0x1c116d){return _0x516fbf[_0xff60('0x1c')](_0x220fc7);}return _0x516fbf[_0xff60('0x1d')](_0x220fc7)[_0xff60('0x1e')]();};}function respondWithResult(_0x1a0587,_0x4123cc){_0x4123cc=_0x4123cc||0xc8;return function(_0x2b4e5a){if(_0x2b4e5a){return _0x1a0587[_0xff60('0x1d')](_0x4123cc)[_0xff60('0x1f')](_0x2b4e5a);}};}function respondWithFilteredResult(_0x3df4c5,_0x219bd5){return function(_0x5cef04){if(_0x5cef04){var _0x594bb1=typeof _0x219bd5['offset']===_0xff60('0x20')&&typeof _0x219bd5[_0xff60('0x21')]==='undefined';var _0x14fbf5=_0x5cef04['count'];var _0x33cfad=_0x594bb1?0x0:_0x219bd5['offset'];var _0x42ad99=_0x594bb1?_0x5cef04[_0xff60('0x22')]:_0x219bd5[_0xff60('0x23')]+_0x219bd5['limit'];var _0x958fc2;if(_0x42ad99>=_0x14fbf5){_0x42ad99=_0x14fbf5;_0x958fc2=0xc8;}else{_0x958fc2=0xce;}_0x3df4c5[_0xff60('0x1d')](_0x958fc2);return _0x3df4c5[_0xff60('0x24')](_0xff60('0x25'),_0x33cfad+'-'+_0x42ad99+'/'+_0x14fbf5)[_0xff60('0x1f')](_0x5cef04);}return null;};}function patchUpdates(_0x4861b1){return function(_0x5e09a0){try{jsonpatch[_0xff60('0x26')](_0x5e09a0,_0x4861b1,!![]);}catch(_0xe8a1d9){return BPromise[_0xff60('0x27')](_0xe8a1d9);}return _0x5e09a0[_0xff60('0x28')]();};}function saveUpdates(_0x32e8a7,_0x137373){return function(_0x572a84){if(_0x572a84){return _0x572a84[_0xff60('0x29')](_0x32e8a7)['then'](function(_0x616e4c){return _0x616e4c;});}return null;};}function removeEntity(_0x3a0916,_0x1c7cdd){return function(_0xd809ae){if(_0xd809ae){return _0xd809ae[_0xff60('0x2a')]()[_0xff60('0x2b')](function(){_0x3a0916[_0xff60('0x1d')](0xcc)[_0xff60('0x1e')]();});}};}function handleEntityNotFound(_0x5bac49,_0x1ea8ea){return function(_0x28c81d){if(!_0x28c81d){_0x5bac49[_0xff60('0x1c')](0x194);}return _0x28c81d;};}function handleError(_0x34e4b1,_0x33f101){_0x33f101=_0x33f101||0x1f4;return function(_0x11cf8b){logger[_0xff60('0x2c')](_0x11cf8b[_0xff60('0x2d')]);if(_0x11cf8b[_0xff60('0x2e')]){delete _0x11cf8b[_0xff60('0x2e')];}_0x34e4b1[_0xff60('0x1d')](_0x33f101)[_0xff60('0x2f')](_0x11cf8b);};}exports['index']=function(_0x207a36,_0x499403){var _0x5925b3={},_0x56c4f7={},_0x5ea882={'count':0x0,'rows':[]};var _0x313b79=_[_0xff60('0x30')](db[_0xff60('0x31')][_0xff60('0x32')],function(_0x16d982){return{'name':_0x16d982[_0xff60('0x33')],'type':_0x16d982[_0xff60('0x34')][_0xff60('0x35')]};});_0x56c4f7[_0xff60('0x36')]=_[_0xff60('0x30')](_0x313b79,_0xff60('0x2e'));_0x56c4f7[_0xff60('0x37')]=_[_0xff60('0x38')](_0x207a36[_0xff60('0x37')]);_0x56c4f7['filters']=_[_0xff60('0x39')](_0x56c4f7['model'],_0x56c4f7[_0xff60('0x37')]);_0x5925b3[_0xff60('0x3a')]=_[_0xff60('0x39')](_0x56c4f7['model'],qs[_0xff60('0x3b')](_0x207a36[_0xff60('0x37')][_0xff60('0x3b')]));_0x5925b3[_0xff60('0x3a')]=_0x5925b3[_0xff60('0x3a')]['length']?_0x5925b3[_0xff60('0x3a')]:_0x56c4f7['model'];if(!_0x207a36[_0xff60('0x37')][_0xff60('0x3c')]('nolimit')){_0x5925b3[_0xff60('0x21')]=qs[_0xff60('0x21')](_0x207a36['query'][_0xff60('0x21')]);_0x5925b3['offset']=qs['offset'](_0x207a36[_0xff60('0x37')][_0xff60('0x23')]);}_0x5925b3[_0xff60('0x3d')]=qs[_0xff60('0x3e')](_0x207a36[_0xff60('0x37')][_0xff60('0x3e')]);_0x5925b3[_0xff60('0x3f')]=qs['filters'](_[_0xff60('0x40')](_0x207a36[_0xff60('0x37')],_0x56c4f7[_0xff60('0x41')]),_0x313b79);if(_0x207a36[_0xff60('0x37')][_0xff60('0x42')]){_0x5925b3['where']=_[_0xff60('0x43')](_0x5925b3['where'],{'$or':_[_0xff60('0x30')](_0x313b79,function(_0x279f08){if(_0x279f08[_0xff60('0x34')]!==_0xff60('0x44')){var _0x46d6f5={};_0x46d6f5[_0x279f08[_0xff60('0x2e')]]={'$like':'%'+_0x207a36[_0xff60('0x37')]['filter']+'%'};return _0x46d6f5;}})});}_0x5925b3=_[_0xff60('0x43')]({},_0x5925b3,_0x207a36[_0xff60('0x45')]);var _0x21b736={'where':_0x5925b3['where']};return db['SalesforceAccount'][_0xff60('0x22')](_0x21b736)['then'](function(_0x1e11e6){_0x5ea882[_0xff60('0x22')]=_0x1e11e6;if(_0x207a36['query']['includeAll']){_0x5925b3[_0xff60('0x46')]=[{'all':!![]}];}return db[_0xff60('0x31')][_0xff60('0x47')](_0x5925b3);})[_0xff60('0x2b')](function(_0x2cb9ae){_0x5ea882[_0xff60('0x48')]=_0x2cb9ae;return _0x5ea882;})['then'](respondWithFilteredResult(_0x499403,_0x5925b3))[_0xff60('0x49')](handleError(_0x499403,null));};exports[_0xff60('0x4a')]=function(_0x4c9fea,_0x17db55){var _0x4d8f1e={'raw':![],'where':{'id':_0x4c9fea['params']['id']}},_0x316f9a={};_0x316f9a[_0xff60('0x36')]=_[_0xff60('0x38')](db['SalesforceAccount'][_0xff60('0x32')]);_0x316f9a[_0xff60('0x37')]=_[_0xff60('0x38')](_0x4c9fea[_0xff60('0x37')]);_0x316f9a[_0xff60('0x41')]=_[_0xff60('0x39')](_0x316f9a[_0xff60('0x36')],_0x316f9a[_0xff60('0x37')]);_0x4d8f1e['attributes']=_[_0xff60('0x39')](_0x316f9a['model'],qs['fields'](_0x4c9fea[_0xff60('0x37')][_0xff60('0x3b')]));_0x4d8f1e[_0xff60('0x3a')]=_0x4d8f1e[_0xff60('0x3a')][_0xff60('0x4b')]?_0x4d8f1e[_0xff60('0x3a')]:_0x316f9a[_0xff60('0x36')];if(_0x4c9fea[_0xff60('0x37')][_0xff60('0x4c')]){_0x4d8f1e[_0xff60('0x46')]=[{'all':!![]}];}_0x4d8f1e=_[_0xff60('0x43')]({},_0x4d8f1e,_0x4c9fea[_0xff60('0x45')]);return db['SalesforceAccount'][_0xff60('0x4d')](_0x4d8f1e)['then'](handleEntityNotFound(_0x17db55,null))['then'](respondWithResult(_0x17db55,null))[_0xff60('0x49')](handleError(_0x17db55,null));};exports[_0xff60('0x4e')]=function(_0x455c14,_0x592ff4){return db[_0xff60('0x31')][_0xff60('0x4e')](_0x455c14[_0xff60('0x4f')],{})[_0xff60('0x2b')](respondWithResult(_0x592ff4,0xc9))[_0xff60('0x49')](handleError(_0x592ff4,null));};exports[_0xff60('0x29')]=function(_0x179151,_0x4510ea){if(_0x179151[_0xff60('0x4f')]['id']){delete _0x179151[_0xff60('0x4f')]['id'];}return db[_0xff60('0x31')][_0xff60('0x4d')]({'where':{'id':_0x179151[_0xff60('0x50')]['id']}})[_0xff60('0x2b')](handleEntityNotFound(_0x4510ea,null))[_0xff60('0x2b')](saveUpdates(_0x179151[_0xff60('0x4f')],null))[_0xff60('0x2b')](respondWithResult(_0x4510ea,null))[_0xff60('0x49')](handleError(_0x4510ea,null));};exports[_0xff60('0x2a')]=function(_0x3ea751,_0x422308){return db[_0xff60('0x31')][_0xff60('0x4d')]({'where':{'id':_0x3ea751[_0xff60('0x50')]['id']}})['then'](handleEntityNotFound(_0x422308,null))['then'](removeEntity(_0x422308,null))[_0xff60('0x49')](handleError(_0x422308,null));};exports[_0xff60('0x51')]=function(_0x4f85df,_0x319edf,_0x29b43d){var _0x3c7276={};var _0x4c662d={};var _0x1e30dd;var _0x20a1c3;return db[_0xff60('0x31')]['findOne']({'where':{'id':_0x4f85df[_0xff60('0x50')]['id']}})[_0xff60('0x2b')](handleEntityNotFound(_0x319edf,null))[_0xff60('0x2b')](function(_0x39d5f0){if(_0x39d5f0){_0x1e30dd=_0x39d5f0;_0x4c662d[_0xff60('0x36')]=_['keys'](db[_0xff60('0x52')][_0xff60('0x32')]);_0x4c662d[_0xff60('0x37')]=_['keys'](_0x4f85df['query']);_0x4c662d['filters']=_[_0xff60('0x39')](_0x4c662d[_0xff60('0x36')],_0x4c662d[_0xff60('0x37')]);_0x3c7276['attributes']=_[_0xff60('0x39')](_0x4c662d[_0xff60('0x36')],qs[_0xff60('0x3b')](_0x4f85df[_0xff60('0x37')][_0xff60('0x3b')]));_0x3c7276[_0xff60('0x3a')]=_0x3c7276[_0xff60('0x3a')][_0xff60('0x4b')]?_0x3c7276['attributes']:_0x4c662d['model'];_0x3c7276['order']=qs[_0xff60('0x3e')](_0x4f85df[_0xff60('0x37')][_0xff60('0x3e')]);_0x3c7276[_0xff60('0x3f')]=qs['filters'](_[_0xff60('0x40')](_0x4f85df[_0xff60('0x37')],_0x4c662d[_0xff60('0x41')]));if(_0x4f85df[_0xff60('0x37')]['filter']){_0x3c7276[_0xff60('0x3f')]=_[_0xff60('0x43')](_0x3c7276[_0xff60('0x3f')],{'$or':_['map'](_0x3c7276[_0xff60('0x3a')],function(_0xe2e5b4){var _0xbf6e16={};_0xbf6e16[_0xe2e5b4]={'$like':'%'+_0x4f85df[_0xff60('0x37')][_0xff60('0x42')]+'%'};return _0xbf6e16;})});}_0x3c7276=_['merge']({},_0x3c7276,_0x4f85df[_0xff60('0x45')]);return _0x1e30dd[_0xff60('0x51')](_0x3c7276);}})[_0xff60('0x2b')](function(_0xcf134){if(_0xcf134){_0x20a1c3=_0xcf134['length'];if(!_0x4f85df[_0xff60('0x37')]['hasOwnProperty']('nolimit')){_0x3c7276[_0xff60('0x21')]=qs[_0xff60('0x21')](_0x4f85df[_0xff60('0x37')]['limit']);_0x3c7276[_0xff60('0x23')]=qs[_0xff60('0x23')](_0x4f85df['query'][_0xff60('0x23')]);}return _0x1e30dd[_0xff60('0x51')](_0x3c7276);}})[_0xff60('0x2b')](function(_0x403e61){if(_0x403e61){return _0x403e61?{'count':_0x20a1c3,'rows':_0x403e61}:null;}})['then'](respondWithResult(_0x319edf,null))[_0xff60('0x49')](handleError(_0x319edf,null));};exports[_0xff60('0x53')]=function(_0x46070c,_0x1af50a,_0x303c4a){if(_0x46070c['body']['id']){delete _0x46070c[_0xff60('0x4f')]['id'];}return db[_0xff60('0x31')][_0xff60('0x54')]({'where':{'id':_0x46070c[_0xff60('0x50')]['id']}})['then'](handleEntityNotFound(_0x1af50a,null))[_0xff60('0x2b')](function(_0x1ea5fa){if(_0x1ea5fa){_0x46070c[_0xff60('0x4f')][_0xff60('0x55')]=_0x1ea5fa['id'];_0x46070c[_0xff60('0x4f')][_0xff60('0x56')]=integrations[_0xff60('0x57')](_0x46070c[_0xff60('0x4f')]['channel'],_0x46070c[_0xff60('0x4f')][_0xff60('0x34')]);_0x46070c[_0xff60('0x4f')][_0xff60('0x58')]=integrations[_0xff60('0x59')](_0x46070c[_0xff60('0x4f')][_0xff60('0x5a')],_0x46070c['body']['type']);return db[_0xff60('0x52')][_0xff60('0x4e')](_0x46070c[_0xff60('0x4f')],{'include':[{'model':db[_0xff60('0x5b')],'as':'Subjects'},{'model':db['SalesforceField'],'as':_0xff60('0x58')}]});}return null;})[_0xff60('0x2b')](respondWithResult(_0x1af50a,null))[_0xff60('0x49')](handleError(_0x1af50a,null));};exports['getFields']=function(_0x31e8ca,_0x53c0cb,_0x5c1121){var _0x31e8a6;var _0xee9101='';var _0x3cdab2='Task';return db['SalesforceAccount'][_0xff60('0x54')]({'where':{'id':_0x31e8ca['params']['id']},'attributes':['id',_0xff60('0x5c'),'clientId','clientSecret','username',_0xff60('0x5d'),_0xff60('0x5e')]})[_0xff60('0x2b')](handleEntityNotFound(_0x53c0cb,null))[_0xff60('0x2b')](function(_0x3331e4){if(_0x3331e4){_0xee9101=_0x3331e4[_0xff60('0x5c')];var _0x3253c8=_0xee9101[_0xff60('0x5f')](-0x1);if(_0x3253c8==='/'){_0xee9101=_0xee9101[_0xff60('0x60')](0x0,_0xee9101[_0xff60('0x61')](_0x3253c8));}_0x31e8a6=new jsforce[(_0xff60('0x62'))]({'oauth2':{'loginUrl':_0xee9101,'clientId':_0x3331e4[_0xff60('0x63')],'clientSecret':_0x3331e4[_0xff60('0x64')]}});return _0x31e8a6['login'](_0x3331e4[_0xff60('0x65')],_0x3331e4[_0xff60('0x5d')][_0xff60('0x66')](_0x3331e4['securityToken']));}})['then'](function(_0x248dbe){if(_0x248dbe){if(!_['isNil'](_0x31e8ca[_0xff60('0x37')][_0xff60('0x67')])){_0x3cdab2=_0x31e8ca['query'][_0xff60('0x67')];}return _0x31e8a6[_0xff60('0x68')](_0x3cdab2)[_0xff60('0x69')]();}})[_0xff60('0x2b')](function(_0x2ab8bb){var _0x1e6908=[_0xff60('0x6a'),_0xff60('0x6b'),_0xff60('0x6c'),_0xff60('0x6d'),_0xff60('0x6e'),_0xff60('0x6f')];var _0x1fc494=[_0xff60('0x70'),_0xff60('0x71'),_0xff60('0x72'),_0xff60('0x73'),_0xff60('0x74'),_0xff60('0x75'),_0xff60('0x76')];if(_0x2ab8bb){_[_0xff60('0x77')](_0x2ab8bb[_0xff60('0x3b')],function(_0x336c19){return _0x1e6908[_0xff60('0x78')](_0x336c19[_0xff60('0x2e')])||!_0x1fc494[_0xff60('0x78')](_0x336c19[_0xff60('0x34')]);});return{'count':_0x2ab8bb[_0xff60('0x3b')][_0xff60('0x4b')],'rows':_[_0xff60('0x30')](_0x2ab8bb[_0xff60('0x3b')],function(_0x219774){return{'id':_0x219774['name'],'name':_0x219774[_0xff60('0x79')],'custom':_0x219774[_0xff60('0x7a')],'options':_0x219774['picklistValues'][_0xff60('0x4b')]>0x0?_[_0xff60('0x30')](_0x219774['picklistValues'],function(_0x121984){return{'name':_0x121984[_0xff60('0x79')],'value':_0x121984[_0xff60('0x7b')]};}):_0x219774[_0xff60('0x34')]==_0xff60('0x73')?[{'name':'True','value':_0xff60('0x7c')},{'name':_0xff60('0x7d'),'value':_0xff60('0x7e')}]:[]};})};}})[_0xff60('0x2b')](respondWithResult(_0x53c0cb,null))['catch'](function(_0xe6893b){var _0x7443f8=_0x31e8ca[_0xff60('0x37')][_0xff60('0x7f')]?0x1f4:_0xe6893b['statusCode']||0x1f4;logger[_0xff60('0x2c')](_0xff60('0x80'),_0xff60('0x81'),_0x7443f8,JSON[_0xff60('0x82')](_0xe6893b));delete _0xe6893b[_0xff60('0x2e')];if(_0x7443f8===0x191){_0x7443f8=0x190;}_0x53c0cb['status'](_0x7443f8)[_0xff60('0x2f')](_0x31e8ca[_0xff60('0x37')]['test']?{'message':'Wrong\x20credentials','statusCode':_0xe6893b[_0xff60('0x83')]}:_0xe6893b);});};