Built motion from commit 47436d59.|2.6.7
[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 _0x3de0=['offset','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','SalesforceAccount','rawAttributes','fieldName','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','merge','where','filter','options','includeAll','include','findAll','rows','catch','show','params','create','body','find','findOne','getConfigurations','addConfiguration','AccountId','Subjects','channel','type','Descriptions','getDescriptions','SalesforceConfiguration','SalesforceField','getFields','remoteUri','clientId','clientSecret','username','password','securityToken','slice','Connection','login','concat','ticketType','sobject','OwnerId','IsReminderSet','IsRecurrence','Subject','string','int','boolean','email','textarea','phone','includes','custom','picklistValues','label','value','True','true','False','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','undefined','limit','count'];(function(_0x2a51ba,_0x43d65a){var _0x4e1eb1=function(_0x2994df){while(--_0x2994df){_0x2a51ba['push'](_0x2a51ba['shift']());}};_0x4e1eb1(++_0x43d65a);}(_0x3de0,0x157));var _0x03de=function(_0x54806f,_0x316e89){_0x54806f=_0x54806f-0x0;var _0xf68b50=_0x3de0[_0x54806f];return _0xf68b50;};'use strict';var emlformat=require(_0x03de('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x03de('0x1'));var jsonpatch=require(_0x03de('0x2'));var rp=require(_0x03de('0x3'));var moment=require(_0x03de('0x4'));var BPromise=require(_0x03de('0x5'));var Mustache=require(_0x03de('0x6'));var util=require(_0x03de('0x7'));var path=require(_0x03de('0x8'));var sox=require(_0x03de('0x9'));var csv=require(_0x03de('0xa'));var ejs=require(_0x03de('0xb'));var fs=require('fs');var fs_extra=require(_0x03de('0xc'));var _=require(_0x03de('0xd'));var squel=require(_0x03de('0xe'));var crypto=require(_0x03de('0xf'));var jsforce=require(_0x03de('0x10'));var deskjs=require(_0x03de('0x11'));var toCsv=require(_0x03de('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x03de('0x12'));var qs=require(_0x03de('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x03de('0x14'))(_0x03de('0x15'));var utils=require(_0x03de('0x16'));var config=require(_0x03de('0x17'));var licenseUtil=require(_0x03de('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0x03de('0x19'));function respondWithStatusCode(_0x4f1106,_0x216d4d){_0x216d4d=_0x216d4d||0xcc;return function(_0x22c774){if(_0x22c774){return _0x4f1106[_0x03de('0x1a')](_0x216d4d);}return _0x4f1106[_0x03de('0x1b')](_0x216d4d)[_0x03de('0x1c')]();};}function respondWithResult(_0x1b624f,_0x5d6057){_0x5d6057=_0x5d6057||0xc8;return function(_0xee0b2){if(_0xee0b2){return _0x1b624f[_0x03de('0x1b')](_0x5d6057)['json'](_0xee0b2);}};}function respondWithFilteredResult(_0x16f2a9,_0x348d72){return function(_0x3082a1){if(_0x3082a1){var _0x15ef2b=typeof _0x348d72['offset']===_0x03de('0x1d')&&typeof _0x348d72[_0x03de('0x1e')]===_0x03de('0x1d');var _0x56f094=_0x3082a1[_0x03de('0x1f')];var _0xd12aa5=_0x15ef2b?0x0:_0x348d72[_0x03de('0x20')];var _0x49e14e=_0x15ef2b?_0x3082a1[_0x03de('0x1f')]:_0x348d72[_0x03de('0x20')]+_0x348d72[_0x03de('0x1e')];var _0x2d2ed2;if(_0x49e14e>=_0x56f094){_0x49e14e=_0x56f094;_0x2d2ed2=0xc8;}else{_0x2d2ed2=0xce;}_0x16f2a9[_0x03de('0x1b')](_0x2d2ed2);return _0x16f2a9[_0x03de('0x21')](_0x03de('0x22'),_0xd12aa5+'-'+_0x49e14e+'/'+_0x56f094)[_0x03de('0x23')](_0x3082a1);}return null;};}function patchUpdates(_0x266e4b){return function(_0x19a6ee){try{jsonpatch[_0x03de('0x24')](_0x19a6ee,_0x266e4b,!![]);}catch(_0x17b722){return BPromise[_0x03de('0x25')](_0x17b722);}return _0x19a6ee[_0x03de('0x26')]();};}function saveUpdates(_0x48cdff,_0x22f1ed){return function(_0x4ab284){if(_0x4ab284){return _0x4ab284[_0x03de('0x27')](_0x48cdff)[_0x03de('0x28')](function(_0x31123e){return _0x31123e;});}return null;};}function removeEntity(_0x37a569,_0x3d5149){return function(_0x2222c6){if(_0x2222c6){return _0x2222c6[_0x03de('0x29')]()[_0x03de('0x28')](function(){_0x37a569[_0x03de('0x1b')](0xcc)[_0x03de('0x1c')]();});}};}function handleEntityNotFound(_0x2c802b,_0x2da8c3){return function(_0x4a412e){if(!_0x4a412e){_0x2c802b['sendStatus'](0x194);}return _0x4a412e;};}function handleError(_0x2e9f8d,_0x2bfa30){_0x2bfa30=_0x2bfa30||0x1f4;return function(_0x1423ad){logger[_0x03de('0x2a')](_0x1423ad[_0x03de('0x2b')]);if(_0x1423ad[_0x03de('0x2c')]){delete _0x1423ad[_0x03de('0x2c')];}_0x2e9f8d[_0x03de('0x1b')](_0x2bfa30)[_0x03de('0x2d')](_0x1423ad);};}exports[_0x03de('0x2e')]=function(_0xd4163e,_0x4b5478){var _0x214ced={},_0x1245b4={},_0x9ca15e={'count':0x0,'rows':[]};var _0x2ab73a=_[_0x03de('0x2f')](db[_0x03de('0x30')][_0x03de('0x31')],function(_0x18028e){return{'name':_0x18028e[_0x03de('0x32')],'type':_0x18028e['type']['key']};});_0x1245b4[_0x03de('0x33')]=_[_0x03de('0x2f')](_0x2ab73a,_0x03de('0x2c'));_0x1245b4[_0x03de('0x34')]=_[_0x03de('0x35')](_0xd4163e[_0x03de('0x34')]);_0x1245b4[_0x03de('0x36')]=_['intersection'](_0x1245b4['model'],_0x1245b4['query']);_0x214ced[_0x03de('0x37')]=_[_0x03de('0x38')](_0x1245b4['model'],qs[_0x03de('0x39')](_0xd4163e['query']['fields']));_0x214ced[_0x03de('0x37')]=_0x214ced[_0x03de('0x37')][_0x03de('0x3a')]?_0x214ced[_0x03de('0x37')]:_0x1245b4[_0x03de('0x33')];if(!_0xd4163e[_0x03de('0x34')][_0x03de('0x3b')](_0x03de('0x3c'))){_0x214ced[_0x03de('0x1e')]=qs[_0x03de('0x1e')](_0xd4163e['query'][_0x03de('0x1e')]);_0x214ced[_0x03de('0x20')]=qs['offset'](_0xd4163e[_0x03de('0x34')]['offset']);}_0x214ced[_0x03de('0x3d')]=qs[_0x03de('0x3e')](_0xd4163e['query']['sort']);_0x214ced['where']=qs[_0x03de('0x36')](_[_0x03de('0x3f')](_0xd4163e[_0x03de('0x34')],_0x1245b4[_0x03de('0x36')]),_0x2ab73a);if(_0xd4163e[_0x03de('0x34')]['filter']){_0x214ced['where']=_[_0x03de('0x40')](_0x214ced[_0x03de('0x41')],{'$or':_[_0x03de('0x2f')](_0x2ab73a,function(_0x552fdf){if(_0x552fdf['type']!=='VIRTUAL'){var _0x5f561f={};_0x5f561f[_0x552fdf[_0x03de('0x2c')]]={'$like':'%'+_0xd4163e[_0x03de('0x34')][_0x03de('0x42')]+'%'};return _0x5f561f;}})});}_0x214ced=_[_0x03de('0x40')]({},_0x214ced,_0xd4163e[_0x03de('0x43')]);var _0x44e866={'where':_0x214ced[_0x03de('0x41')]};return db[_0x03de('0x30')][_0x03de('0x1f')](_0x44e866)[_0x03de('0x28')](function(_0x5f2baf){_0x9ca15e['count']=_0x5f2baf;if(_0xd4163e[_0x03de('0x34')][_0x03de('0x44')]){_0x214ced[_0x03de('0x45')]=[{'all':!![]}];}return db['SalesforceAccount'][_0x03de('0x46')](_0x214ced);})[_0x03de('0x28')](function(_0x899403){_0x9ca15e[_0x03de('0x47')]=_0x899403;return _0x9ca15e;})[_0x03de('0x28')](respondWithFilteredResult(_0x4b5478,_0x214ced))[_0x03de('0x48')](handleError(_0x4b5478,null));};exports[_0x03de('0x49')]=function(_0x132d37,_0x321a53){var _0x2ff40e={'raw':![],'where':{'id':_0x132d37[_0x03de('0x4a')]['id']}},_0x4484c9={};_0x4484c9[_0x03de('0x33')]=_[_0x03de('0x35')](db[_0x03de('0x30')][_0x03de('0x31')]);_0x4484c9[_0x03de('0x34')]=_[_0x03de('0x35')](_0x132d37['query']);_0x4484c9['filters']=_[_0x03de('0x38')](_0x4484c9['model'],_0x4484c9[_0x03de('0x34')]);_0x2ff40e['attributes']=_['intersection'](_0x4484c9['model'],qs[_0x03de('0x39')](_0x132d37['query'][_0x03de('0x39')]));_0x2ff40e['attributes']=_0x2ff40e[_0x03de('0x37')][_0x03de('0x3a')]?_0x2ff40e[_0x03de('0x37')]:_0x4484c9[_0x03de('0x33')];if(_0x132d37['query']['includeAll']){_0x2ff40e['include']=[{'all':!![]}];}_0x2ff40e=_[_0x03de('0x40')]({},_0x2ff40e,_0x132d37[_0x03de('0x43')]);return db['SalesforceAccount']['find'](_0x2ff40e)[_0x03de('0x28')](handleEntityNotFound(_0x321a53,null))['then'](respondWithResult(_0x321a53,null))['catch'](handleError(_0x321a53,null));};exports['create']=function(_0x1c75d2,_0x158861){return db[_0x03de('0x30')][_0x03de('0x4b')](_0x1c75d2[_0x03de('0x4c')],{})['then'](respondWithResult(_0x158861,0xc9))[_0x03de('0x48')](handleError(_0x158861,null));};exports[_0x03de('0x27')]=function(_0x320e58,_0x2f9f66){if(_0x320e58['body']['id']){delete _0x320e58[_0x03de('0x4c')]['id'];}return db[_0x03de('0x30')][_0x03de('0x4d')]({'where':{'id':_0x320e58[_0x03de('0x4a')]['id']}})[_0x03de('0x28')](handleEntityNotFound(_0x2f9f66,null))[_0x03de('0x28')](saveUpdates(_0x320e58['body'],null))[_0x03de('0x28')](respondWithResult(_0x2f9f66,null))[_0x03de('0x48')](handleError(_0x2f9f66,null));};exports[_0x03de('0x29')]=function(_0x589c5d,_0x24b592){return db[_0x03de('0x30')][_0x03de('0x4d')]({'where':{'id':_0x589c5d[_0x03de('0x4a')]['id']}})[_0x03de('0x28')](handleEntityNotFound(_0x24b592,null))[_0x03de('0x28')](removeEntity(_0x24b592,null))[_0x03de('0x48')](handleError(_0x24b592,null));};exports['getConfigurations']=function(_0x1c484b,_0x4ea779,_0x183a48){var _0xb93b0b={};var _0x1b8e0c={};var _0x2c144e;var _0x33b7e4;return db[_0x03de('0x30')][_0x03de('0x4e')]({'where':{'id':_0x1c484b[_0x03de('0x4a')]['id']}})[_0x03de('0x28')](handleEntityNotFound(_0x4ea779,null))[_0x03de('0x28')](function(_0x353bfe){if(_0x353bfe){_0x2c144e=_0x353bfe;_0x1b8e0c[_0x03de('0x33')]=_[_0x03de('0x35')](db['SalesforceConfiguration'][_0x03de('0x31')]);_0x1b8e0c[_0x03de('0x34')]=_[_0x03de('0x35')](_0x1c484b[_0x03de('0x34')]);_0x1b8e0c[_0x03de('0x36')]=_['intersection'](_0x1b8e0c['model'],_0x1b8e0c['query']);_0xb93b0b[_0x03de('0x37')]=_[_0x03de('0x38')](_0x1b8e0c[_0x03de('0x33')],qs[_0x03de('0x39')](_0x1c484b[_0x03de('0x34')][_0x03de('0x39')]));_0xb93b0b[_0x03de('0x37')]=_0xb93b0b[_0x03de('0x37')][_0x03de('0x3a')]?_0xb93b0b['attributes']:_0x1b8e0c[_0x03de('0x33')];_0xb93b0b[_0x03de('0x3d')]=qs[_0x03de('0x3e')](_0x1c484b['query'][_0x03de('0x3e')]);_0xb93b0b[_0x03de('0x41')]=qs[_0x03de('0x36')](_[_0x03de('0x3f')](_0x1c484b[_0x03de('0x34')],_0x1b8e0c[_0x03de('0x36')]));if(_0x1c484b[_0x03de('0x34')][_0x03de('0x42')]){_0xb93b0b[_0x03de('0x41')]=_[_0x03de('0x40')](_0xb93b0b[_0x03de('0x41')],{'$or':_[_0x03de('0x2f')](_0xb93b0b[_0x03de('0x37')],function(_0x514bbd){var _0x4d6712={};_0x4d6712[_0x514bbd]={'$like':'%'+_0x1c484b[_0x03de('0x34')][_0x03de('0x42')]+'%'};return _0x4d6712;})});}_0xb93b0b=_[_0x03de('0x40')]({},_0xb93b0b,_0x1c484b['options']);return _0x2c144e[_0x03de('0x4f')](_0xb93b0b);}})[_0x03de('0x28')](function(_0x144f81){if(_0x144f81){_0x33b7e4=_0x144f81[_0x03de('0x3a')];if(!_0x1c484b[_0x03de('0x34')][_0x03de('0x3b')](_0x03de('0x3c'))){_0xb93b0b[_0x03de('0x1e')]=qs['limit'](_0x1c484b[_0x03de('0x34')][_0x03de('0x1e')]);_0xb93b0b[_0x03de('0x20')]=qs[_0x03de('0x20')](_0x1c484b[_0x03de('0x34')][_0x03de('0x20')]);}return _0x2c144e[_0x03de('0x4f')](_0xb93b0b);}})['then'](function(_0x57cdfb){if(_0x57cdfb){return _0x57cdfb?{'count':_0x33b7e4,'rows':_0x57cdfb}:null;}})[_0x03de('0x28')](respondWithResult(_0x4ea779,null))[_0x03de('0x48')](handleError(_0x4ea779,null));};exports[_0x03de('0x50')]=function(_0x329d5b,_0x42ee5f,_0x36d2b6){if(_0x329d5b['body']['id']){delete _0x329d5b[_0x03de('0x4c')]['id'];}return db[_0x03de('0x30')][_0x03de('0x4e')]({'where':{'id':_0x329d5b[_0x03de('0x4a')]['id']}})[_0x03de('0x28')](handleEntityNotFound(_0x42ee5f,null))[_0x03de('0x28')](function(_0x52759f){if(_0x52759f){_0x329d5b['body'][_0x03de('0x51')]=_0x52759f['id'];_0x329d5b[_0x03de('0x4c')][_0x03de('0x52')]=integrations['getSubjects'](_0x329d5b[_0x03de('0x4c')][_0x03de('0x53')],_0x329d5b['body'][_0x03de('0x54')]);_0x329d5b[_0x03de('0x4c')][_0x03de('0x55')]=integrations[_0x03de('0x56')](_0x329d5b['body']['channel'],_0x329d5b['body'][_0x03de('0x54')]);return db[_0x03de('0x57')]['create'](_0x329d5b['body'],{'include':[{'model':db['SalesforceField'],'as':'Subjects'},{'model':db[_0x03de('0x58')],'as':_0x03de('0x55')}]});}return null;})[_0x03de('0x28')](respondWithResult(_0x42ee5f,null))[_0x03de('0x48')](handleError(_0x42ee5f,null));};exports[_0x03de('0x59')]=function(_0x30e8e9,_0x385243,_0x21bc46){var _0x43109b;var _0x338c69='';var _0x35c418='Task';return db[_0x03de('0x30')][_0x03de('0x4e')]({'where':{'id':_0x30e8e9['params']['id']},'attributes':['id',_0x03de('0x5a'),_0x03de('0x5b'),_0x03de('0x5c'),_0x03de('0x5d'),_0x03de('0x5e'),_0x03de('0x5f')]})[_0x03de('0x28')](handleEntityNotFound(_0x385243,null))[_0x03de('0x28')](function(_0x6f14b){if(_0x6f14b){_0x338c69=_0x6f14b[_0x03de('0x5a')];var _0x2aa263=_0x338c69[_0x03de('0x60')](-0x1);if(_0x2aa263==='/'){_0x338c69=_0x338c69['substring'](0x0,_0x338c69['lastIndexOf'](_0x2aa263));}_0x43109b=new jsforce[(_0x03de('0x61'))]({'oauth2':{'loginUrl':_0x338c69,'clientId':_0x6f14b[_0x03de('0x5b')],'clientSecret':_0x6f14b['clientSecret']}});return _0x43109b[_0x03de('0x62')](_0x6f14b[_0x03de('0x5d')],_0x6f14b[_0x03de('0x5e')][_0x03de('0x63')](_0x6f14b[_0x03de('0x5f')]));}})[_0x03de('0x28')](function(_0x48274a){if(_0x48274a){if(!_['isNil'](_0x30e8e9['query']['ticketType'])){_0x35c418=_0x30e8e9[_0x03de('0x34')][_0x03de('0x64')];}return _0x43109b[_0x03de('0x65')](_0x35c418)['describe']();}})['then'](function(_0x1d1220){var _0x5dfba7=[_0x03de('0x66'),'ActivityDate',_0x03de('0x67'),_0x03de('0x68'),_0x03de('0x69'),'Description'];var _0x2788f0=[_0x03de('0x6a'),_0x03de('0x6b'),'picklist',_0x03de('0x6c'),_0x03de('0x6d'),_0x03de('0x6e'),_0x03de('0x6f')];if(_0x1d1220){_['remove'](_0x1d1220[_0x03de('0x39')],function(_0x50aa94){return _0x5dfba7[_0x03de('0x70')](_0x50aa94[_0x03de('0x2c')])||!_0x2788f0[_0x03de('0x70')](_0x50aa94[_0x03de('0x54')]);});return{'count':_0x1d1220[_0x03de('0x39')][_0x03de('0x3a')],'rows':_[_0x03de('0x2f')](_0x1d1220[_0x03de('0x39')],function(_0x135096){return{'id':_0x135096[_0x03de('0x2c')],'name':_0x135096['label'],'custom':_0x135096[_0x03de('0x71')],'options':_0x135096[_0x03de('0x72')][_0x03de('0x3a')]>0x0?_[_0x03de('0x2f')](_0x135096[_0x03de('0x72')],function(_0x54eb84){return{'name':_0x54eb84[_0x03de('0x73')],'value':_0x54eb84[_0x03de('0x74')]};}):_0x135096[_0x03de('0x54')]==_0x03de('0x6c')?[{'name':_0x03de('0x75'),'value':_0x03de('0x76')},{'name':_0x03de('0x77'),'value':'false'}]:[]};})};}})[_0x03de('0x28')](respondWithResult(_0x385243,null))[_0x03de('0x48')](function(_0x12b2f4){var _0x1d9c73=_0x30e8e9[_0x03de('0x34')]['test']?0x1f4:_0x12b2f4[_0x03de('0x78')]||0x1f4;logger[_0x03de('0x2a')](_0x03de('0x79'),'getFields',_0x1d9c73,JSON[_0x03de('0x7a')](_0x12b2f4));delete _0x12b2f4[_0x03de('0x2c')];if(_0x1d9c73===0x191){_0x1d9c73=0x190;}_0x385243['status'](_0x1d9c73)[_0x03de('0x2d')](_0x30e8e9[_0x03de('0x34')][_0x03de('0x7b')]?{'message':_0x03de('0x7c'),'statusCode':_0x12b2f4[_0x03de('0x78')]}:_0x12b2f4);});};