31a2c2808c0b13fdba0f4a8e8cb5056c4250b099
[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 _0xeb32=['jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','update','then','destroy','stack','name','send','index','map','SalesforceAccount','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','params','keys','rawAttributes','find','create','body','getConfigurations','findOne','SalesforceConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','SalesforceField','Task','remoteUri','clientId','clientSecret','password','securityToken','slice','lastIndexOf','Connection','login','username','concat','isNil','ticketType','sobject','Description','string','picklist','boolean','email','textarea','phone','remove','includes','label','custom','picklistValues','value','True','true','False','false','statusCode','error','getFields','test','Wrong\x20credentials','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','crypto'];(function(_0x3050b5,_0x182c6a){var _0x37cceb=function(_0x49b797){while(--_0x49b797){_0x3050b5['push'](_0x3050b5['shift']());}};_0x37cceb(++_0x182c6a);}(_0xeb32,0x6b));var _0x2eb3=function(_0x3a33cb,_0x1a8c5d){_0x3a33cb=_0x3a33cb-0x0;var _0x17ac91=_0xeb32[_0x3a33cb];return _0x17ac91;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2eb3('0x0'));var zipdir=require(_0x2eb3('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2eb3('0x2'));var moment=require(_0x2eb3('0x3'));var BPromise=require(_0x2eb3('0x4'));var Mustache=require(_0x2eb3('0x5'));var util=require(_0x2eb3('0x6'));var path=require(_0x2eb3('0x7'));var sox=require(_0x2eb3('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2eb3('0x9'));var _=require(_0x2eb3('0xa'));var squel=require('squel');var crypto=require(_0x2eb3('0xb'));var jsforce=require(_0x2eb3('0xc'));var deskjs=require(_0x2eb3('0xd'));var toCsv=require(_0x2eb3('0xe'));var querystring=require(_0x2eb3('0xf'));var Papa=require(_0x2eb3('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x2eb3('0x11'));var as=require(_0x2eb3('0x12'));var hardwareService=require(_0x2eb3('0x13'));var logger=require(_0x2eb3('0x14'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x2eb3('0x15'));var db=require(_0x2eb3('0x16'))['db'];var integrations=require(_0x2eb3('0x17'));function respondWithStatusCode(_0x319995,_0x224721){_0x224721=_0x224721||0xcc;return function(_0x1b8bc9){if(_0x1b8bc9){return _0x319995[_0x2eb3('0x18')](_0x224721);}return _0x319995[_0x2eb3('0x19')](_0x224721)[_0x2eb3('0x1a')]();};}function respondWithResult(_0x14b2b0,_0x5adc5b){_0x5adc5b=_0x5adc5b||0xc8;return function(_0x169c44){if(_0x169c44){return _0x14b2b0['status'](_0x5adc5b)[_0x2eb3('0x1b')](_0x169c44);}};}function respondWithFilteredResult(_0x260c1e,_0x23adf0){return function(_0x1f21c9){if(_0x1f21c9){var _0x1a3eb7=typeof _0x23adf0[_0x2eb3('0x1c')]===_0x2eb3('0x1d')&&typeof _0x23adf0[_0x2eb3('0x1e')]===_0x2eb3('0x1d');var _0x2ee390=_0x1f21c9[_0x2eb3('0x1f')];var _0x18e8ee=_0x1a3eb7?0x0:_0x23adf0['offset'];var _0x3f63c4=_0x1a3eb7?_0x1f21c9['count']:_0x23adf0[_0x2eb3('0x1c')]+_0x23adf0[_0x2eb3('0x1e')];var _0x39fb26;if(_0x3f63c4>=_0x2ee390){_0x3f63c4=_0x2ee390;_0x39fb26=0xc8;}else{_0x39fb26=0xce;}_0x260c1e[_0x2eb3('0x19')](_0x39fb26);return _0x260c1e[_0x2eb3('0x20')](_0x2eb3('0x21'),_0x18e8ee+'-'+_0x3f63c4+'/'+_0x2ee390)[_0x2eb3('0x1b')](_0x1f21c9);}return null;};}function patchUpdates(_0x5853b6){return function(_0x58385e){try{jsonpatch['apply'](_0x58385e,_0x5853b6,!![]);}catch(_0x1b974e){return BPromise['reject'](_0x1b974e);}return _0x58385e['save']();};}function saveUpdates(_0x47995a,_0x4b3826){return function(_0x2b41dc){if(_0x2b41dc){return _0x2b41dc[_0x2eb3('0x22')](_0x47995a)[_0x2eb3('0x23')](function(_0x1d3f8f){return _0x1d3f8f;});}return null;};}function removeEntity(_0x7b8752,_0x1e1d14){return function(_0x4bf8a5){if(_0x4bf8a5){return _0x4bf8a5[_0x2eb3('0x24')]()[_0x2eb3('0x23')](function(){_0x7b8752[_0x2eb3('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2b2e91,_0x117fd8){return function(_0x168954){if(!_0x168954){_0x2b2e91[_0x2eb3('0x18')](0x194);}return _0x168954;};}function handleError(_0x151568,_0x11f90f){_0x11f90f=_0x11f90f||0x1f4;return function(_0x30449d){logger['error'](_0x30449d[_0x2eb3('0x25')]);if(_0x30449d[_0x2eb3('0x26')]){delete _0x30449d['name'];}_0x151568[_0x2eb3('0x19')](_0x11f90f)[_0x2eb3('0x27')](_0x30449d);};}exports[_0x2eb3('0x28')]=function(_0x406b9b,_0x4c0d63){var _0x4486b0={},_0x44c7a5={},_0x7e6b37={'count':0x0,'rows':[]};var _0x45bde4=_[_0x2eb3('0x29')](db[_0x2eb3('0x2a')]['rawAttributes'],function(_0x36aca5){return{'name':_0x36aca5[_0x2eb3('0x2b')],'type':_0x36aca5[_0x2eb3('0x2c')][_0x2eb3('0x2d')]};});_0x44c7a5['model']=_['map'](_0x45bde4,_0x2eb3('0x26'));_0x44c7a5[_0x2eb3('0x2e')]=_['keys'](_0x406b9b[_0x2eb3('0x2e')]);_0x44c7a5[_0x2eb3('0x2f')]=_[_0x2eb3('0x30')](_0x44c7a5[_0x2eb3('0x31')],_0x44c7a5['query']);_0x4486b0[_0x2eb3('0x32')]=_[_0x2eb3('0x30')](_0x44c7a5[_0x2eb3('0x31')],qs[_0x2eb3('0x33')](_0x406b9b[_0x2eb3('0x2e')][_0x2eb3('0x33')]));_0x4486b0[_0x2eb3('0x32')]=_0x4486b0['attributes'][_0x2eb3('0x34')]?_0x4486b0['attributes']:_0x44c7a5['model'];if(!_0x406b9b['query'][_0x2eb3('0x35')](_0x2eb3('0x36'))){_0x4486b0[_0x2eb3('0x1e')]=qs[_0x2eb3('0x1e')](_0x406b9b[_0x2eb3('0x2e')]['limit']);_0x4486b0[_0x2eb3('0x1c')]=qs[_0x2eb3('0x1c')](_0x406b9b[_0x2eb3('0x2e')]['offset']);}_0x4486b0[_0x2eb3('0x37')]=qs[_0x2eb3('0x38')](_0x406b9b[_0x2eb3('0x2e')][_0x2eb3('0x38')]);_0x4486b0[_0x2eb3('0x39')]=qs[_0x2eb3('0x2f')](_[_0x2eb3('0x3a')](_0x406b9b[_0x2eb3('0x2e')],_0x44c7a5[_0x2eb3('0x2f')]),_0x45bde4);if(_0x406b9b[_0x2eb3('0x2e')][_0x2eb3('0x3b')]){_0x4486b0['where']=_[_0x2eb3('0x3c')](_0x4486b0[_0x2eb3('0x39')],{'$or':_[_0x2eb3('0x29')](_0x45bde4,function(_0x28e9d3){if(_0x28e9d3[_0x2eb3('0x2c')]!==_0x2eb3('0x3d')){var _0x5ebc29={};_0x5ebc29[_0x28e9d3[_0x2eb3('0x26')]]={'$like':'%'+_0x406b9b[_0x2eb3('0x2e')]['filter']+'%'};return _0x5ebc29;}})});}_0x4486b0=_[_0x2eb3('0x3c')]({},_0x4486b0,_0x406b9b[_0x2eb3('0x3e')]);var _0x2235b1={'where':_0x4486b0[_0x2eb3('0x39')]};return db[_0x2eb3('0x2a')][_0x2eb3('0x1f')](_0x2235b1)[_0x2eb3('0x23')](function(_0x2765ee){_0x7e6b37[_0x2eb3('0x1f')]=_0x2765ee;if(_0x406b9b[_0x2eb3('0x2e')][_0x2eb3('0x3f')]){_0x4486b0['include']=[{'all':!![]}];}return db[_0x2eb3('0x2a')][_0x2eb3('0x40')](_0x4486b0);})[_0x2eb3('0x23')](function(_0x4838ed){_0x7e6b37[_0x2eb3('0x41')]=_0x4838ed;return _0x7e6b37;})[_0x2eb3('0x23')](respondWithFilteredResult(_0x4c0d63,_0x4486b0))[_0x2eb3('0x42')](handleError(_0x4c0d63,null));};exports['show']=function(_0xe9a8d1,_0x554148){var _0x36c457={'raw':![],'where':{'id':_0xe9a8d1[_0x2eb3('0x43')]['id']}},_0xf4ec2c={};_0xf4ec2c[_0x2eb3('0x31')]=_[_0x2eb3('0x44')](db[_0x2eb3('0x2a')][_0x2eb3('0x45')]);_0xf4ec2c[_0x2eb3('0x2e')]=_[_0x2eb3('0x44')](_0xe9a8d1[_0x2eb3('0x2e')]);_0xf4ec2c[_0x2eb3('0x2f')]=_[_0x2eb3('0x30')](_0xf4ec2c[_0x2eb3('0x31')],_0xf4ec2c[_0x2eb3('0x2e')]);_0x36c457[_0x2eb3('0x32')]=_[_0x2eb3('0x30')](_0xf4ec2c[_0x2eb3('0x31')],qs['fields'](_0xe9a8d1[_0x2eb3('0x2e')]['fields']));_0x36c457['attributes']=_0x36c457[_0x2eb3('0x32')][_0x2eb3('0x34')]?_0x36c457[_0x2eb3('0x32')]:_0xf4ec2c[_0x2eb3('0x31')];if(_0xe9a8d1[_0x2eb3('0x2e')][_0x2eb3('0x3f')]){_0x36c457['include']=[{'all':!![]}];}_0x36c457=_[_0x2eb3('0x3c')]({},_0x36c457,_0xe9a8d1['options']);return db['SalesforceAccount'][_0x2eb3('0x46')](_0x36c457)[_0x2eb3('0x23')](handleEntityNotFound(_0x554148,null))[_0x2eb3('0x23')](respondWithResult(_0x554148,null))[_0x2eb3('0x42')](handleError(_0x554148,null));};exports[_0x2eb3('0x47')]=function(_0xa6cc1a,_0x16ffe0){return db['SalesforceAccount'][_0x2eb3('0x47')](_0xa6cc1a[_0x2eb3('0x48')],{})[_0x2eb3('0x23')](respondWithResult(_0x16ffe0,0xc9))[_0x2eb3('0x42')](handleError(_0x16ffe0,null));};exports[_0x2eb3('0x22')]=function(_0x2d40ee,_0x5d23c5){if(_0x2d40ee['body']['id']){delete _0x2d40ee[_0x2eb3('0x48')]['id'];}return db[_0x2eb3('0x2a')][_0x2eb3('0x46')]({'where':{'id':_0x2d40ee[_0x2eb3('0x43')]['id']}})[_0x2eb3('0x23')](handleEntityNotFound(_0x5d23c5,null))[_0x2eb3('0x23')](saveUpdates(_0x2d40ee[_0x2eb3('0x48')],null))[_0x2eb3('0x23')](respondWithResult(_0x5d23c5,null))[_0x2eb3('0x42')](handleError(_0x5d23c5,null));};exports[_0x2eb3('0x24')]=function(_0x1b622c,_0x2142a2){return db[_0x2eb3('0x2a')]['find']({'where':{'id':_0x1b622c['params']['id']}})[_0x2eb3('0x23')](handleEntityNotFound(_0x2142a2,null))['then'](removeEntity(_0x2142a2,null))[_0x2eb3('0x42')](handleError(_0x2142a2,null));};exports[_0x2eb3('0x49')]=function(_0x5cefb0,_0x43ff9f,_0x3e1bf2){var _0x536fda={};var _0x38aa2e={};var _0x16487c;var _0x4cc7fb;return db['SalesforceAccount'][_0x2eb3('0x4a')]({'where':{'id':_0x5cefb0[_0x2eb3('0x43')]['id']}})[_0x2eb3('0x23')](handleEntityNotFound(_0x43ff9f,null))[_0x2eb3('0x23')](function(_0x32c714){if(_0x32c714){_0x16487c=_0x32c714;_0x38aa2e[_0x2eb3('0x31')]=_[_0x2eb3('0x44')](db[_0x2eb3('0x4b')][_0x2eb3('0x45')]);_0x38aa2e[_0x2eb3('0x2e')]=_['keys'](_0x5cefb0['query']);_0x38aa2e[_0x2eb3('0x2f')]=_[_0x2eb3('0x30')](_0x38aa2e[_0x2eb3('0x31')],_0x38aa2e[_0x2eb3('0x2e')]);_0x536fda['attributes']=_[_0x2eb3('0x30')](_0x38aa2e[_0x2eb3('0x31')],qs[_0x2eb3('0x33')](_0x5cefb0[_0x2eb3('0x2e')][_0x2eb3('0x33')]));_0x536fda[_0x2eb3('0x32')]=_0x536fda[_0x2eb3('0x32')][_0x2eb3('0x34')]?_0x536fda[_0x2eb3('0x32')]:_0x38aa2e['model'];_0x536fda['order']=qs['sort'](_0x5cefb0[_0x2eb3('0x2e')][_0x2eb3('0x38')]);_0x536fda[_0x2eb3('0x39')]=qs['filters'](_[_0x2eb3('0x3a')](_0x5cefb0[_0x2eb3('0x2e')],_0x38aa2e[_0x2eb3('0x2f')]));if(_0x5cefb0[_0x2eb3('0x2e')][_0x2eb3('0x3b')]){_0x536fda[_0x2eb3('0x39')]=_[_0x2eb3('0x3c')](_0x536fda[_0x2eb3('0x39')],{'$or':_[_0x2eb3('0x29')](_0x536fda['attributes'],function(_0x374864){var _0x4abc72={};_0x4abc72[_0x374864]={'$like':'%'+_0x5cefb0[_0x2eb3('0x2e')][_0x2eb3('0x3b')]+'%'};return _0x4abc72;})});}_0x536fda=_['merge']({},_0x536fda,_0x5cefb0[_0x2eb3('0x3e')]);return _0x16487c[_0x2eb3('0x49')](_0x536fda);}})['then'](function(_0x3dd402){if(_0x3dd402){_0x4cc7fb=_0x3dd402[_0x2eb3('0x34')];if(!_0x5cefb0[_0x2eb3('0x2e')][_0x2eb3('0x35')](_0x2eb3('0x36'))){_0x536fda[_0x2eb3('0x1e')]=qs[_0x2eb3('0x1e')](_0x5cefb0['query'][_0x2eb3('0x1e')]);_0x536fda[_0x2eb3('0x1c')]=qs[_0x2eb3('0x1c')](_0x5cefb0['query']['offset']);}return _0x16487c[_0x2eb3('0x49')](_0x536fda);}})[_0x2eb3('0x23')](function(_0x51fa16){if(_0x51fa16){return _0x51fa16?{'count':_0x4cc7fb,'rows':_0x51fa16}:null;}})['then'](respondWithResult(_0x43ff9f,null))[_0x2eb3('0x42')](handleError(_0x43ff9f,null));};exports['addConfiguration']=function(_0x2bb0eb,_0x32d27e,_0x4b6390){if(_0x2bb0eb[_0x2eb3('0x48')]['id']){delete _0x2bb0eb['body']['id'];}return db['SalesforceAccount'][_0x2eb3('0x4a')]({'where':{'id':_0x2bb0eb[_0x2eb3('0x43')]['id']}})[_0x2eb3('0x23')](handleEntityNotFound(_0x32d27e,null))[_0x2eb3('0x23')](function(_0x5e8c21){if(_0x5e8c21){_0x2bb0eb[_0x2eb3('0x48')][_0x2eb3('0x4c')]=_0x5e8c21['id'];_0x2bb0eb[_0x2eb3('0x48')][_0x2eb3('0x4d')]=integrations[_0x2eb3('0x4e')](_0x2bb0eb[_0x2eb3('0x48')][_0x2eb3('0x4f')],_0x2bb0eb['body'][_0x2eb3('0x2c')]);_0x2bb0eb['body'][_0x2eb3('0x50')]=integrations['getDescriptions'](_0x2bb0eb[_0x2eb3('0x48')][_0x2eb3('0x4f')],_0x2bb0eb['body'][_0x2eb3('0x2c')]);return db['SalesforceConfiguration']['create'](_0x2bb0eb[_0x2eb3('0x48')],{'include':[{'model':db['SalesforceField'],'as':'Subjects'},{'model':db[_0x2eb3('0x51')],'as':_0x2eb3('0x50')}]});}return null;})[_0x2eb3('0x23')](respondWithResult(_0x32d27e,null))[_0x2eb3('0x42')](handleError(_0x32d27e,null));};exports['getFields']=function(_0x4f571f,_0xb6b25d,_0xd804a9){var _0x4f5ad7;var _0x261b6b='';var _0x1edcb2=_0x2eb3('0x52');return db[_0x2eb3('0x2a')][_0x2eb3('0x4a')]({'where':{'id':_0x4f571f[_0x2eb3('0x43')]['id']},'attributes':['id',_0x2eb3('0x53'),_0x2eb3('0x54'),_0x2eb3('0x55'),'username',_0x2eb3('0x56'),_0x2eb3('0x57')]})[_0x2eb3('0x23')](handleEntityNotFound(_0xb6b25d,null))[_0x2eb3('0x23')](function(_0x51feba){if(_0x51feba){_0x261b6b=_0x51feba[_0x2eb3('0x53')];var _0x1f5896=_0x261b6b[_0x2eb3('0x58')](-0x1);if(_0x1f5896==='/'){_0x261b6b=_0x261b6b['substring'](0x0,_0x261b6b[_0x2eb3('0x59')](_0x1f5896));}_0x4f5ad7=new jsforce[(_0x2eb3('0x5a'))]({'oauth2':{'loginUrl':_0x261b6b,'clientId':_0x51feba[_0x2eb3('0x54')],'clientSecret':_0x51feba[_0x2eb3('0x55')]}});return _0x4f5ad7[_0x2eb3('0x5b')](_0x51feba[_0x2eb3('0x5c')],_0x51feba[_0x2eb3('0x56')][_0x2eb3('0x5d')](_0x51feba[_0x2eb3('0x57')]));}})[_0x2eb3('0x23')](function(_0x1a9a0b){if(_0x1a9a0b){if(!_[_0x2eb3('0x5e')](_0x4f571f['query'][_0x2eb3('0x5f')])){_0x1edcb2=_0x4f571f[_0x2eb3('0x2e')]['ticketType'];}return _0x4f5ad7[_0x2eb3('0x60')](_0x1edcb2)['describe']();}})[_0x2eb3('0x23')](function(_0x56ecbc){var _0x1946ca=['OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject',_0x2eb3('0x61')];var _0x4ba8de=[_0x2eb3('0x62'),'int',_0x2eb3('0x63'),_0x2eb3('0x64'),_0x2eb3('0x65'),_0x2eb3('0x66'),_0x2eb3('0x67')];if(_0x56ecbc){_[_0x2eb3('0x68')](_0x56ecbc[_0x2eb3('0x33')],function(_0x3a3c1e){return _0x1946ca[_0x2eb3('0x69')](_0x3a3c1e[_0x2eb3('0x26')])||!_0x4ba8de['includes'](_0x3a3c1e[_0x2eb3('0x2c')]);});return{'count':_0x56ecbc[_0x2eb3('0x33')][_0x2eb3('0x34')],'rows':_[_0x2eb3('0x29')](_0x56ecbc[_0x2eb3('0x33')],function(_0x41af18){return{'id':_0x41af18[_0x2eb3('0x26')],'name':_0x41af18[_0x2eb3('0x6a')],'custom':_0x41af18[_0x2eb3('0x6b')],'options':_0x41af18['picklistValues'][_0x2eb3('0x34')]>0x0?_['map'](_0x41af18[_0x2eb3('0x6c')],function(_0x59e582){return{'name':_0x59e582['label'],'value':_0x59e582[_0x2eb3('0x6d')]};}):_0x41af18[_0x2eb3('0x2c')]=='boolean'?[{'name':_0x2eb3('0x6e'),'value':_0x2eb3('0x6f')},{'name':_0x2eb3('0x70'),'value':_0x2eb3('0x71')}]:[]};})};}})[_0x2eb3('0x23')](respondWithResult(_0xb6b25d,null))[_0x2eb3('0x42')](function(_0x4c731e){var _0x4d4dd8=_0x4f571f[_0x2eb3('0x2e')]['test']?0x1f4:_0x4c731e[_0x2eb3('0x72')]||0x1f4;logger[_0x2eb3('0x73')]('getFields,\x20%s,\x20%s,\x20%s',_0x2eb3('0x74'),_0x4d4dd8,JSON['stringify'](_0x4c731e));delete _0x4c731e[_0x2eb3('0x26')];if(_0x4d4dd8===0x191){_0x4d4dd8=0x190;}_0xb6b25d[_0x2eb3('0x19')](_0x4d4dd8)[_0x2eb3('0x27')](_0x4f571f[_0x2eb3('0x2e')][_0x2eb3('0x75')]?{'message':_0x2eb3('0x76'),'statusCode':_0x4c731e[_0x2eb3('0x72')]}:_0x4c731e);});};