52f2df7720d2e40ac6e345f46030a17cac5f2264
[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 _0x11fa=['phone','remove','includes','label','custom','picklistValues','value','boolean','True','true','False','false','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','zip-dir','mustache','path','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../components/integrations/configuration','sendStatus','end','json','offset','undefined','limit','count','status','Content-Range','apply','update','then','error','name','send','map','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','filter','VIRTUAL','merge','options','SalesforceAccount','include','findAll','catch','show','params','create','body','find','findOne','SalesforceConfiguration','order','pick','getConfigurations','Subjects','getSubjects','channel','Descriptions','getDescriptions','SalesforceField','getFields','Task','remoteUri','clientId','clientSecret','username','password','securityToken','slice','substring','login','isNil','ticketType','sobject','OwnerId','ActivityDate','IsRecurrence','Subject','string','int','picklist','textarea'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x11fa,0x164));var _0xa11f=function(_0x22b68a,_0x2bffc3){_0x22b68a=_0x22b68a-0x0;var _0x1ac67a=_0x11fa[_0x22b68a];return _0x1ac67a;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xa11f('0x0'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xa11f('0x1'));var util=require('util');var path=require(_0xa11f('0x2'));var sox=require('sox');var csv=require(_0xa11f('0x3'));var ejs=require(_0xa11f('0x4'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa11f('0x5'));var squel=require(_0xa11f('0x6'));var crypto=require(_0xa11f('0x7'));var jsforce=require(_0xa11f('0x8'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xa11f('0x9'));var Papa=require(_0xa11f('0xa'));var Redis=require('ioredis');var authService=require(_0xa11f('0xb'));var qs=require(_0xa11f('0xc'));var as=require(_0xa11f('0xd'));var hardwareService=require(_0xa11f('0xe'));var logger=require('../../config/logger')(_0xa11f('0xf'));var utils=require('../../config/utils');var config=require(_0xa11f('0x10'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0xa11f('0x11'));function respondWithStatusCode(_0xbe4b5c,_0x45e45e){_0x45e45e=_0x45e45e||0xcc;return function(_0x573e84){if(_0x573e84){return _0xbe4b5c[_0xa11f('0x12')](_0x45e45e);}return _0xbe4b5c['status'](_0x45e45e)[_0xa11f('0x13')]();};}function respondWithResult(_0x51d94c,_0x130563){_0x130563=_0x130563||0xc8;return function(_0x4824a1){if(_0x4824a1){return _0x51d94c['status'](_0x130563)[_0xa11f('0x14')](_0x4824a1);}};}function respondWithFilteredResult(_0x1f7680,_0x20c4e3){return function(_0x1792d6){if(_0x1792d6){var _0x5e314f=typeof _0x20c4e3[_0xa11f('0x15')]===_0xa11f('0x16')&&typeof _0x20c4e3[_0xa11f('0x17')]===_0xa11f('0x16');var _0x4648bd=_0x1792d6['count'];var _0x2ce62e=_0x5e314f?0x0:_0x20c4e3[_0xa11f('0x15')];var _0x1f5769=_0x5e314f?_0x1792d6[_0xa11f('0x18')]:_0x20c4e3[_0xa11f('0x15')]+_0x20c4e3[_0xa11f('0x17')];var _0x5606bb;if(_0x1f5769>=_0x4648bd){_0x1f5769=_0x4648bd;_0x5606bb=0xc8;}else{_0x5606bb=0xce;}_0x1f7680[_0xa11f('0x19')](_0x5606bb);return _0x1f7680['set'](_0xa11f('0x1a'),_0x2ce62e+'-'+_0x1f5769+'/'+_0x4648bd)[_0xa11f('0x14')](_0x1792d6);}return null;};}function patchUpdates(_0xfe45c6){return function(_0x51b326){try{jsonpatch[_0xa11f('0x1b')](_0x51b326,_0xfe45c6,!![]);}catch(_0x4b9873){return BPromise['reject'](_0x4b9873);}return _0x51b326['save']();};}function saveUpdates(_0x5f5dcd,_0xf130b2){return function(_0xc1a750){if(_0xc1a750){return _0xc1a750[_0xa11f('0x1c')](_0x5f5dcd)[_0xa11f('0x1d')](function(_0x9db8c5){return _0x9db8c5;});}return null;};}function removeEntity(_0xc8721d,_0x1c9f9d){return function(_0x2756fb){if(_0x2756fb){return _0x2756fb['destroy']()[_0xa11f('0x1d')](function(){_0xc8721d[_0xa11f('0x19')](0xcc)[_0xa11f('0x13')]();});}};}function handleEntityNotFound(_0x37c9e0,_0x25b4b0){return function(_0x2e3c39){if(!_0x2e3c39){_0x37c9e0['sendStatus'](0x194);}return _0x2e3c39;};}function handleError(_0x24bb7a,_0xe2b735){_0xe2b735=_0xe2b735||0x1f4;return function(_0x5ec817){logger[_0xa11f('0x1e')](_0x5ec817['stack']);if(_0x5ec817[_0xa11f('0x1f')]){delete _0x5ec817[_0xa11f('0x1f')];}_0x24bb7a[_0xa11f('0x19')](_0xe2b735)[_0xa11f('0x20')](_0x5ec817);};}exports['index']=function(_0x4837c5,_0x18be99){var _0x156bfe={},_0x473a56={},_0x238702={'count':0x0,'rows':[]};var _0x243a6f=_[_0xa11f('0x21')](db['SalesforceAccount'][_0xa11f('0x22')],function(_0x55f57b){return{'name':_0x55f57b[_0xa11f('0x23')],'type':_0x55f57b[_0xa11f('0x24')][_0xa11f('0x25')]};});_0x473a56[_0xa11f('0x26')]=_[_0xa11f('0x21')](_0x243a6f,'name');_0x473a56['query']=_[_0xa11f('0x27')](_0x4837c5[_0xa11f('0x28')]);_0x473a56['filters']=_[_0xa11f('0x29')](_0x473a56[_0xa11f('0x26')],_0x473a56['query']);_0x156bfe[_0xa11f('0x2a')]=_[_0xa11f('0x29')](_0x473a56[_0xa11f('0x26')],qs[_0xa11f('0x2b')](_0x4837c5[_0xa11f('0x28')][_0xa11f('0x2b')]));_0x156bfe[_0xa11f('0x2a')]=_0x156bfe['attributes'][_0xa11f('0x2c')]?_0x156bfe[_0xa11f('0x2a')]:_0x473a56[_0xa11f('0x26')];if(!_0x4837c5[_0xa11f('0x28')][_0xa11f('0x2d')](_0xa11f('0x2e'))){_0x156bfe[_0xa11f('0x17')]=qs[_0xa11f('0x17')](_0x4837c5[_0xa11f('0x28')][_0xa11f('0x17')]);_0x156bfe[_0xa11f('0x15')]=qs[_0xa11f('0x15')](_0x4837c5['query'][_0xa11f('0x15')]);}_0x156bfe['order']=qs[_0xa11f('0x2f')](_0x4837c5[_0xa11f('0x28')][_0xa11f('0x2f')]);_0x156bfe[_0xa11f('0x30')]=qs['filters'](_['pick'](_0x4837c5[_0xa11f('0x28')],_0x473a56[_0xa11f('0x31')]),_0x243a6f);if(_0x4837c5[_0xa11f('0x28')][_0xa11f('0x32')]){_0x156bfe[_0xa11f('0x30')]=_['merge'](_0x156bfe['where'],{'$or':_['map'](_0x243a6f,function(_0x507d31){if(_0x507d31[_0xa11f('0x24')]!==_0xa11f('0x33')){var _0x4859c4={};_0x4859c4[_0x507d31['name']]={'$like':'%'+_0x4837c5[_0xa11f('0x28')][_0xa11f('0x32')]+'%'};return _0x4859c4;}})});}_0x156bfe=_[_0xa11f('0x34')]({},_0x156bfe,_0x4837c5[_0xa11f('0x35')]);var _0x35dad6={'where':_0x156bfe[_0xa11f('0x30')]};return db[_0xa11f('0x36')]['count'](_0x35dad6)[_0xa11f('0x1d')](function(_0x3fb479){_0x238702[_0xa11f('0x18')]=_0x3fb479;if(_0x4837c5[_0xa11f('0x28')]['includeAll']){_0x156bfe[_0xa11f('0x37')]=[{'all':!![]}];}return db[_0xa11f('0x36')][_0xa11f('0x38')](_0x156bfe);})[_0xa11f('0x1d')](function(_0xe8b273){_0x238702['rows']=_0xe8b273;return _0x238702;})['then'](respondWithFilteredResult(_0x18be99,_0x156bfe))[_0xa11f('0x39')](handleError(_0x18be99,null));};exports[_0xa11f('0x3a')]=function(_0x408adc,_0x4f3af8){var _0x289adc={'raw':![],'where':{'id':_0x408adc[_0xa11f('0x3b')]['id']}},_0x354630={};_0x354630[_0xa11f('0x26')]=_['keys'](db[_0xa11f('0x36')][_0xa11f('0x22')]);_0x354630[_0xa11f('0x28')]=_[_0xa11f('0x27')](_0x408adc[_0xa11f('0x28')]);_0x354630[_0xa11f('0x31')]=_[_0xa11f('0x29')](_0x354630['model'],_0x354630[_0xa11f('0x28')]);_0x289adc[_0xa11f('0x2a')]=_[_0xa11f('0x29')](_0x354630[_0xa11f('0x26')],qs[_0xa11f('0x2b')](_0x408adc[_0xa11f('0x28')][_0xa11f('0x2b')]));_0x289adc[_0xa11f('0x2a')]=_0x289adc[_0xa11f('0x2a')][_0xa11f('0x2c')]?_0x289adc[_0xa11f('0x2a')]:_0x354630[_0xa11f('0x26')];if(_0x408adc['query']['includeAll']){_0x289adc[_0xa11f('0x37')]=[{'all':!![]}];}_0x289adc=_[_0xa11f('0x34')]({},_0x289adc,_0x408adc['options']);return db[_0xa11f('0x36')]['find'](_0x289adc)[_0xa11f('0x1d')](handleEntityNotFound(_0x4f3af8,null))['then'](respondWithResult(_0x4f3af8,null))[_0xa11f('0x39')](handleError(_0x4f3af8,null));};exports[_0xa11f('0x3c')]=function(_0x33aba6,_0x2770a7){return db[_0xa11f('0x36')][_0xa11f('0x3c')](_0x33aba6['body'],{})['then'](respondWithResult(_0x2770a7,0xc9))[_0xa11f('0x39')](handleError(_0x2770a7,null));};exports['update']=function(_0x5cbc53,_0x1d2387){if(_0x5cbc53['body']['id']){delete _0x5cbc53[_0xa11f('0x3d')]['id'];}return db['SalesforceAccount'][_0xa11f('0x3e')]({'where':{'id':_0x5cbc53[_0xa11f('0x3b')]['id']}})[_0xa11f('0x1d')](handleEntityNotFound(_0x1d2387,null))[_0xa11f('0x1d')](saveUpdates(_0x5cbc53['body'],null))[_0xa11f('0x1d')](respondWithResult(_0x1d2387,null))[_0xa11f('0x39')](handleError(_0x1d2387,null));};exports['destroy']=function(_0x34afb6,_0x4097af){return db[_0xa11f('0x36')][_0xa11f('0x3e')]({'where':{'id':_0x34afb6[_0xa11f('0x3b')]['id']}})[_0xa11f('0x1d')](handleEntityNotFound(_0x4097af,null))[_0xa11f('0x1d')](removeEntity(_0x4097af,null))[_0xa11f('0x39')](handleError(_0x4097af,null));};exports['getConfigurations']=function(_0x4ab2a9,_0x5ab31b,_0x1899a9){var _0x2c9d56={};var _0x21c28c={};var _0x459754;var _0x34fc85;return db['SalesforceAccount'][_0xa11f('0x3f')]({'where':{'id':_0x4ab2a9[_0xa11f('0x3b')]['id']}})[_0xa11f('0x1d')](handleEntityNotFound(_0x5ab31b,null))[_0xa11f('0x1d')](function(_0x106429){if(_0x106429){_0x459754=_0x106429;_0x21c28c[_0xa11f('0x26')]=_[_0xa11f('0x27')](db[_0xa11f('0x40')][_0xa11f('0x22')]);_0x21c28c[_0xa11f('0x28')]=_['keys'](_0x4ab2a9[_0xa11f('0x28')]);_0x21c28c[_0xa11f('0x31')]=_[_0xa11f('0x29')](_0x21c28c['model'],_0x21c28c[_0xa11f('0x28')]);_0x2c9d56[_0xa11f('0x2a')]=_[_0xa11f('0x29')](_0x21c28c['model'],qs[_0xa11f('0x2b')](_0x4ab2a9[_0xa11f('0x28')]['fields']));_0x2c9d56[_0xa11f('0x2a')]=_0x2c9d56[_0xa11f('0x2a')]['length']?_0x2c9d56[_0xa11f('0x2a')]:_0x21c28c[_0xa11f('0x26')];_0x2c9d56[_0xa11f('0x41')]=qs[_0xa11f('0x2f')](_0x4ab2a9[_0xa11f('0x28')][_0xa11f('0x2f')]);_0x2c9d56[_0xa11f('0x30')]=qs['filters'](_[_0xa11f('0x42')](_0x4ab2a9['query'],_0x21c28c[_0xa11f('0x31')]));if(_0x4ab2a9['query'][_0xa11f('0x32')]){_0x2c9d56['where']=_[_0xa11f('0x34')](_0x2c9d56[_0xa11f('0x30')],{'$or':_['map'](_0x2c9d56['attributes'],function(_0x2f8b5c){var _0x483743={};_0x483743[_0x2f8b5c]={'$like':'%'+_0x4ab2a9[_0xa11f('0x28')][_0xa11f('0x32')]+'%'};return _0x483743;})});}_0x2c9d56=_[_0xa11f('0x34')]({},_0x2c9d56,_0x4ab2a9[_0xa11f('0x35')]);return _0x459754[_0xa11f('0x43')](_0x2c9d56);}})[_0xa11f('0x1d')](function(_0x245951){if(_0x245951){_0x34fc85=_0x245951[_0xa11f('0x2c')];if(!_0x4ab2a9[_0xa11f('0x28')][_0xa11f('0x2d')](_0xa11f('0x2e'))){_0x2c9d56[_0xa11f('0x17')]=qs[_0xa11f('0x17')](_0x4ab2a9[_0xa11f('0x28')][_0xa11f('0x17')]);_0x2c9d56['offset']=qs['offset'](_0x4ab2a9[_0xa11f('0x28')][_0xa11f('0x15')]);}return _0x459754[_0xa11f('0x43')](_0x2c9d56);}})[_0xa11f('0x1d')](function(_0x3b39d1){if(_0x3b39d1){return _0x3b39d1?{'count':_0x34fc85,'rows':_0x3b39d1}:null;}})[_0xa11f('0x1d')](respondWithResult(_0x5ab31b,null))[_0xa11f('0x39')](handleError(_0x5ab31b,null));};exports['addConfiguration']=function(_0x2fbbd7,_0x2e87cd,_0x1ef01c){if(_0x2fbbd7[_0xa11f('0x3d')]['id']){delete _0x2fbbd7['body']['id'];}return db[_0xa11f('0x36')][_0xa11f('0x3f')]({'where':{'id':_0x2fbbd7[_0xa11f('0x3b')]['id']}})[_0xa11f('0x1d')](handleEntityNotFound(_0x2e87cd,null))[_0xa11f('0x1d')](function(_0x215f10){if(_0x215f10){_0x2fbbd7[_0xa11f('0x3d')]['AccountId']=_0x215f10['id'];_0x2fbbd7[_0xa11f('0x3d')][_0xa11f('0x44')]=integrations[_0xa11f('0x45')](_0x2fbbd7['body'][_0xa11f('0x46')],_0x2fbbd7[_0xa11f('0x3d')][_0xa11f('0x24')]);_0x2fbbd7[_0xa11f('0x3d')][_0xa11f('0x47')]=integrations[_0xa11f('0x48')](_0x2fbbd7[_0xa11f('0x3d')][_0xa11f('0x46')],_0x2fbbd7[_0xa11f('0x3d')][_0xa11f('0x24')]);return db[_0xa11f('0x40')][_0xa11f('0x3c')](_0x2fbbd7[_0xa11f('0x3d')],{'include':[{'model':db[_0xa11f('0x49')],'as':_0xa11f('0x44')},{'model':db[_0xa11f('0x49')],'as':_0xa11f('0x47')}]});}return null;})[_0xa11f('0x1d')](respondWithResult(_0x2e87cd,null))[_0xa11f('0x39')](handleError(_0x2e87cd,null));};exports[_0xa11f('0x4a')]=function(_0x1ea800,_0x4e4e7e,_0x834f53){var _0x29c36f;var _0x3b951a='';var _0x3a73e3=_0xa11f('0x4b');return db[_0xa11f('0x36')]['findOne']({'where':{'id':_0x1ea800['params']['id']},'attributes':['id',_0xa11f('0x4c'),_0xa11f('0x4d'),_0xa11f('0x4e'),_0xa11f('0x4f'),_0xa11f('0x50'),_0xa11f('0x51')]})[_0xa11f('0x1d')](handleEntityNotFound(_0x4e4e7e,null))[_0xa11f('0x1d')](function(_0x3a950b){if(_0x3a950b){_0x3b951a=_0x3a950b[_0xa11f('0x4c')];var _0x4f2704=_0x3b951a[_0xa11f('0x52')](-0x1);if(_0x4f2704==='/'){_0x3b951a=_0x3b951a[_0xa11f('0x53')](0x0,_0x3b951a['lastIndexOf'](_0x4f2704));}_0x29c36f=new jsforce['Connection']({'oauth2':{'loginUrl':_0x3b951a,'clientId':_0x3a950b[_0xa11f('0x4d')],'clientSecret':_0x3a950b['clientSecret']}});return _0x29c36f[_0xa11f('0x54')](_0x3a950b[_0xa11f('0x4f')],_0x3a950b[_0xa11f('0x50')]['concat'](_0x3a950b['securityToken']));}})[_0xa11f('0x1d')](function(_0x24fd18){if(_0x24fd18){if(!_[_0xa11f('0x55')](_0x1ea800['query']['ticketType'])){_0x3a73e3=_0x1ea800[_0xa11f('0x28')][_0xa11f('0x56')];}return _0x29c36f[_0xa11f('0x57')](_0x3a73e3)['describe']();}})[_0xa11f('0x1d')](function(_0x20c233){var _0x2b6301=[_0xa11f('0x58'),_0xa11f('0x59'),'IsReminderSet',_0xa11f('0x5a'),_0xa11f('0x5b'),'Description'];var _0x5b6ba7=[_0xa11f('0x5c'),_0xa11f('0x5d'),_0xa11f('0x5e'),'boolean','email',_0xa11f('0x5f'),_0xa11f('0x60')];if(_0x20c233){_[_0xa11f('0x61')](_0x20c233['fields'],function(_0x56f48b){return _0x2b6301[_0xa11f('0x62')](_0x56f48b['name'])||!_0x5b6ba7[_0xa11f('0x62')](_0x56f48b[_0xa11f('0x24')]);});return{'count':_0x20c233[_0xa11f('0x2b')][_0xa11f('0x2c')],'rows':_[_0xa11f('0x21')](_0x20c233[_0xa11f('0x2b')],function(_0x42a81b){return{'id':_0x42a81b[_0xa11f('0x1f')],'name':_0x42a81b[_0xa11f('0x63')],'custom':_0x42a81b[_0xa11f('0x64')],'options':_0x42a81b[_0xa11f('0x65')]['length']>0x0?_[_0xa11f('0x21')](_0x42a81b[_0xa11f('0x65')],function(_0x11a1e9){return{'name':_0x11a1e9[_0xa11f('0x63')],'value':_0x11a1e9[_0xa11f('0x66')]};}):_0x42a81b[_0xa11f('0x24')]==_0xa11f('0x67')?[{'name':_0xa11f('0x68'),'value':_0xa11f('0x69')},{'name':_0xa11f('0x6a'),'value':_0xa11f('0x6b')}]:[]};})};}})[_0xa11f('0x1d')](respondWithResult(_0x4e4e7e,null))[_0xa11f('0x39')](function(_0x3ad8ee){var _0x361848=_0x1ea800[_0xa11f('0x28')][_0xa11f('0x6c')]?0x1f4:_0x3ad8ee[_0xa11f('0x6d')]||0x1f4;logger[_0xa11f('0x1e')](_0xa11f('0x6e'),'getFields',_0x361848,JSON[_0xa11f('0x6f')](_0x3ad8ee));delete _0x3ad8ee[_0xa11f('0x1f')];if(_0x361848===0x191){_0x361848=0x190;}_0x4e4e7e[_0xa11f('0x19')](_0x361848)[_0xa11f('0x20')](_0x1ea800[_0xa11f('0x28')]['test']?{'message':_0xa11f('0x70'),'statusCode':_0x3ad8ee[_0xa11f('0x6d')]}:_0x3ad8ee);});};