cc406d0b0b46846ba6942bcd4744adf6c6526212
[motion2.git] / server / api / intSalesforceConfiguration / intSalesforceConfiguration.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 _0x5c4e=['to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','apply','reject','update','then','stack','name','send','index','map','SalesforceConfiguration','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','include','findAll','catch','keys','find','create','body','params','destroy','findOne','SalesforceField','getFields','getSubjects','getDescriptions','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox'];(function(_0x4337ec,_0x59c20f){var _0x4283dc=function(_0x388e15){while(--_0x388e15){_0x4337ec['push'](_0x4337ec['shift']());}};_0x4283dc(++_0x59c20f);}(_0x5c4e,0xea));var _0xe5c4=function(_0xd36439,_0xcf914a){_0xd36439=_0xd36439-0x0;var _0x3f9382=_0x5c4e[_0xd36439];return _0x3f9382;};'use strict';var emlformat=require(_0xe5c4('0x0'));var rimraf=require(_0xe5c4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xe5c4('0x2'));var moment=require(_0xe5c4('0x3'));var BPromise=require(_0xe5c4('0x4'));var Mustache=require(_0xe5c4('0x5'));var util=require(_0xe5c4('0x6'));var path=require(_0xe5c4('0x7'));var sox=require(_0xe5c4('0x8'));var csv=require(_0xe5c4('0x9'));var ejs=require(_0xe5c4('0xa'));var fs=require('fs');var fs_extra=require(_0xe5c4('0xb'));var _=require(_0xe5c4('0xc'));var squel=require(_0xe5c4('0xd'));var crypto=require(_0xe5c4('0xe'));var jsforce=require(_0xe5c4('0xf'));var deskjs=require(_0xe5c4('0x10'));var toCsv=require(_0xe5c4('0x9'));var querystring=require(_0xe5c4('0x11'));var Papa=require(_0xe5c4('0x12'));var Redis=require('ioredis');var authService=require(_0xe5c4('0x13'));var qs=require(_0xe5c4('0x14'));var as=require(_0xe5c4('0x15'));var hardwareService=require(_0xe5c4('0x16'));var logger=require(_0xe5c4('0x17'))(_0xe5c4('0x18'));var utils=require('../../config/utils');var config=require(_0xe5c4('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xe5c4('0x1a'))['db'];function respondWithStatusCode(_0x564974,_0x4641ad){_0x4641ad=_0x4641ad||0xcc;return function(_0x4b9221){if(_0x4b9221){return _0x564974[_0xe5c4('0x1b')](_0x4641ad);}return _0x564974[_0xe5c4('0x1c')](_0x4641ad)[_0xe5c4('0x1d')]();};}function respondWithResult(_0x2d5945,_0xac7969){_0xac7969=_0xac7969||0xc8;return function(_0x49b500){if(_0x49b500){return _0x2d5945[_0xe5c4('0x1c')](_0xac7969)[_0xe5c4('0x1e')](_0x49b500);}};}function respondWithFilteredResult(_0x412133,_0x375301){return function(_0x790e81){if(_0x790e81){var _0x304e0c=typeof _0x375301[_0xe5c4('0x1f')]===_0xe5c4('0x20')&&typeof _0x375301[_0xe5c4('0x21')]===_0xe5c4('0x20');var _0x229e90=_0x790e81['count'];var _0x3a3d18=_0x304e0c?0x0:_0x375301[_0xe5c4('0x1f')];var _0x30c65a=_0x304e0c?_0x790e81['count']:_0x375301[_0xe5c4('0x1f')]+_0x375301[_0xe5c4('0x21')];var _0x2a06e6;if(_0x30c65a>=_0x229e90){_0x30c65a=_0x229e90;_0x2a06e6=0xc8;}else{_0x2a06e6=0xce;}_0x412133['status'](_0x2a06e6);return _0x412133[_0xe5c4('0x22')](_0xe5c4('0x23'),_0x3a3d18+'-'+_0x30c65a+'/'+_0x229e90)['json'](_0x790e81);}return null;};}function patchUpdates(_0x41bed4){return function(_0x3bc24b){try{jsonpatch[_0xe5c4('0x24')](_0x3bc24b,_0x41bed4,!![]);}catch(_0x11720b){return BPromise[_0xe5c4('0x25')](_0x11720b);}return _0x3bc24b['save']();};}function saveUpdates(_0x2e47bb,_0xb9a672){return function(_0x32a2e7){if(_0x32a2e7){return _0x32a2e7[_0xe5c4('0x26')](_0x2e47bb)[_0xe5c4('0x27')](function(_0x9bf0c0){return _0x9bf0c0;});}return null;};}function removeEntity(_0x408dd7,_0x5b8d02){return function(_0xf423c5){if(_0xf423c5){return _0xf423c5['destroy']()[_0xe5c4('0x27')](function(){_0x408dd7[_0xe5c4('0x1c')](0xcc)[_0xe5c4('0x1d')]();});}};}function handleEntityNotFound(_0x36811d,_0x4d9dae){return function(_0x126114){if(!_0x126114){_0x36811d[_0xe5c4('0x1b')](0x194);}return _0x126114;};}function handleError(_0x5593d1,_0x1fc20a){_0x1fc20a=_0x1fc20a||0x1f4;return function(_0x377d04){logger['error'](_0x377d04[_0xe5c4('0x28')]);if(_0x377d04[_0xe5c4('0x29')]){delete _0x377d04[_0xe5c4('0x29')];}_0x5593d1[_0xe5c4('0x1c')](_0x1fc20a)[_0xe5c4('0x2a')](_0x377d04);};}exports[_0xe5c4('0x2b')]=function(_0x52e97c,_0xe64d97){var _0x47d2c5={},_0x72301f={},_0x2c835b={'count':0x0,'rows':[]};var _0x352608=_[_0xe5c4('0x2c')](db[_0xe5c4('0x2d')][_0xe5c4('0x2e')],function(_0x37968d){return{'name':_0x37968d['fieldName'],'type':_0x37968d[_0xe5c4('0x2f')][_0xe5c4('0x30')]};});_0x72301f[_0xe5c4('0x31')]=_['map'](_0x352608,'name');_0x72301f[_0xe5c4('0x32')]=_['keys'](_0x52e97c[_0xe5c4('0x32')]);_0x72301f[_0xe5c4('0x33')]=_[_0xe5c4('0x34')](_0x72301f[_0xe5c4('0x31')],_0x72301f[_0xe5c4('0x32')]);_0x47d2c5[_0xe5c4('0x35')]=_['intersection'](_0x72301f[_0xe5c4('0x31')],qs[_0xe5c4('0x36')](_0x52e97c['query'][_0xe5c4('0x36')]));_0x47d2c5[_0xe5c4('0x35')]=_0x47d2c5[_0xe5c4('0x35')][_0xe5c4('0x37')]?_0x47d2c5['attributes']:_0x72301f[_0xe5c4('0x31')];if(!_0x52e97c[_0xe5c4('0x32')][_0xe5c4('0x38')](_0xe5c4('0x39'))){_0x47d2c5['limit']=qs[_0xe5c4('0x21')](_0x52e97c[_0xe5c4('0x32')]['limit']);_0x47d2c5[_0xe5c4('0x1f')]=qs[_0xe5c4('0x1f')](_0x52e97c[_0xe5c4('0x32')][_0xe5c4('0x1f')]);}_0x47d2c5[_0xe5c4('0x3a')]=qs[_0xe5c4('0x3b')](_0x52e97c[_0xe5c4('0x32')]['sort']);_0x47d2c5['where']=qs[_0xe5c4('0x33')](_[_0xe5c4('0x3c')](_0x52e97c[_0xe5c4('0x32')],_0x72301f['filters']),_0x352608);if(_0x52e97c[_0xe5c4('0x32')][_0xe5c4('0x3d')]){_0x47d2c5[_0xe5c4('0x3e')]=_['merge'](_0x47d2c5[_0xe5c4('0x3e')],{'$or':_['map'](_0x352608,function(_0x4128c3){if(_0x4128c3[_0xe5c4('0x2f')]!==_0xe5c4('0x3f')){var _0x493626={};_0x493626[_0x4128c3[_0xe5c4('0x29')]]={'$like':'%'+_0x52e97c[_0xe5c4('0x32')]['filter']+'%'};return _0x493626;}})});}_0x47d2c5=_[_0xe5c4('0x40')]({},_0x47d2c5,_0x52e97c[_0xe5c4('0x41')]);var _0x49daa1={'where':_0x47d2c5['where']};return db[_0xe5c4('0x2d')]['count'](_0x49daa1)[_0xe5c4('0x27')](function(_0x273659){_0x2c835b['count']=_0x273659;if(_0x52e97c['query'][_0xe5c4('0x42')]){_0x47d2c5[_0xe5c4('0x43')]=[{'all':!![]}];}return db[_0xe5c4('0x2d')][_0xe5c4('0x44')](_0x47d2c5);})[_0xe5c4('0x27')](function(_0x299ebf){_0x2c835b['rows']=_0x299ebf;return _0x2c835b;})['then'](respondWithFilteredResult(_0xe64d97,_0x47d2c5))[_0xe5c4('0x45')](handleError(_0xe64d97,null));};exports['show']=function(_0x209a4f,_0x249b8a){var _0x4e17be={'raw':![],'where':{'id':_0x209a4f['params']['id']}},_0x209312={};_0x209312['model']=_[_0xe5c4('0x46')](db[_0xe5c4('0x2d')][_0xe5c4('0x2e')]);_0x209312[_0xe5c4('0x32')]=_[_0xe5c4('0x46')](_0x209a4f[_0xe5c4('0x32')]);_0x209312[_0xe5c4('0x33')]=_['intersection'](_0x209312[_0xe5c4('0x31')],_0x209312['query']);_0x4e17be[_0xe5c4('0x35')]=_[_0xe5c4('0x34')](_0x209312['model'],qs[_0xe5c4('0x36')](_0x209a4f[_0xe5c4('0x32')][_0xe5c4('0x36')]));_0x4e17be[_0xe5c4('0x35')]=_0x4e17be[_0xe5c4('0x35')][_0xe5c4('0x37')]?_0x4e17be[_0xe5c4('0x35')]:_0x209312[_0xe5c4('0x31')];if(_0x209a4f['query']['includeAll']){_0x4e17be['include']=[{'all':!![]}];}_0x4e17be=_['merge']({},_0x4e17be,_0x209a4f['options']);return db[_0xe5c4('0x2d')][_0xe5c4('0x47')](_0x4e17be)[_0xe5c4('0x27')](handleEntityNotFound(_0x249b8a,null))['then'](respondWithResult(_0x249b8a,null))['catch'](handleError(_0x249b8a,null));};exports['create']=function(_0x417642,_0x3a423e){return db[_0xe5c4('0x2d')][_0xe5c4('0x48')](_0x417642['body'],{})[_0xe5c4('0x27')](respondWithResult(_0x3a423e,0xc9))[_0xe5c4('0x45')](handleError(_0x3a423e,null));};exports[_0xe5c4('0x26')]=function(_0x522503,_0x8b9888){if(_0x522503[_0xe5c4('0x49')]['id']){delete _0x522503[_0xe5c4('0x49')]['id'];}return db['SalesforceConfiguration'][_0xe5c4('0x47')]({'where':{'id':_0x522503[_0xe5c4('0x4a')]['id']}})[_0xe5c4('0x27')](handleEntityNotFound(_0x8b9888,null))[_0xe5c4('0x27')](saveUpdates(_0x522503[_0xe5c4('0x49')],null))[_0xe5c4('0x27')](respondWithResult(_0x8b9888,null))[_0xe5c4('0x45')](handleError(_0x8b9888,null));};exports[_0xe5c4('0x4b')]=function(_0x528626,_0x487f10){return db[_0xe5c4('0x2d')]['find']({'where':{'id':_0x528626['params']['id']}})['then'](handleEntityNotFound(_0x487f10,null))[_0xe5c4('0x27')](removeEntity(_0x487f10,null))[_0xe5c4('0x45')](handleError(_0x487f10,null));};exports['getFields']=function(_0x335983,_0xddb0e8,_0x52e913){var _0x1b2cc4={};var _0x26d105={};var _0x4cbf35;var _0x105443;return db[_0xe5c4('0x2d')][_0xe5c4('0x4c')]({'where':{'id':_0x335983[_0xe5c4('0x4a')]['id']}})['then'](handleEntityNotFound(_0xddb0e8,null))['then'](function(_0x55c240){if(_0x55c240){_0x4cbf35=_0x55c240;_0x26d105[_0xe5c4('0x31')]=_[_0xe5c4('0x46')](db[_0xe5c4('0x4d')][_0xe5c4('0x2e')]);_0x26d105['query']=_['keys'](_0x335983[_0xe5c4('0x32')]);_0x26d105[_0xe5c4('0x33')]=_[_0xe5c4('0x34')](_0x26d105['model'],_0x26d105['query']);_0x1b2cc4[_0xe5c4('0x35')]=_[_0xe5c4('0x34')](_0x26d105[_0xe5c4('0x31')],qs[_0xe5c4('0x36')](_0x335983[_0xe5c4('0x32')][_0xe5c4('0x36')]));_0x1b2cc4[_0xe5c4('0x35')]=_0x1b2cc4['attributes'][_0xe5c4('0x37')]?_0x1b2cc4[_0xe5c4('0x35')]:_0x26d105[_0xe5c4('0x31')];_0x1b2cc4['order']=qs[_0xe5c4('0x3b')](_0x335983[_0xe5c4('0x32')][_0xe5c4('0x3b')]);_0x1b2cc4[_0xe5c4('0x3e')]=qs[_0xe5c4('0x33')](_[_0xe5c4('0x3c')](_0x335983[_0xe5c4('0x32')],_0x26d105[_0xe5c4('0x33')]));if(_0x335983[_0xe5c4('0x32')][_0xe5c4('0x3d')]){_0x1b2cc4[_0xe5c4('0x3e')]=_[_0xe5c4('0x40')](_0x1b2cc4['where'],{'$or':_[_0xe5c4('0x2c')](_0x1b2cc4[_0xe5c4('0x35')],function(_0x254df3){var _0x32eac1={};_0x32eac1[_0x254df3]={'$like':'%'+_0x335983[_0xe5c4('0x32')][_0xe5c4('0x3d')]+'%'};return _0x32eac1;})});}_0x1b2cc4=_[_0xe5c4('0x40')]({},_0x1b2cc4,_0x335983[_0xe5c4('0x41')]);return _0x4cbf35[_0xe5c4('0x4e')](_0x1b2cc4);}})[_0xe5c4('0x27')](function(_0x58d94b){if(_0x58d94b){_0x105443=_0x58d94b[_0xe5c4('0x37')];if(!_0x335983[_0xe5c4('0x32')]['hasOwnProperty']('nolimit')){_0x1b2cc4[_0xe5c4('0x21')]=qs[_0xe5c4('0x21')](_0x335983['query']['limit']);_0x1b2cc4[_0xe5c4('0x1f')]=qs[_0xe5c4('0x1f')](_0x335983[_0xe5c4('0x32')][_0xe5c4('0x1f')]);}return _0x4cbf35[_0xe5c4('0x4e')](_0x1b2cc4);}})['then'](function(_0x210670){if(_0x210670){return _0x210670?{'count':_0x105443,'rows':_0x210670}:null;}})[_0xe5c4('0x27')](respondWithResult(_0xddb0e8,null))[_0xe5c4('0x45')](handleError(_0xddb0e8,null));};exports[_0xe5c4('0x4f')]=function(_0x25ffb2,_0x1abbc8,_0xc90850){var _0x233908={};var _0xc6930d={};var _0x50024c;var _0x9fcb2f;return db['SalesforceConfiguration']['findOne']({'where':{'id':_0x25ffb2[_0xe5c4('0x4a')]['id']}})[_0xe5c4('0x27')](handleEntityNotFound(_0x1abbc8,null))[_0xe5c4('0x27')](function(_0x3d9b58){if(_0x3d9b58){_0x50024c=_0x3d9b58;_0xc6930d[_0xe5c4('0x31')]=_[_0xe5c4('0x46')](db['SalesforceField'][_0xe5c4('0x2e')]);_0xc6930d['query']=_[_0xe5c4('0x46')](_0x25ffb2[_0xe5c4('0x32')]);_0xc6930d['filters']=_[_0xe5c4('0x34')](_0xc6930d[_0xe5c4('0x31')],_0xc6930d['query']);_0x233908[_0xe5c4('0x35')]=_[_0xe5c4('0x34')](_0xc6930d[_0xe5c4('0x31')],qs['fields'](_0x25ffb2[_0xe5c4('0x32')][_0xe5c4('0x36')]));_0x233908[_0xe5c4('0x35')]=_0x233908[_0xe5c4('0x35')][_0xe5c4('0x37')]?_0x233908[_0xe5c4('0x35')]:_0xc6930d[_0xe5c4('0x31')];_0x233908[_0xe5c4('0x3a')]=qs['sort'](_0x25ffb2[_0xe5c4('0x32')][_0xe5c4('0x3b')]);_0x233908['where']=qs['filters'](_[_0xe5c4('0x3c')](_0x25ffb2[_0xe5c4('0x32')],_0xc6930d['filters']));if(_0x25ffb2[_0xe5c4('0x32')]['filter']){_0x233908[_0xe5c4('0x3e')]=_['merge'](_0x233908['where'],{'$or':_[_0xe5c4('0x2c')](_0x233908[_0xe5c4('0x35')],function(_0x46ee96){var _0xd24527={};_0xd24527[_0x46ee96]={'$like':'%'+_0x25ffb2[_0xe5c4('0x32')]['filter']+'%'};return _0xd24527;})});}_0x233908=_[_0xe5c4('0x40')]({},_0x233908,_0x25ffb2[_0xe5c4('0x41')]);return _0x50024c[_0xe5c4('0x4f')](_0x233908);}})[_0xe5c4('0x27')](function(_0x2a95a9){if(_0x2a95a9){_0x9fcb2f=_0x2a95a9['length'];if(!_0x25ffb2[_0xe5c4('0x32')][_0xe5c4('0x38')](_0xe5c4('0x39'))){_0x233908[_0xe5c4('0x21')]=qs[_0xe5c4('0x21')](_0x25ffb2['query']['limit']);_0x233908[_0xe5c4('0x1f')]=qs[_0xe5c4('0x1f')](_0x25ffb2['query']['offset']);}return _0x50024c['getSubjects'](_0x233908);}})[_0xe5c4('0x27')](function(_0x24c29f){if(_0x24c29f){return _0x24c29f?{'count':_0x9fcb2f,'rows':_0x24c29f}:null;}})[_0xe5c4('0x27')](respondWithResult(_0x1abbc8,null))['catch'](handleError(_0x1abbc8,null));};exports[_0xe5c4('0x50')]=function(_0x5984a0,_0x3c2d38,_0x37374d){var _0x30c57f={};var _0x57140b={};var _0x5f1b45;var _0x1cecf0;return db[_0xe5c4('0x2d')][_0xe5c4('0x4c')]({'where':{'id':_0x5984a0['params']['id']}})['then'](handleEntityNotFound(_0x3c2d38,null))[_0xe5c4('0x27')](function(_0x51af07){if(_0x51af07){_0x5f1b45=_0x51af07;_0x57140b['model']=_[_0xe5c4('0x46')](db[_0xe5c4('0x4d')][_0xe5c4('0x2e')]);_0x57140b[_0xe5c4('0x32')]=_[_0xe5c4('0x46')](_0x5984a0['query']);_0x57140b[_0xe5c4('0x33')]=_[_0xe5c4('0x34')](_0x57140b[_0xe5c4('0x31')],_0x57140b['query']);_0x30c57f[_0xe5c4('0x35')]=_[_0xe5c4('0x34')](_0x57140b[_0xe5c4('0x31')],qs[_0xe5c4('0x36')](_0x5984a0['query'][_0xe5c4('0x36')]));_0x30c57f[_0xe5c4('0x35')]=_0x30c57f[_0xe5c4('0x35')][_0xe5c4('0x37')]?_0x30c57f[_0xe5c4('0x35')]:_0x57140b[_0xe5c4('0x31')];_0x30c57f['order']=qs[_0xe5c4('0x3b')](_0x5984a0['query'][_0xe5c4('0x3b')]);_0x30c57f[_0xe5c4('0x3e')]=qs['filters'](_[_0xe5c4('0x3c')](_0x5984a0[_0xe5c4('0x32')],_0x57140b['filters']));if(_0x5984a0[_0xe5c4('0x32')][_0xe5c4('0x3d')]){_0x30c57f['where']=_[_0xe5c4('0x40')](_0x30c57f[_0xe5c4('0x3e')],{'$or':_[_0xe5c4('0x2c')](_0x30c57f[_0xe5c4('0x35')],function(_0x57d584){var _0x83e2d4={};_0x83e2d4[_0x57d584]={'$like':'%'+_0x5984a0[_0xe5c4('0x32')][_0xe5c4('0x3d')]+'%'};return _0x83e2d4;})});}_0x30c57f=_[_0xe5c4('0x40')]({},_0x30c57f,_0x5984a0[_0xe5c4('0x41')]);return _0x5f1b45['getDescriptions'](_0x30c57f);}})['then'](function(_0x17ca14){if(_0x17ca14){_0x1cecf0=_0x17ca14[_0xe5c4('0x37')];if(!_0x5984a0['query'][_0xe5c4('0x38')](_0xe5c4('0x39'))){_0x30c57f['limit']=qs[_0xe5c4('0x21')](_0x5984a0[_0xe5c4('0x32')]['limit']);_0x30c57f[_0xe5c4('0x1f')]=qs['offset'](_0x5984a0[_0xe5c4('0x32')]['offset']);}return _0x5f1b45['getDescriptions'](_0x30c57f);}})[_0xe5c4('0x27')](function(_0x598a7f){if(_0x598a7f){return _0x598a7f?{'count':_0x1cecf0,'rows':_0x598a7f}:null;}})[_0xe5c4('0x27')](respondWithResult(_0x3c2d38,null))['catch'](handleError(_0x3c2d38,null));};