18ca7422fc350e4d1c0c39ea44c2825a34d38e7c
[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 _0x4db7=['../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','destroy','then','stack','name','index','map','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','SalesforceAccount','rows','catch','show','create','body','find','params','getConfigurations','findOne','SalesforceConfiguration','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SalesforceField','getFields','Task','remoteUri','clientId','clientSecret','username','password','securityToken','substring','lastIndexOf','concat','isNil','ticketType','describe','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Description','string','int','picklist','boolean','email','textarea','phone','remove','includes','label','picklistValues','value','True','true','False','false','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','Wrong\x20credentials','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service'];(function(_0x4a4a43,_0x115ccf){var _0x5893a6=function(_0x14c914){while(--_0x14c914){_0x4a4a43['push'](_0x4a4a43['shift']());}};_0x5893a6(++_0x115ccf);}(_0x4db7,0x6c));var _0x74db=function(_0x27af45,_0x1b57aa){_0x27af45=_0x27af45-0x0;var _0x18df21=_0x4db7[_0x27af45];return _0x18df21;};'use strict';var emlformat=require(_0x74db('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x74db('0x1'));var rp=require(_0x74db('0x2'));var moment=require(_0x74db('0x3'));var BPromise=require(_0x74db('0x4'));var Mustache=require(_0x74db('0x5'));var util=require(_0x74db('0x6'));var path=require(_0x74db('0x7'));var sox=require(_0x74db('0x8'));var csv=require(_0x74db('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x74db('0xa'));var _=require(_0x74db('0xb'));var squel=require('squel');var crypto=require(_0x74db('0xc'));var jsforce=require(_0x74db('0xd'));var deskjs=require(_0x74db('0xe'));var toCsv=require(_0x74db('0x9'));var querystring=require('querystring');var Papa=require(_0x74db('0xf'));var Redis=require(_0x74db('0x10'));var authService=require(_0x74db('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x74db('0x12'));var hardwareService=require(_0x74db('0x13'));var logger=require('../../config/logger')(_0x74db('0x14'));var utils=require(_0x74db('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x74db('0x16'));var db=require(_0x74db('0x17'))['db'];var integrations=require(_0x74db('0x18'));function respondWithStatusCode(_0x4c957d,_0x4ffe73){_0x4ffe73=_0x4ffe73||0xcc;return function(_0xaabc1c){if(_0xaabc1c){return _0x4c957d[_0x74db('0x19')](_0x4ffe73);}return _0x4c957d[_0x74db('0x1a')](_0x4ffe73)[_0x74db('0x1b')]();};}function respondWithResult(_0x17845c,_0x538139){_0x538139=_0x538139||0xc8;return function(_0x2b4831){if(_0x2b4831){return _0x17845c[_0x74db('0x1a')](_0x538139)[_0x74db('0x1c')](_0x2b4831);}};}function respondWithFilteredResult(_0x170a47,_0xea63b3){return function(_0x2b6eef){if(_0x2b6eef){var _0x55746f=typeof _0xea63b3[_0x74db('0x1d')]===_0x74db('0x1e')&&typeof _0xea63b3[_0x74db('0x1f')]===_0x74db('0x1e');var _0x12528c=_0x2b6eef[_0x74db('0x20')];var _0x598040=_0x55746f?0x0:_0xea63b3[_0x74db('0x1d')];var _0x55e9f0=_0x55746f?_0x2b6eef['count']:_0xea63b3['offset']+_0xea63b3[_0x74db('0x1f')];var _0x168749;if(_0x55e9f0>=_0x12528c){_0x55e9f0=_0x12528c;_0x168749=0xc8;}else{_0x168749=0xce;}_0x170a47[_0x74db('0x1a')](_0x168749);return _0x170a47['set'](_0x74db('0x21'),_0x598040+'-'+_0x55e9f0+'/'+_0x12528c)[_0x74db('0x1c')](_0x2b6eef);}return null;};}function patchUpdates(_0x3be832){return function(_0x4ac178){try{jsonpatch[_0x74db('0x22')](_0x4ac178,_0x3be832,!![]);}catch(_0x109cc1){return BPromise[_0x74db('0x23')](_0x109cc1);}return _0x4ac178[_0x74db('0x24')]();};}function saveUpdates(_0x4e67d6,_0x40cecf){return function(_0x158ca0){if(_0x158ca0){return _0x158ca0['update'](_0x4e67d6)['then'](function(_0x3c022e){return _0x3c022e;});}return null;};}function removeEntity(_0x5eb48e,_0x2d3c10){return function(_0x15a70f){if(_0x15a70f){return _0x15a70f[_0x74db('0x25')]()[_0x74db('0x26')](function(){_0x5eb48e[_0x74db('0x1a')](0xcc)[_0x74db('0x1b')]();});}};}function handleEntityNotFound(_0x39918c,_0x213f39){return function(_0x21d3fa){if(!_0x21d3fa){_0x39918c[_0x74db('0x19')](0x194);}return _0x21d3fa;};}function handleError(_0xcd5efa,_0x2ebf37){_0x2ebf37=_0x2ebf37||0x1f4;return function(_0x4f77d1){logger['error'](_0x4f77d1[_0x74db('0x27')]);if(_0x4f77d1[_0x74db('0x28')]){delete _0x4f77d1['name'];}_0xcd5efa[_0x74db('0x1a')](_0x2ebf37)['send'](_0x4f77d1);};}exports[_0x74db('0x29')]=function(_0x2d8cba,_0x1f3341){var _0x100eea={},_0x13d466={},_0x553809={'count':0x0,'rows':[]};var _0x589b1c=_[_0x74db('0x2a')](db['SalesforceAccount'][_0x74db('0x2b')],function(_0x3a879b){return{'name':_0x3a879b[_0x74db('0x2c')],'type':_0x3a879b[_0x74db('0x2d')][_0x74db('0x2e')]};});_0x13d466['model']=_[_0x74db('0x2a')](_0x589b1c,_0x74db('0x28'));_0x13d466['query']=_[_0x74db('0x2f')](_0x2d8cba[_0x74db('0x30')]);_0x13d466[_0x74db('0x31')]=_[_0x74db('0x32')](_0x13d466[_0x74db('0x33')],_0x13d466[_0x74db('0x30')]);_0x100eea[_0x74db('0x34')]=_['intersection'](_0x13d466[_0x74db('0x33')],qs['fields'](_0x2d8cba[_0x74db('0x30')][_0x74db('0x35')]));_0x100eea[_0x74db('0x34')]=_0x100eea[_0x74db('0x34')][_0x74db('0x36')]?_0x100eea[_0x74db('0x34')]:_0x13d466[_0x74db('0x33')];if(!_0x2d8cba[_0x74db('0x30')][_0x74db('0x37')]('nolimit')){_0x100eea[_0x74db('0x1f')]=qs[_0x74db('0x1f')](_0x2d8cba[_0x74db('0x30')][_0x74db('0x1f')]);_0x100eea['offset']=qs[_0x74db('0x1d')](_0x2d8cba[_0x74db('0x30')][_0x74db('0x1d')]);}_0x100eea[_0x74db('0x38')]=qs['sort'](_0x2d8cba[_0x74db('0x30')][_0x74db('0x39')]);_0x100eea[_0x74db('0x3a')]=qs[_0x74db('0x31')](_['pick'](_0x2d8cba[_0x74db('0x30')],_0x13d466['filters']),_0x589b1c);if(_0x2d8cba[_0x74db('0x30')][_0x74db('0x3b')]){_0x100eea[_0x74db('0x3a')]=_[_0x74db('0x3c')](_0x100eea[_0x74db('0x3a')],{'$or':_['map'](_0x589b1c,function(_0x1f5ed8){if(_0x1f5ed8[_0x74db('0x2d')]!==_0x74db('0x3d')){var _0x959d78={};_0x959d78[_0x1f5ed8[_0x74db('0x28')]]={'$like':'%'+_0x2d8cba[_0x74db('0x30')][_0x74db('0x3b')]+'%'};return _0x959d78;}})});}_0x100eea=_['merge']({},_0x100eea,_0x2d8cba[_0x74db('0x3e')]);var _0x2c05af={'where':_0x100eea['where']};return db['SalesforceAccount'][_0x74db('0x20')](_0x2c05af)[_0x74db('0x26')](function(_0x491501){_0x553809[_0x74db('0x20')]=_0x491501;if(_0x2d8cba[_0x74db('0x30')][_0x74db('0x3f')]){_0x100eea[_0x74db('0x40')]=[{'all':!![]}];}return db[_0x74db('0x41')]['findAll'](_0x100eea);})[_0x74db('0x26')](function(_0x35eaa7){_0x553809[_0x74db('0x42')]=_0x35eaa7;return _0x553809;})['then'](respondWithFilteredResult(_0x1f3341,_0x100eea))[_0x74db('0x43')](handleError(_0x1f3341,null));};exports[_0x74db('0x44')]=function(_0x26f588,_0x39a7eb){var _0x5a5db8={'raw':![],'where':{'id':_0x26f588['params']['id']}},_0x418669={};_0x418669[_0x74db('0x33')]=_['keys'](db[_0x74db('0x41')][_0x74db('0x2b')]);_0x418669[_0x74db('0x30')]=_[_0x74db('0x2f')](_0x26f588[_0x74db('0x30')]);_0x418669[_0x74db('0x31')]=_[_0x74db('0x32')](_0x418669[_0x74db('0x33')],_0x418669[_0x74db('0x30')]);_0x5a5db8[_0x74db('0x34')]=_[_0x74db('0x32')](_0x418669[_0x74db('0x33')],qs[_0x74db('0x35')](_0x26f588['query']['fields']));_0x5a5db8['attributes']=_0x5a5db8[_0x74db('0x34')][_0x74db('0x36')]?_0x5a5db8[_0x74db('0x34')]:_0x418669['model'];if(_0x26f588['query'][_0x74db('0x3f')]){_0x5a5db8[_0x74db('0x40')]=[{'all':!![]}];}_0x5a5db8=_[_0x74db('0x3c')]({},_0x5a5db8,_0x26f588[_0x74db('0x3e')]);return db[_0x74db('0x41')]['find'](_0x5a5db8)[_0x74db('0x26')](handleEntityNotFound(_0x39a7eb,null))[_0x74db('0x26')](respondWithResult(_0x39a7eb,null))[_0x74db('0x43')](handleError(_0x39a7eb,null));};exports[_0x74db('0x45')]=function(_0x2c167e,_0x302a41){return db[_0x74db('0x41')][_0x74db('0x45')](_0x2c167e[_0x74db('0x46')],{})[_0x74db('0x26')](respondWithResult(_0x302a41,0xc9))[_0x74db('0x43')](handleError(_0x302a41,null));};exports['update']=function(_0x46a02a,_0x2fae17){if(_0x46a02a[_0x74db('0x46')]['id']){delete _0x46a02a[_0x74db('0x46')]['id'];}return db[_0x74db('0x41')][_0x74db('0x47')]({'where':{'id':_0x46a02a['params']['id']}})[_0x74db('0x26')](handleEntityNotFound(_0x2fae17,null))[_0x74db('0x26')](saveUpdates(_0x46a02a[_0x74db('0x46')],null))[_0x74db('0x26')](respondWithResult(_0x2fae17,null))[_0x74db('0x43')](handleError(_0x2fae17,null));};exports[_0x74db('0x25')]=function(_0x27e3fd,_0x1b6d67){return db[_0x74db('0x41')]['find']({'where':{'id':_0x27e3fd[_0x74db('0x48')]['id']}})[_0x74db('0x26')](handleEntityNotFound(_0x1b6d67,null))[_0x74db('0x26')](removeEntity(_0x1b6d67,null))[_0x74db('0x43')](handleError(_0x1b6d67,null));};exports[_0x74db('0x49')]=function(_0x33b06d,_0x62c040,_0x310784){var _0x45a9e9={};var _0x21be7f={};var _0x3f9822;var _0x11b035;return db[_0x74db('0x41')][_0x74db('0x4a')]({'where':{'id':_0x33b06d[_0x74db('0x48')]['id']}})[_0x74db('0x26')](handleEntityNotFound(_0x62c040,null))[_0x74db('0x26')](function(_0x39d09f){if(_0x39d09f){_0x3f9822=_0x39d09f;_0x21be7f[_0x74db('0x33')]=_[_0x74db('0x2f')](db[_0x74db('0x4b')][_0x74db('0x2b')]);_0x21be7f[_0x74db('0x30')]=_[_0x74db('0x2f')](_0x33b06d['query']);_0x21be7f[_0x74db('0x31')]=_['intersection'](_0x21be7f[_0x74db('0x33')],_0x21be7f['query']);_0x45a9e9[_0x74db('0x34')]=_[_0x74db('0x32')](_0x21be7f[_0x74db('0x33')],qs[_0x74db('0x35')](_0x33b06d['query'][_0x74db('0x35')]));_0x45a9e9['attributes']=_0x45a9e9[_0x74db('0x34')][_0x74db('0x36')]?_0x45a9e9['attributes']:_0x21be7f[_0x74db('0x33')];_0x45a9e9[_0x74db('0x38')]=qs[_0x74db('0x39')](_0x33b06d[_0x74db('0x30')][_0x74db('0x39')]);_0x45a9e9['where']=qs['filters'](_['pick'](_0x33b06d[_0x74db('0x30')],_0x21be7f[_0x74db('0x31')]));if(_0x33b06d['query'][_0x74db('0x3b')]){_0x45a9e9['where']=_[_0x74db('0x3c')](_0x45a9e9[_0x74db('0x3a')],{'$or':_[_0x74db('0x2a')](_0x45a9e9[_0x74db('0x34')],function(_0x2b4734){var _0x2d2c70={};_0x2d2c70[_0x2b4734]={'$like':'%'+_0x33b06d[_0x74db('0x30')][_0x74db('0x3b')]+'%'};return _0x2d2c70;})});}_0x45a9e9=_[_0x74db('0x3c')]({},_0x45a9e9,_0x33b06d['options']);return _0x3f9822[_0x74db('0x49')](_0x45a9e9);}})[_0x74db('0x26')](function(_0x5802bf){if(_0x5802bf){_0x11b035=_0x5802bf[_0x74db('0x36')];if(!_0x33b06d[_0x74db('0x30')]['hasOwnProperty'](_0x74db('0x4c'))){_0x45a9e9['limit']=qs[_0x74db('0x1f')](_0x33b06d[_0x74db('0x30')]['limit']);_0x45a9e9[_0x74db('0x1d')]=qs[_0x74db('0x1d')](_0x33b06d['query'][_0x74db('0x1d')]);}return _0x3f9822['getConfigurations'](_0x45a9e9);}})[_0x74db('0x26')](function(_0x1f14d8){if(_0x1f14d8){return _0x1f14d8?{'count':_0x11b035,'rows':_0x1f14d8}:null;}})[_0x74db('0x26')](respondWithResult(_0x62c040,null))[_0x74db('0x43')](handleError(_0x62c040,null));};exports[_0x74db('0x4d')]=function(_0x1d492c,_0x1df5e7,_0x43623f){if(_0x1d492c[_0x74db('0x46')]['id']){delete _0x1d492c[_0x74db('0x46')]['id'];}return db[_0x74db('0x41')][_0x74db('0x4a')]({'where':{'id':_0x1d492c[_0x74db('0x48')]['id']}})[_0x74db('0x26')](handleEntityNotFound(_0x1df5e7,null))[_0x74db('0x26')](function(_0x4394d4){if(_0x4394d4){_0x1d492c[_0x74db('0x46')][_0x74db('0x4e')]=_0x4394d4['id'];_0x1d492c[_0x74db('0x46')][_0x74db('0x4f')]=integrations[_0x74db('0x50')](_0x1d492c[_0x74db('0x46')][_0x74db('0x51')],_0x1d492c[_0x74db('0x46')][_0x74db('0x2d')]);_0x1d492c[_0x74db('0x46')][_0x74db('0x52')]=integrations[_0x74db('0x53')](_0x1d492c[_0x74db('0x46')]['channel'],_0x1d492c[_0x74db('0x46')][_0x74db('0x2d')]);return db[_0x74db('0x4b')][_0x74db('0x45')](_0x1d492c['body'],{'include':[{'model':db[_0x74db('0x54')],'as':_0x74db('0x4f')},{'model':db[_0x74db('0x54')],'as':_0x74db('0x52')}]});}return null;})[_0x74db('0x26')](respondWithResult(_0x1df5e7,null))['catch'](handleError(_0x1df5e7,null));};exports[_0x74db('0x55')]=function(_0xb2d489,_0x214169,_0x2d78a9){var _0x5459a2;var _0x411c67='';var _0x3f7176=_0x74db('0x56');return db[_0x74db('0x41')]['findOne']({'where':{'id':_0xb2d489['params']['id']},'attributes':['id',_0x74db('0x57'),_0x74db('0x58'),_0x74db('0x59'),_0x74db('0x5a'),_0x74db('0x5b'),_0x74db('0x5c')]})[_0x74db('0x26')](handleEntityNotFound(_0x214169,null))[_0x74db('0x26')](function(_0x1290c2){if(_0x1290c2){_0x411c67=_0x1290c2[_0x74db('0x57')];var _0x48c78b=_0x411c67['slice'](-0x1);if(_0x48c78b==='/'){_0x411c67=_0x411c67[_0x74db('0x5d')](0x0,_0x411c67[_0x74db('0x5e')](_0x48c78b));}_0x5459a2=new jsforce['Connection']({'oauth2':{'loginUrl':_0x411c67,'clientId':_0x1290c2['clientId'],'clientSecret':_0x1290c2[_0x74db('0x59')]}});return _0x5459a2['login'](_0x1290c2['username'],_0x1290c2[_0x74db('0x5b')][_0x74db('0x5f')](_0x1290c2['securityToken']));}})[_0x74db('0x26')](function(_0x4996aa){if(_0x4996aa){if(!_[_0x74db('0x60')](_0xb2d489[_0x74db('0x30')]['ticketType'])){_0x3f7176=_0xb2d489[_0x74db('0x30')][_0x74db('0x61')];}return _0x5459a2['sobject'](_0x3f7176)[_0x74db('0x62')]();}})['then'](function(_0x5d74e0){var _0x398bf5=[_0x74db('0x63'),_0x74db('0x64'),_0x74db('0x65'),_0x74db('0x66'),'Subject',_0x74db('0x67')];var _0x32d419=[_0x74db('0x68'),_0x74db('0x69'),_0x74db('0x6a'),_0x74db('0x6b'),_0x74db('0x6c'),_0x74db('0x6d'),_0x74db('0x6e')];if(_0x5d74e0){_[_0x74db('0x6f')](_0x5d74e0['fields'],function(_0x4c4f85){return _0x398bf5[_0x74db('0x70')](_0x4c4f85[_0x74db('0x28')])||!_0x32d419['includes'](_0x4c4f85['type']);});return{'count':_0x5d74e0['fields'][_0x74db('0x36')],'rows':_['map'](_0x5d74e0['fields'],function(_0x291cee){return{'id':_0x291cee[_0x74db('0x28')],'name':_0x291cee[_0x74db('0x71')],'custom':_0x291cee['custom'],'options':_0x291cee[_0x74db('0x72')][_0x74db('0x36')]>0x0?_[_0x74db('0x2a')](_0x291cee[_0x74db('0x72')],function(_0x3ad84a){return{'name':_0x3ad84a['label'],'value':_0x3ad84a[_0x74db('0x73')]};}):_0x291cee[_0x74db('0x2d')]=='boolean'?[{'name':_0x74db('0x74'),'value':_0x74db('0x75')},{'name':_0x74db('0x76'),'value':_0x74db('0x77')}]:[]};})};}})['then'](respondWithResult(_0x214169,null))[_0x74db('0x43')](function(_0x3ed152){var _0x31250b=_0xb2d489[_0x74db('0x30')][_0x74db('0x78')]?0x1f4:_0x3ed152[_0x74db('0x79')]||0x1f4;logger['error'](_0x74db('0x7a'),'getFields',_0x31250b,JSON[_0x74db('0x7b')](_0x3ed152));delete _0x3ed152[_0x74db('0x28')];if(_0x31250b===0x191){_0x31250b=0x190;}_0x214169[_0x74db('0x1a')](_0x31250b)[_0x74db('0x7c')](_0xb2d489[_0x74db('0x30')][_0x74db('0x78')]?{'message':_0x74db('0x7d'),'statusCode':_0x3ed152['statusCode']}:_0x3ed152);});};