0136a5aed4cce19c3a2f74a8b266b3dd7247839c
[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 _0xc1d9=['Connection','clientSecret','login','concat','isNil','ticketType','sobject','describe','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject','int','picklist','boolean','textarea','includes','label','picklistValues','value','True','False','false','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','test','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','json','offset','undefined','count','limit','Content-Range','apply','reject','save','update','then','error','stack','index','map','SalesforceAccount','rawAttributes','fieldName','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','type','VIRTUAL','name','merge','options','includeAll','include','findAll','rows','catch','params','keys','create','body','find','destroy','getConfigurations','findOne','SalesforceConfiguration','pick','addConfiguration','AccountId','Subjects','getSubjects','channel','getDescriptions','SalesforceField','Descriptions','getFields','remoteUri','clientId','username','password','securityToken','slice','substring','lastIndexOf'];(function(_0x2183cb,_0x4e2cf3){var _0x1d70bc=function(_0x16df8f){while(--_0x16df8f){_0x2183cb['push'](_0x2183cb['shift']());}};_0x1d70bc(++_0x4e2cf3);}(_0xc1d9,0x9c));var _0x9c1d=function(_0x2ce0cc,_0x2820de){_0x2ce0cc=_0x2ce0cc-0x0;var _0x5418a7=_0xc1d9[_0x2ce0cc];return _0x5418a7;};'use strict';var emlformat=require(_0x9c1d('0x0'));var rimraf=require(_0x9c1d('0x1'));var zipdir=require(_0x9c1d('0x2'));var jsonpatch=require(_0x9c1d('0x3'));var rp=require(_0x9c1d('0x4'));var moment=require(_0x9c1d('0x5'));var BPromise=require(_0x9c1d('0x6'));var Mustache=require(_0x9c1d('0x7'));var util=require(_0x9c1d('0x8'));var path=require(_0x9c1d('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x9c1d('0xa'));var fs=require('fs');var fs_extra=require(_0x9c1d('0xb'));var _=require(_0x9c1d('0xc'));var squel=require(_0x9c1d('0xd'));var crypto=require(_0x9c1d('0xe'));var jsforce=require(_0x9c1d('0xf'));var deskjs=require(_0x9c1d('0x10'));var toCsv=require('to-csv');var querystring=require(_0x9c1d('0x11'));var Papa=require('papaparse');var Redis=require(_0x9c1d('0x12'));var authService=require(_0x9c1d('0x13'));var qs=require(_0x9c1d('0x14'));var as=require(_0x9c1d('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9c1d('0x16'))(_0x9c1d('0x17'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x9c1d('0x18'))['db'];var integrations=require(_0x9c1d('0x19'));function respondWithStatusCode(_0x3513b7,_0x43d410){_0x43d410=_0x43d410||0xcc;return function(_0x2632ca){if(_0x2632ca){return _0x3513b7[_0x9c1d('0x1a')](_0x43d410);}return _0x3513b7['status'](_0x43d410)[_0x9c1d('0x1b')]();};}function respondWithResult(_0x71b743,_0x4cd69d){_0x4cd69d=_0x4cd69d||0xc8;return function(_0x1f17b1){if(_0x1f17b1){return _0x71b743[_0x9c1d('0x1c')](_0x4cd69d)[_0x9c1d('0x1d')](_0x1f17b1);}};}function respondWithFilteredResult(_0x1e23ca,_0x2408f3){return function(_0x219a5b){if(_0x219a5b){var _0x41e7a6=typeof _0x2408f3[_0x9c1d('0x1e')]==='undefined'&&typeof _0x2408f3['limit']===_0x9c1d('0x1f');var _0xffee3c=_0x219a5b[_0x9c1d('0x20')];var _0x37ad1a=_0x41e7a6?0x0:_0x2408f3['offset'];var _0x22bd9d=_0x41e7a6?_0x219a5b[_0x9c1d('0x20')]:_0x2408f3[_0x9c1d('0x1e')]+_0x2408f3[_0x9c1d('0x21')];var _0x51b064;if(_0x22bd9d>=_0xffee3c){_0x22bd9d=_0xffee3c;_0x51b064=0xc8;}else{_0x51b064=0xce;}_0x1e23ca[_0x9c1d('0x1c')](_0x51b064);return _0x1e23ca['set'](_0x9c1d('0x22'),_0x37ad1a+'-'+_0x22bd9d+'/'+_0xffee3c)[_0x9c1d('0x1d')](_0x219a5b);}return null;};}function patchUpdates(_0x6ad424){return function(_0x39ab64){try{jsonpatch[_0x9c1d('0x23')](_0x39ab64,_0x6ad424,!![]);}catch(_0x1d113c){return BPromise[_0x9c1d('0x24')](_0x1d113c);}return _0x39ab64[_0x9c1d('0x25')]();};}function saveUpdates(_0x1263b2,_0x109480){return function(_0x2be961){if(_0x2be961){return _0x2be961[_0x9c1d('0x26')](_0x1263b2)[_0x9c1d('0x27')](function(_0xf02b95){return _0xf02b95;});}return null;};}function removeEntity(_0x3cbf0e,_0x3d7f93){return function(_0x27318f){if(_0x27318f){return _0x27318f['destroy']()['then'](function(){_0x3cbf0e[_0x9c1d('0x1c')](0xcc)[_0x9c1d('0x1b')]();});}};}function handleEntityNotFound(_0x34d222,_0x4a2d54){return function(_0x245a6b){if(!_0x245a6b){_0x34d222['sendStatus'](0x194);}return _0x245a6b;};}function handleError(_0x58d8f5,_0x5661b1){_0x5661b1=_0x5661b1||0x1f4;return function(_0x25f09b){logger[_0x9c1d('0x28')](_0x25f09b[_0x9c1d('0x29')]);if(_0x25f09b['name']){delete _0x25f09b['name'];}_0x58d8f5[_0x9c1d('0x1c')](_0x5661b1)['send'](_0x25f09b);};}exports[_0x9c1d('0x2a')]=function(_0x4a4a7a,_0x4d24ce){var _0x31c372={},_0x53da1c={},_0x34940b={'count':0x0,'rows':[]};var _0x4ba564=_[_0x9c1d('0x2b')](db[_0x9c1d('0x2c')][_0x9c1d('0x2d')],function(_0x444149){return{'name':_0x444149[_0x9c1d('0x2e')],'type':_0x444149['type'][_0x9c1d('0x2f')]};});_0x53da1c[_0x9c1d('0x30')]=_['map'](_0x4ba564,'name');_0x53da1c[_0x9c1d('0x31')]=_['keys'](_0x4a4a7a[_0x9c1d('0x31')]);_0x53da1c[_0x9c1d('0x32')]=_['intersection'](_0x53da1c[_0x9c1d('0x30')],_0x53da1c[_0x9c1d('0x31')]);_0x31c372['attributes']=_[_0x9c1d('0x33')](_0x53da1c[_0x9c1d('0x30')],qs[_0x9c1d('0x34')](_0x4a4a7a[_0x9c1d('0x31')][_0x9c1d('0x34')]));_0x31c372['attributes']=_0x31c372[_0x9c1d('0x35')][_0x9c1d('0x36')]?_0x31c372['attributes']:_0x53da1c[_0x9c1d('0x30')];if(!_0x4a4a7a[_0x9c1d('0x31')][_0x9c1d('0x37')](_0x9c1d('0x38'))){_0x31c372['limit']=qs[_0x9c1d('0x21')](_0x4a4a7a[_0x9c1d('0x31')][_0x9c1d('0x21')]);_0x31c372[_0x9c1d('0x1e')]=qs[_0x9c1d('0x1e')](_0x4a4a7a[_0x9c1d('0x31')]['offset']);}_0x31c372[_0x9c1d('0x39')]=qs[_0x9c1d('0x3a')](_0x4a4a7a[_0x9c1d('0x31')][_0x9c1d('0x3a')]);_0x31c372[_0x9c1d('0x3b')]=qs[_0x9c1d('0x32')](_['pick'](_0x4a4a7a['query'],_0x53da1c[_0x9c1d('0x32')]),_0x4ba564);if(_0x4a4a7a[_0x9c1d('0x31')][_0x9c1d('0x3c')]){_0x31c372[_0x9c1d('0x3b')]=_['merge'](_0x31c372[_0x9c1d('0x3b')],{'$or':_[_0x9c1d('0x2b')](_0x4ba564,function(_0x2070f2){if(_0x2070f2[_0x9c1d('0x3d')]!==_0x9c1d('0x3e')){var _0x152dcc={};_0x152dcc[_0x2070f2[_0x9c1d('0x3f')]]={'$like':'%'+_0x4a4a7a[_0x9c1d('0x31')][_0x9c1d('0x3c')]+'%'};return _0x152dcc;}})});}_0x31c372=_[_0x9c1d('0x40')]({},_0x31c372,_0x4a4a7a[_0x9c1d('0x41')]);var _0x47134f={'where':_0x31c372[_0x9c1d('0x3b')]};return db[_0x9c1d('0x2c')][_0x9c1d('0x20')](_0x47134f)['then'](function(_0x30019d){_0x34940b[_0x9c1d('0x20')]=_0x30019d;if(_0x4a4a7a[_0x9c1d('0x31')][_0x9c1d('0x42')]){_0x31c372[_0x9c1d('0x43')]=[{'all':!![]}];}return db['SalesforceAccount'][_0x9c1d('0x44')](_0x31c372);})[_0x9c1d('0x27')](function(_0x49c82c){_0x34940b[_0x9c1d('0x45')]=_0x49c82c;return _0x34940b;})[_0x9c1d('0x27')](respondWithFilteredResult(_0x4d24ce,_0x31c372))[_0x9c1d('0x46')](handleError(_0x4d24ce,null));};exports['show']=function(_0x18496e,_0x322e6c){var _0x46423d={'raw':![],'where':{'id':_0x18496e[_0x9c1d('0x47')]['id']}},_0x28f7fd={};_0x28f7fd[_0x9c1d('0x30')]=_['keys'](db[_0x9c1d('0x2c')][_0x9c1d('0x2d')]);_0x28f7fd[_0x9c1d('0x31')]=_[_0x9c1d('0x48')](_0x18496e[_0x9c1d('0x31')]);_0x28f7fd[_0x9c1d('0x32')]=_['intersection'](_0x28f7fd[_0x9c1d('0x30')],_0x28f7fd[_0x9c1d('0x31')]);_0x46423d[_0x9c1d('0x35')]=_[_0x9c1d('0x33')](_0x28f7fd['model'],qs[_0x9c1d('0x34')](_0x18496e[_0x9c1d('0x31')][_0x9c1d('0x34')]));_0x46423d[_0x9c1d('0x35')]=_0x46423d[_0x9c1d('0x35')]['length']?_0x46423d[_0x9c1d('0x35')]:_0x28f7fd['model'];if(_0x18496e[_0x9c1d('0x31')][_0x9c1d('0x42')]){_0x46423d['include']=[{'all':!![]}];}_0x46423d=_[_0x9c1d('0x40')]({},_0x46423d,_0x18496e[_0x9c1d('0x41')]);return db[_0x9c1d('0x2c')]['find'](_0x46423d)[_0x9c1d('0x27')](handleEntityNotFound(_0x322e6c,null))[_0x9c1d('0x27')](respondWithResult(_0x322e6c,null))[_0x9c1d('0x46')](handleError(_0x322e6c,null));};exports[_0x9c1d('0x49')]=function(_0x14ce58,_0x3eea10){return db[_0x9c1d('0x2c')][_0x9c1d('0x49')](_0x14ce58[_0x9c1d('0x4a')],{})[_0x9c1d('0x27')](respondWithResult(_0x3eea10,0xc9))['catch'](handleError(_0x3eea10,null));};exports[_0x9c1d('0x26')]=function(_0x198614,_0xe14705){if(_0x198614['body']['id']){delete _0x198614[_0x9c1d('0x4a')]['id'];}return db['SalesforceAccount'][_0x9c1d('0x4b')]({'where':{'id':_0x198614[_0x9c1d('0x47')]['id']}})[_0x9c1d('0x27')](handleEntityNotFound(_0xe14705,null))['then'](saveUpdates(_0x198614[_0x9c1d('0x4a')],null))[_0x9c1d('0x27')](respondWithResult(_0xe14705,null))['catch'](handleError(_0xe14705,null));};exports[_0x9c1d('0x4c')]=function(_0x387076,_0x2364d9){return db[_0x9c1d('0x2c')]['find']({'where':{'id':_0x387076[_0x9c1d('0x47')]['id']}})[_0x9c1d('0x27')](handleEntityNotFound(_0x2364d9,null))[_0x9c1d('0x27')](removeEntity(_0x2364d9,null))[_0x9c1d('0x46')](handleError(_0x2364d9,null));};exports[_0x9c1d('0x4d')]=function(_0x182dd8,_0x2a5a6a,_0x40eca2){var _0x1e80e7={};var _0x489e00={};var _0x5039e0;var _0x5e91a9;return db[_0x9c1d('0x2c')][_0x9c1d('0x4e')]({'where':{'id':_0x182dd8[_0x9c1d('0x47')]['id']}})[_0x9c1d('0x27')](handleEntityNotFound(_0x2a5a6a,null))['then'](function(_0x4fd963){if(_0x4fd963){_0x5039e0=_0x4fd963;_0x489e00[_0x9c1d('0x30')]=_['keys'](db[_0x9c1d('0x4f')][_0x9c1d('0x2d')]);_0x489e00[_0x9c1d('0x31')]=_['keys'](_0x182dd8[_0x9c1d('0x31')]);_0x489e00[_0x9c1d('0x32')]=_['intersection'](_0x489e00[_0x9c1d('0x30')],_0x489e00['query']);_0x1e80e7[_0x9c1d('0x35')]=_[_0x9c1d('0x33')](_0x489e00[_0x9c1d('0x30')],qs[_0x9c1d('0x34')](_0x182dd8['query'][_0x9c1d('0x34')]));_0x1e80e7['attributes']=_0x1e80e7[_0x9c1d('0x35')][_0x9c1d('0x36')]?_0x1e80e7[_0x9c1d('0x35')]:_0x489e00[_0x9c1d('0x30')];_0x1e80e7[_0x9c1d('0x39')]=qs[_0x9c1d('0x3a')](_0x182dd8['query'][_0x9c1d('0x3a')]);_0x1e80e7[_0x9c1d('0x3b')]=qs[_0x9c1d('0x32')](_[_0x9c1d('0x50')](_0x182dd8[_0x9c1d('0x31')],_0x489e00[_0x9c1d('0x32')]));if(_0x182dd8[_0x9c1d('0x31')][_0x9c1d('0x3c')]){_0x1e80e7[_0x9c1d('0x3b')]=_['merge'](_0x1e80e7[_0x9c1d('0x3b')],{'$or':_[_0x9c1d('0x2b')](_0x1e80e7[_0x9c1d('0x35')],function(_0x2d5dde){var _0x31a9ae={};_0x31a9ae[_0x2d5dde]={'$like':'%'+_0x182dd8['query']['filter']+'%'};return _0x31a9ae;})});}_0x1e80e7=_[_0x9c1d('0x40')]({},_0x1e80e7,_0x182dd8['options']);return _0x5039e0['getConfigurations'](_0x1e80e7);}})[_0x9c1d('0x27')](function(_0x41e672){if(_0x41e672){_0x5e91a9=_0x41e672['length'];if(!_0x182dd8[_0x9c1d('0x31')][_0x9c1d('0x37')](_0x9c1d('0x38'))){_0x1e80e7['limit']=qs[_0x9c1d('0x21')](_0x182dd8[_0x9c1d('0x31')][_0x9c1d('0x21')]);_0x1e80e7['offset']=qs[_0x9c1d('0x1e')](_0x182dd8[_0x9c1d('0x31')][_0x9c1d('0x1e')]);}return _0x5039e0['getConfigurations'](_0x1e80e7);}})['then'](function(_0x5260d7){if(_0x5260d7){return _0x5260d7?{'count':_0x5e91a9,'rows':_0x5260d7}:null;}})[_0x9c1d('0x27')](respondWithResult(_0x2a5a6a,null))[_0x9c1d('0x46')](handleError(_0x2a5a6a,null));};exports[_0x9c1d('0x51')]=function(_0x222fc8,_0xa73c2d,_0x19430f){if(_0x222fc8[_0x9c1d('0x4a')]['id']){delete _0x222fc8[_0x9c1d('0x4a')]['id'];}return db[_0x9c1d('0x2c')][_0x9c1d('0x4e')]({'where':{'id':_0x222fc8[_0x9c1d('0x47')]['id']}})['then'](handleEntityNotFound(_0xa73c2d,null))[_0x9c1d('0x27')](function(_0x48c9e1){if(_0x48c9e1){_0x222fc8[_0x9c1d('0x4a')][_0x9c1d('0x52')]=_0x48c9e1['id'];_0x222fc8[_0x9c1d('0x4a')][_0x9c1d('0x53')]=integrations[_0x9c1d('0x54')](_0x222fc8[_0x9c1d('0x4a')][_0x9c1d('0x55')],_0x222fc8[_0x9c1d('0x4a')][_0x9c1d('0x3d')]);_0x222fc8[_0x9c1d('0x4a')]['Descriptions']=integrations[_0x9c1d('0x56')](_0x222fc8['body']['channel'],_0x222fc8[_0x9c1d('0x4a')][_0x9c1d('0x3d')]);return db['SalesforceConfiguration'][_0x9c1d('0x49')](_0x222fc8['body'],{'include':[{'model':db[_0x9c1d('0x57')],'as':_0x9c1d('0x53')},{'model':db[_0x9c1d('0x57')],'as':_0x9c1d('0x58')}]});}return null;})[_0x9c1d('0x27')](respondWithResult(_0xa73c2d,null))[_0x9c1d('0x46')](handleError(_0xa73c2d,null));};exports[_0x9c1d('0x59')]=function(_0x451a1c,_0x1b0a2b,_0x2642a8){var _0xf0fe23;var _0x482a22='';var _0x1769db='Task';return db[_0x9c1d('0x2c')][_0x9c1d('0x4e')]({'where':{'id':_0x451a1c[_0x9c1d('0x47')]['id']},'attributes':['id',_0x9c1d('0x5a'),_0x9c1d('0x5b'),'clientSecret',_0x9c1d('0x5c'),_0x9c1d('0x5d'),_0x9c1d('0x5e')]})[_0x9c1d('0x27')](handleEntityNotFound(_0x1b0a2b,null))[_0x9c1d('0x27')](function(_0x4e866b){if(_0x4e866b){_0x482a22=_0x4e866b['remoteUri'];var _0x4b0fdd=_0x482a22[_0x9c1d('0x5f')](-0x1);if(_0x4b0fdd==='/'){_0x482a22=_0x482a22[_0x9c1d('0x60')](0x0,_0x482a22[_0x9c1d('0x61')](_0x4b0fdd));}_0xf0fe23=new jsforce[(_0x9c1d('0x62'))]({'oauth2':{'loginUrl':_0x482a22,'clientId':_0x4e866b['clientId'],'clientSecret':_0x4e866b[_0x9c1d('0x63')]}});return _0xf0fe23[_0x9c1d('0x64')](_0x4e866b[_0x9c1d('0x5c')],_0x4e866b[_0x9c1d('0x5d')][_0x9c1d('0x65')](_0x4e866b['securityToken']));}})[_0x9c1d('0x27')](function(_0x22bc62){if(_0x22bc62){if(!_[_0x9c1d('0x66')](_0x451a1c[_0x9c1d('0x31')][_0x9c1d('0x67')])){_0x1769db=_0x451a1c[_0x9c1d('0x31')]['ticketType'];}return _0xf0fe23[_0x9c1d('0x68')](_0x1769db)[_0x9c1d('0x69')]();}})['then'](function(_0x13b40b){var _0x3a7063=[_0x9c1d('0x6a'),_0x9c1d('0x6b'),_0x9c1d('0x6c'),_0x9c1d('0x6d'),_0x9c1d('0x6e'),'Description'];var _0x50b3be=['string',_0x9c1d('0x6f'),_0x9c1d('0x70'),_0x9c1d('0x71'),'email',_0x9c1d('0x72'),'phone'];if(_0x13b40b){_['remove'](_0x13b40b['fields'],function(_0x1a7298){return _0x3a7063[_0x9c1d('0x73')](_0x1a7298[_0x9c1d('0x3f')])||!_0x50b3be[_0x9c1d('0x73')](_0x1a7298[_0x9c1d('0x3d')]);});return{'count':_0x13b40b['fields'][_0x9c1d('0x36')],'rows':_[_0x9c1d('0x2b')](_0x13b40b[_0x9c1d('0x34')],function(_0x19fea9){return{'id':_0x19fea9[_0x9c1d('0x3f')],'name':_0x19fea9[_0x9c1d('0x74')],'custom':_0x19fea9['custom'],'options':_0x19fea9['picklistValues'][_0x9c1d('0x36')]>0x0?_[_0x9c1d('0x2b')](_0x19fea9[_0x9c1d('0x75')],function(_0x1b5f69){return{'name':_0x1b5f69[_0x9c1d('0x74')],'value':_0x1b5f69[_0x9c1d('0x76')]};}):_0x19fea9[_0x9c1d('0x3d')]==_0x9c1d('0x71')?[{'name':_0x9c1d('0x77'),'value':'true'},{'name':_0x9c1d('0x78'),'value':_0x9c1d('0x79')}]:[]};})};}})[_0x9c1d('0x27')](respondWithResult(_0x1b0a2b,null))[_0x9c1d('0x46')](function(_0x159f91){var _0x27ed2e=_0x451a1c['query']['test']?0x1f4:_0x159f91[_0x9c1d('0x7a')]||0x1f4;logger['error'](_0x9c1d('0x7b'),_0x9c1d('0x59'),_0x27ed2e,JSON[_0x9c1d('0x7c')](_0x159f91));delete _0x159f91['name'];if(_0x27ed2e===0x191){_0x27ed2e=0x190;}_0x1b0a2b[_0x9c1d('0x1c')](_0x27ed2e)[_0x9c1d('0x7d')](_0x451a1c[_0x9c1d('0x31')][_0x9c1d('0x7e')]?{'message':'Wrong\x20credentials','statusCode':_0x159f91[_0x9c1d('0x7a')]}:_0x159f91);});};