Built motion from commit 85328c08.|2.5.50
[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 _0xd176=['destroy','then','error','stack','name','send','index','map','SalesforceAccount','rawAttributes','type','key','query','keys','filters','attributes','intersection','model','length','order','sort','where','pick','filter','merge','options','count','includeAll','include','findAll','show','params','fields','find','catch','create','body','update','getConfigurations','hasOwnProperty','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','SalesforceField','getFields','clientSecret','username','securityToken','slice','substring','lastIndexOf','Connection','login','concat','isNil','ticketType','describe','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject','Description','string','picklist','boolean','email','textarea','phone','remove','includes','label','custom','value','test','statusCode','stringify','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','bluebird','mustache','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','undefined','limit','offset','json'];(function(_0x2fbbc2,_0x5d1b8c){var _0x4a55f5=function(_0x19a926){while(--_0x19a926){_0x2fbbc2['push'](_0x2fbbc2['shift']());}};_0x4a55f5(++_0x5d1b8c);}(_0xd176,0x19c));var _0x6d17=function(_0x204ad4,_0x502841){_0x204ad4=_0x204ad4-0x0;var _0x50675f=_0xd176[_0x204ad4];return _0x50675f;};'use strict';var emlformat=require(_0x6d17('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6d17('0x1'));var jsonpatch=require(_0x6d17('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6d17('0x3'));var Mustache=require(_0x6d17('0x4'));var util=require('util');var path=require('path');var sox=require(_0x6d17('0x5'));var csv=require('to-csv');var ejs=require(_0x6d17('0x6'));var fs=require('fs');var fs_extra=require(_0x6d17('0x7'));var _=require('lodash');var squel=require(_0x6d17('0x8'));var crypto=require(_0x6d17('0x9'));var jsforce=require(_0x6d17('0xa'));var deskjs=require(_0x6d17('0xb'));var toCsv=require('to-csv');var querystring=require(_0x6d17('0xc'));var Papa=require(_0x6d17('0xd'));var Redis=require(_0x6d17('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x6d17('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6d17('0x10'));var logger=require(_0x6d17('0x11'))(_0x6d17('0x12'));var utils=require('../../config/utils');var config=require(_0x6d17('0x13'));var licenseUtil=require(_0x6d17('0x14'));var db=require(_0x6d17('0x15'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x17983f,_0x3c4bb7){_0x3c4bb7=_0x3c4bb7||0xcc;return function(_0x553433){if(_0x553433){return _0x17983f[_0x6d17('0x16')](_0x3c4bb7);}return _0x17983f['status'](_0x3c4bb7)['end']();};}function respondWithResult(_0x739973,_0x2f2ea4){_0x2f2ea4=_0x2f2ea4||0xc8;return function(_0x237e98){if(_0x237e98){return _0x739973[_0x6d17('0x17')](_0x2f2ea4)['json'](_0x237e98);}};}function respondWithFilteredResult(_0x719f75,_0x2af85b){return function(_0x16400c){if(_0x16400c){var _0x3ab83f=typeof _0x2af85b['offset']===_0x6d17('0x18')&&typeof _0x2af85b[_0x6d17('0x19')]===_0x6d17('0x18');var _0x49a5c7=_0x16400c['count'];var _0x44d56b=_0x3ab83f?0x0:_0x2af85b[_0x6d17('0x1a')];var _0x4c76f0=_0x3ab83f?_0x16400c['count']:_0x2af85b[_0x6d17('0x1a')]+_0x2af85b[_0x6d17('0x19')];var _0x5a5fc5;if(_0x4c76f0>=_0x49a5c7){_0x4c76f0=_0x49a5c7;_0x5a5fc5=0xc8;}else{_0x5a5fc5=0xce;}_0x719f75[_0x6d17('0x17')](_0x5a5fc5);return _0x719f75['set']('Content-Range',_0x44d56b+'-'+_0x4c76f0+'/'+_0x49a5c7)[_0x6d17('0x1b')](_0x16400c);}return null;};}function patchUpdates(_0xee5258){return function(_0x4fbe48){try{jsonpatch['apply'](_0x4fbe48,_0xee5258,!![]);}catch(_0x277fb1){return BPromise['reject'](_0x277fb1);}return _0x4fbe48['save']();};}function saveUpdates(_0x273566,_0xca1e66){return function(_0xd94f5f){if(_0xd94f5f){return _0xd94f5f['update'](_0x273566)['then'](function(_0x18fdd4){return _0x18fdd4;});}return null;};}function removeEntity(_0x5a6871,_0x1a7779){return function(_0x55a39e){if(_0x55a39e){return _0x55a39e[_0x6d17('0x1c')]()[_0x6d17('0x1d')](function(){_0x5a6871[_0x6d17('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4b19b1,_0x4ba466){return function(_0x20ad06){if(!_0x20ad06){_0x4b19b1[_0x6d17('0x16')](0x194);}return _0x20ad06;};}function handleError(_0x55b311,_0x33eb0e){_0x33eb0e=_0x33eb0e||0x1f4;return function(_0x1dbb50){logger[_0x6d17('0x1e')](_0x1dbb50[_0x6d17('0x1f')]);if(_0x1dbb50['name']){delete _0x1dbb50[_0x6d17('0x20')];}_0x55b311[_0x6d17('0x17')](_0x33eb0e)[_0x6d17('0x21')](_0x1dbb50);};}exports[_0x6d17('0x22')]=function(_0x42d861,_0x4bf6e7){var _0x30925c={},_0x4618f6={},_0x5d1c32={'count':0x0,'rows':[]};var _0xbd549d=_[_0x6d17('0x23')](db[_0x6d17('0x24')][_0x6d17('0x25')],function(_0x40207f){return{'name':_0x40207f['fieldName'],'type':_0x40207f[_0x6d17('0x26')][_0x6d17('0x27')]};});_0x4618f6['model']=_[_0x6d17('0x23')](_0xbd549d,'name');_0x4618f6[_0x6d17('0x28')]=_[_0x6d17('0x29')](_0x42d861[_0x6d17('0x28')]);_0x4618f6[_0x6d17('0x2a')]=_['intersection'](_0x4618f6['model'],_0x4618f6[_0x6d17('0x28')]);_0x30925c[_0x6d17('0x2b')]=_[_0x6d17('0x2c')](_0x4618f6[_0x6d17('0x2d')],qs['fields'](_0x42d861[_0x6d17('0x28')]['fields']));_0x30925c[_0x6d17('0x2b')]=_0x30925c[_0x6d17('0x2b')][_0x6d17('0x2e')]?_0x30925c[_0x6d17('0x2b')]:_0x4618f6[_0x6d17('0x2d')];if(!_0x42d861[_0x6d17('0x28')]['hasOwnProperty']('nolimit')){_0x30925c[_0x6d17('0x19')]=qs['limit'](_0x42d861[_0x6d17('0x28')][_0x6d17('0x19')]);_0x30925c[_0x6d17('0x1a')]=qs[_0x6d17('0x1a')](_0x42d861['query'][_0x6d17('0x1a')]);}_0x30925c[_0x6d17('0x2f')]=qs['sort'](_0x42d861['query'][_0x6d17('0x30')]);_0x30925c[_0x6d17('0x31')]=qs[_0x6d17('0x2a')](_[_0x6d17('0x32')](_0x42d861[_0x6d17('0x28')],_0x4618f6[_0x6d17('0x2a')]),_0xbd549d);if(_0x42d861[_0x6d17('0x28')][_0x6d17('0x33')]){_0x30925c['where']=_[_0x6d17('0x34')](_0x30925c[_0x6d17('0x31')],{'$or':_[_0x6d17('0x23')](_0xbd549d,function(_0x3a6b9a){if(_0x3a6b9a[_0x6d17('0x26')]!=='VIRTUAL'){var _0x103bb7={};_0x103bb7[_0x3a6b9a['name']]={'$like':'%'+_0x42d861[_0x6d17('0x28')][_0x6d17('0x33')]+'%'};return _0x103bb7;}})});}_0x30925c=_['merge']({},_0x30925c,_0x42d861[_0x6d17('0x35')]);var _0x399c70={'where':_0x30925c[_0x6d17('0x31')]};return db[_0x6d17('0x24')][_0x6d17('0x36')](_0x399c70)['then'](function(_0x1bafc1){_0x5d1c32['count']=_0x1bafc1;if(_0x42d861[_0x6d17('0x28')][_0x6d17('0x37')]){_0x30925c[_0x6d17('0x38')]=[{'all':!![]}];}return db[_0x6d17('0x24')][_0x6d17('0x39')](_0x30925c);})[_0x6d17('0x1d')](function(_0x9809d3){_0x5d1c32['rows']=_0x9809d3;return _0x5d1c32;})['then'](respondWithFilteredResult(_0x4bf6e7,_0x30925c))['catch'](handleError(_0x4bf6e7,null));};exports[_0x6d17('0x3a')]=function(_0x228efe,_0x424120){var _0x5a135c={'raw':![],'where':{'id':_0x228efe[_0x6d17('0x3b')]['id']}},_0x1be626={};_0x1be626['model']=_[_0x6d17('0x29')](db[_0x6d17('0x24')][_0x6d17('0x25')]);_0x1be626['query']=_['keys'](_0x228efe[_0x6d17('0x28')]);_0x1be626[_0x6d17('0x2a')]=_['intersection'](_0x1be626[_0x6d17('0x2d')],_0x1be626['query']);_0x5a135c[_0x6d17('0x2b')]=_[_0x6d17('0x2c')](_0x1be626[_0x6d17('0x2d')],qs[_0x6d17('0x3c')](_0x228efe['query'][_0x6d17('0x3c')]));_0x5a135c[_0x6d17('0x2b')]=_0x5a135c[_0x6d17('0x2b')][_0x6d17('0x2e')]?_0x5a135c[_0x6d17('0x2b')]:_0x1be626[_0x6d17('0x2d')];if(_0x228efe[_0x6d17('0x28')][_0x6d17('0x37')]){_0x5a135c[_0x6d17('0x38')]=[{'all':!![]}];}_0x5a135c=_[_0x6d17('0x34')]({},_0x5a135c,_0x228efe['options']);return db[_0x6d17('0x24')][_0x6d17('0x3d')](_0x5a135c)[_0x6d17('0x1d')](handleEntityNotFound(_0x424120,null))[_0x6d17('0x1d')](respondWithResult(_0x424120,null))[_0x6d17('0x3e')](handleError(_0x424120,null));};exports[_0x6d17('0x3f')]=function(_0x2d1e2e,_0x5314dd){return db[_0x6d17('0x24')][_0x6d17('0x3f')](_0x2d1e2e[_0x6d17('0x40')],{})['then'](respondWithResult(_0x5314dd,0xc9))[_0x6d17('0x3e')](handleError(_0x5314dd,null));};exports[_0x6d17('0x41')]=function(_0x20210e,_0x3d5a13){if(_0x20210e[_0x6d17('0x40')]['id']){delete _0x20210e['body']['id'];}return db['SalesforceAccount']['find']({'where':{'id':_0x20210e[_0x6d17('0x3b')]['id']}})[_0x6d17('0x1d')](handleEntityNotFound(_0x3d5a13,null))[_0x6d17('0x1d')](saveUpdates(_0x20210e[_0x6d17('0x40')],null))['then'](respondWithResult(_0x3d5a13,null))[_0x6d17('0x3e')](handleError(_0x3d5a13,null));};exports[_0x6d17('0x1c')]=function(_0x4cddb6,_0x35ae93){return db[_0x6d17('0x24')]['find']({'where':{'id':_0x4cddb6[_0x6d17('0x3b')]['id']}})[_0x6d17('0x1d')](handleEntityNotFound(_0x35ae93,null))['then'](removeEntity(_0x35ae93,null))[_0x6d17('0x3e')](handleError(_0x35ae93,null));};exports[_0x6d17('0x42')]=function(_0xafdc8c,_0x1b81b1,_0xd923f7){var _0x173c33={};var _0x56b0f8={};var _0xf82207;var _0x2f5969;return db[_0x6d17('0x24')]['findOne']({'where':{'id':_0xafdc8c[_0x6d17('0x3b')]['id']}})['then'](handleEntityNotFound(_0x1b81b1,null))['then'](function(_0x26c756){if(_0x26c756){_0xf82207=_0x26c756;_0x56b0f8[_0x6d17('0x2d')]=_[_0x6d17('0x29')](db['SalesforceConfiguration'][_0x6d17('0x25')]);_0x56b0f8[_0x6d17('0x28')]=_['keys'](_0xafdc8c[_0x6d17('0x28')]);_0x56b0f8[_0x6d17('0x2a')]=_[_0x6d17('0x2c')](_0x56b0f8[_0x6d17('0x2d')],_0x56b0f8[_0x6d17('0x28')]);_0x173c33[_0x6d17('0x2b')]=_[_0x6d17('0x2c')](_0x56b0f8[_0x6d17('0x2d')],qs['fields'](_0xafdc8c[_0x6d17('0x28')][_0x6d17('0x3c')]));_0x173c33[_0x6d17('0x2b')]=_0x173c33['attributes'][_0x6d17('0x2e')]?_0x173c33['attributes']:_0x56b0f8['model'];_0x173c33[_0x6d17('0x2f')]=qs[_0x6d17('0x30')](_0xafdc8c[_0x6d17('0x28')][_0x6d17('0x30')]);_0x173c33[_0x6d17('0x31')]=qs[_0x6d17('0x2a')](_[_0x6d17('0x32')](_0xafdc8c['query'],_0x56b0f8[_0x6d17('0x2a')]));if(_0xafdc8c[_0x6d17('0x28')][_0x6d17('0x33')]){_0x173c33['where']=_[_0x6d17('0x34')](_0x173c33[_0x6d17('0x31')],{'$or':_[_0x6d17('0x23')](_0x173c33['attributes'],function(_0xc1b34f){var _0x11dced={};_0x11dced[_0xc1b34f]={'$like':'%'+_0xafdc8c[_0x6d17('0x28')][_0x6d17('0x33')]+'%'};return _0x11dced;})});}_0x173c33=_[_0x6d17('0x34')]({},_0x173c33,_0xafdc8c['options']);return _0xf82207['getConfigurations'](_0x173c33);}})['then'](function(_0x52f2b8){if(_0x52f2b8){_0x2f5969=_0x52f2b8['length'];if(!_0xafdc8c[_0x6d17('0x28')][_0x6d17('0x43')]('nolimit')){_0x173c33[_0x6d17('0x19')]=qs['limit'](_0xafdc8c[_0x6d17('0x28')]['limit']);_0x173c33['offset']=qs['offset'](_0xafdc8c['query'][_0x6d17('0x1a')]);}return _0xf82207[_0x6d17('0x42')](_0x173c33);}})['then'](function(_0x3a9329){if(_0x3a9329){return _0x3a9329?{'count':_0x2f5969,'rows':_0x3a9329}:null;}})[_0x6d17('0x1d')](respondWithResult(_0x1b81b1,null))['catch'](handleError(_0x1b81b1,null));};exports[_0x6d17('0x44')]=function(_0x4db3dc,_0x422ee3,_0x271bc0){if(_0x4db3dc[_0x6d17('0x40')]['id']){delete _0x4db3dc[_0x6d17('0x40')]['id'];}return db[_0x6d17('0x24')][_0x6d17('0x45')]({'where':{'id':_0x4db3dc[_0x6d17('0x3b')]['id']}})[_0x6d17('0x1d')](handleEntityNotFound(_0x422ee3,null))['then'](function(_0x11eb16){if(_0x11eb16){_0x4db3dc[_0x6d17('0x40')][_0x6d17('0x46')]=_0x11eb16['id'];_0x4db3dc[_0x6d17('0x40')][_0x6d17('0x47')]=integrations[_0x6d17('0x48')](_0x4db3dc[_0x6d17('0x40')][_0x6d17('0x49')],_0x4db3dc[_0x6d17('0x40')][_0x6d17('0x26')]);_0x4db3dc['body'][_0x6d17('0x4a')]=integrations['getDescriptions'](_0x4db3dc[_0x6d17('0x40')]['channel'],_0x4db3dc[_0x6d17('0x40')][_0x6d17('0x26')]);return db['SalesforceConfiguration'][_0x6d17('0x3f')](_0x4db3dc[_0x6d17('0x40')],{'include':[{'model':db[_0x6d17('0x4b')],'as':_0x6d17('0x47')},{'model':db[_0x6d17('0x4b')],'as':_0x6d17('0x4a')}]});}return null;})[_0x6d17('0x1d')](respondWithResult(_0x422ee3,null))['catch'](handleError(_0x422ee3,null));};exports[_0x6d17('0x4c')]=function(_0x25ef17,_0xc0c4e,_0x287283){var _0x4dbd7c;var _0x232dd3='';var _0x5d326e='Task';return db['SalesforceAccount'][_0x6d17('0x45')]({'where':{'id':_0x25ef17[_0x6d17('0x3b')]['id']},'attributes':['id','remoteUri','clientId',_0x6d17('0x4d'),_0x6d17('0x4e'),'password',_0x6d17('0x4f')]})[_0x6d17('0x1d')](handleEntityNotFound(_0xc0c4e,null))[_0x6d17('0x1d')](function(_0x226892){if(_0x226892){_0x232dd3=_0x226892['remoteUri'];var _0x17ab9b=_0x232dd3[_0x6d17('0x50')](-0x1);if(_0x17ab9b==='/'){_0x232dd3=_0x232dd3[_0x6d17('0x51')](0x0,_0x232dd3[_0x6d17('0x52')](_0x17ab9b));}_0x4dbd7c=new jsforce[(_0x6d17('0x53'))]({'oauth2':{'loginUrl':_0x232dd3,'clientId':_0x226892['clientId'],'clientSecret':_0x226892['clientSecret']}});return _0x4dbd7c[_0x6d17('0x54')](_0x226892[_0x6d17('0x4e')],_0x226892['password'][_0x6d17('0x55')](_0x226892[_0x6d17('0x4f')]));}})[_0x6d17('0x1d')](function(_0x4f53b0){if(_0x4f53b0){if(!_[_0x6d17('0x56')](_0x25ef17[_0x6d17('0x28')][_0x6d17('0x57')])){_0x5d326e=_0x25ef17[_0x6d17('0x28')][_0x6d17('0x57')];}return _0x4dbd7c['sobject'](_0x5d326e)[_0x6d17('0x58')]();}})['then'](function(_0x442012){var _0x4ac88b=[_0x6d17('0x59'),_0x6d17('0x5a'),_0x6d17('0x5b'),_0x6d17('0x5c'),_0x6d17('0x5d'),_0x6d17('0x5e')];var _0x465537=[_0x6d17('0x5f'),'int',_0x6d17('0x60'),_0x6d17('0x61'),_0x6d17('0x62'),_0x6d17('0x63'),_0x6d17('0x64')];if(_0x442012){_[_0x6d17('0x65')](_0x442012[_0x6d17('0x3c')],function(_0x3f06fb){return _0x4ac88b[_0x6d17('0x66')](_0x3f06fb[_0x6d17('0x20')])||!_0x465537[_0x6d17('0x66')](_0x3f06fb[_0x6d17('0x26')]);});return{'count':_0x442012[_0x6d17('0x3c')]['length'],'rows':_[_0x6d17('0x23')](_0x442012['fields'],function(_0x390310){return{'id':_0x390310[_0x6d17('0x20')],'name':_0x390310[_0x6d17('0x67')],'custom':_0x390310[_0x6d17('0x68')],'options':_0x390310['picklistValues']['length']>0x0?_[_0x6d17('0x23')](_0x390310['picklistValues'],function(_0x4cc040){return{'name':_0x4cc040[_0x6d17('0x67')],'value':_0x4cc040[_0x6d17('0x69')]};}):_0x390310['type']==_0x6d17('0x61')?[{'name':'True','value':'true'},{'name':'False','value':'false'}]:[]};})};}})['then'](respondWithResult(_0xc0c4e,null))[_0x6d17('0x3e')](function(_0x3bb232){var _0x12bb1a=_0x25ef17['query'][_0x6d17('0x6a')]?0x1f4:_0x3bb232[_0x6d17('0x6b')]||0x1f4;logger[_0x6d17('0x1e')]('getFields,\x20%s,\x20%s,\x20%s',_0x6d17('0x4c'),_0x12bb1a,JSON[_0x6d17('0x6c')](_0x3bb232));delete _0x3bb232[_0x6d17('0x20')];if(_0x12bb1a===0x191){_0x12bb1a=0x190;}_0xc0c4e[_0x6d17('0x17')](_0x12bb1a)['send'](_0x25ef17[_0x6d17('0x28')][_0x6d17('0x6a')]?{'message':_0x6d17('0x6d'),'statusCode':_0x3bb232[_0x6d17('0x6b')]}:_0x3bb232);});};