844dcb96cf551c984d20f367e8d032a749bdc6c9
[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 _0x8c79=['where','pick','filter','merge','includeAll','include','rows','catch','params','rawAttributes','attributes','find','create','body','destroy','getFields','findOne','SalesforceField','order','hasOwnProperty','nolimit','getSubjects','options','getDescriptions','eml-format','request-promise','bluebird','mustache','path','fs-extra','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','limit','count','offset','set','Content-Range','reject','save','update','then','error','stack','name','send','index','map','SalesforceConfiguration','fieldName','type','model','query','keys','filters','intersection','fields','length','sort'];(function(_0x25b4a4,_0x2e081b){var _0x707267=function(_0x440123){while(--_0x440123){_0x25b4a4['push'](_0x25b4a4['shift']());}};_0x707267(++_0x2e081b);}(_0x8c79,0xa8));var _0x98c7=function(_0x2eea1c,_0x555aae){_0x2eea1c=_0x2eea1c-0x0;var _0x55f270=_0x8c79[_0x2eea1c];return _0x55f270;};'use strict';var emlformat=require(_0x98c7('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x98c7('0x1'));var moment=require('moment');var BPromise=require(_0x98c7('0x2'));var Mustache=require(_0x98c7('0x3'));var util=require('util');var path=require(_0x98c7('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x98c7('0x5'));var _=require('lodash');var squel=require(_0x98c7('0x6'));var crypto=require(_0x98c7('0x7'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x98c7('0x8'));var Papa=require(_0x98c7('0x9'));var Redis=require(_0x98c7('0xa'));var authService=require('../../components/auth/service');var qs=require(_0x98c7('0xb'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x98c7('0xc'));var logger=require(_0x98c7('0xd'))(_0x98c7('0xe'));var utils=require(_0x98c7('0xf'));var config=require(_0x98c7('0x10'));var licenseUtil=require(_0x98c7('0x11'));var db=require(_0x98c7('0x12'))['db'];function respondWithStatusCode(_0x414446,_0x300055){_0x300055=_0x300055||0xcc;return function(_0x22d1dd){if(_0x22d1dd){return _0x414446[_0x98c7('0x13')](_0x300055);}return _0x414446[_0x98c7('0x14')](_0x300055)[_0x98c7('0x15')]();};}function respondWithResult(_0x442fc3,_0x386fd3){_0x386fd3=_0x386fd3||0xc8;return function(_0x238e98){if(_0x238e98){return _0x442fc3['status'](_0x386fd3)['json'](_0x238e98);}};}function respondWithFilteredResult(_0x3b9ced,_0x2eef73){return function(_0xb4696a){if(_0xb4696a){var _0x23d344=typeof _0x2eef73['offset']==='undefined'&&typeof _0x2eef73[_0x98c7('0x16')]==='undefined';var _0x37543f=_0xb4696a[_0x98c7('0x17')];var _0x22b669=_0x23d344?0x0:_0x2eef73[_0x98c7('0x18')];var _0x5df15b=_0x23d344?_0xb4696a[_0x98c7('0x17')]:_0x2eef73[_0x98c7('0x18')]+_0x2eef73[_0x98c7('0x16')];var _0x2207ae;if(_0x5df15b>=_0x37543f){_0x5df15b=_0x37543f;_0x2207ae=0xc8;}else{_0x2207ae=0xce;}_0x3b9ced[_0x98c7('0x14')](_0x2207ae);return _0x3b9ced[_0x98c7('0x19')](_0x98c7('0x1a'),_0x22b669+'-'+_0x5df15b+'/'+_0x37543f)['json'](_0xb4696a);}return null;};}function patchUpdates(_0x3d2a3d){return function(_0xec028){try{jsonpatch['apply'](_0xec028,_0x3d2a3d,!![]);}catch(_0x28ea17){return BPromise[_0x98c7('0x1b')](_0x28ea17);}return _0xec028[_0x98c7('0x1c')]();};}function saveUpdates(_0x41de48,_0x206000){return function(_0x260660){if(_0x260660){return _0x260660[_0x98c7('0x1d')](_0x41de48)[_0x98c7('0x1e')](function(_0x20bd1b){return _0x20bd1b;});}return null;};}function removeEntity(_0x2f0f6e,_0x9ade8f){return function(_0x807ecd){if(_0x807ecd){return _0x807ecd['destroy']()[_0x98c7('0x1e')](function(){_0x2f0f6e[_0x98c7('0x14')](0xcc)[_0x98c7('0x15')]();});}};}function handleEntityNotFound(_0x9ee36e,_0x3a9110){return function(_0x232aa9){if(!_0x232aa9){_0x9ee36e['sendStatus'](0x194);}return _0x232aa9;};}function handleError(_0x25b033,_0x12c6ba){_0x12c6ba=_0x12c6ba||0x1f4;return function(_0x96f94a){logger[_0x98c7('0x1f')](_0x96f94a[_0x98c7('0x20')]);if(_0x96f94a[_0x98c7('0x21')]){delete _0x96f94a[_0x98c7('0x21')];}_0x25b033[_0x98c7('0x14')](_0x12c6ba)[_0x98c7('0x22')](_0x96f94a);};}exports[_0x98c7('0x23')]=function(_0x16952b,_0x39a298){var _0x1ebab4={},_0x44ff50={},_0x2b2412={'count':0x0,'rows':[]};var _0x371e1f=_[_0x98c7('0x24')](db[_0x98c7('0x25')]['rawAttributes'],function(_0x1b96b4){return{'name':_0x1b96b4[_0x98c7('0x26')],'type':_0x1b96b4[_0x98c7('0x27')]['key']};});_0x44ff50[_0x98c7('0x28')]=_[_0x98c7('0x24')](_0x371e1f,'name');_0x44ff50[_0x98c7('0x29')]=_[_0x98c7('0x2a')](_0x16952b['query']);_0x44ff50[_0x98c7('0x2b')]=_[_0x98c7('0x2c')](_0x44ff50[_0x98c7('0x28')],_0x44ff50[_0x98c7('0x29')]);_0x1ebab4['attributes']=_['intersection'](_0x44ff50[_0x98c7('0x28')],qs[_0x98c7('0x2d')](_0x16952b[_0x98c7('0x29')]['fields']));_0x1ebab4['attributes']=_0x1ebab4['attributes'][_0x98c7('0x2e')]?_0x1ebab4['attributes']:_0x44ff50['model'];if(!_0x16952b[_0x98c7('0x29')]['hasOwnProperty']('nolimit')){_0x1ebab4[_0x98c7('0x16')]=qs['limit'](_0x16952b['query']['limit']);_0x1ebab4[_0x98c7('0x18')]=qs[_0x98c7('0x18')](_0x16952b[_0x98c7('0x29')]['offset']);}_0x1ebab4['order']=qs[_0x98c7('0x2f')](_0x16952b['query']['sort']);_0x1ebab4[_0x98c7('0x30')]=qs['filters'](_[_0x98c7('0x31')](_0x16952b[_0x98c7('0x29')],_0x44ff50['filters']),_0x371e1f);if(_0x16952b[_0x98c7('0x29')][_0x98c7('0x32')]){_0x1ebab4['where']=_[_0x98c7('0x33')](_0x1ebab4['where'],{'$or':_['map'](_0x371e1f,function(_0x4ed71e){if(_0x4ed71e['type']!=='VIRTUAL'){var _0x1ecb5c={};_0x1ecb5c[_0x4ed71e[_0x98c7('0x21')]]={'$like':'%'+_0x16952b[_0x98c7('0x29')][_0x98c7('0x32')]+'%'};return _0x1ecb5c;}})});}_0x1ebab4=_['merge']({},_0x1ebab4,_0x16952b['options']);var _0x303029={'where':_0x1ebab4['where']};return db['SalesforceConfiguration'][_0x98c7('0x17')](_0x303029)[_0x98c7('0x1e')](function(_0x185499){_0x2b2412[_0x98c7('0x17')]=_0x185499;if(_0x16952b['query'][_0x98c7('0x34')]){_0x1ebab4[_0x98c7('0x35')]=[{'all':!![]}];}return db[_0x98c7('0x25')]['findAll'](_0x1ebab4);})['then'](function(_0x32df26){_0x2b2412[_0x98c7('0x36')]=_0x32df26;return _0x2b2412;})[_0x98c7('0x1e')](respondWithFilteredResult(_0x39a298,_0x1ebab4))[_0x98c7('0x37')](handleError(_0x39a298,null));};exports['show']=function(_0x483c36,_0xe15b1a){var _0x160e00={'raw':![],'where':{'id':_0x483c36[_0x98c7('0x38')]['id']}},_0x566cf6={};_0x566cf6[_0x98c7('0x28')]=_['keys'](db[_0x98c7('0x25')][_0x98c7('0x39')]);_0x566cf6['query']=_[_0x98c7('0x2a')](_0x483c36[_0x98c7('0x29')]);_0x566cf6[_0x98c7('0x2b')]=_['intersection'](_0x566cf6[_0x98c7('0x28')],_0x566cf6[_0x98c7('0x29')]);_0x160e00[_0x98c7('0x3a')]=_[_0x98c7('0x2c')](_0x566cf6['model'],qs['fields'](_0x483c36[_0x98c7('0x29')]['fields']));_0x160e00[_0x98c7('0x3a')]=_0x160e00['attributes'][_0x98c7('0x2e')]?_0x160e00[_0x98c7('0x3a')]:_0x566cf6[_0x98c7('0x28')];if(_0x483c36[_0x98c7('0x29')]['includeAll']){_0x160e00['include']=[{'all':!![]}];}_0x160e00=_[_0x98c7('0x33')]({},_0x160e00,_0x483c36['options']);return db[_0x98c7('0x25')][_0x98c7('0x3b')](_0x160e00)[_0x98c7('0x1e')](handleEntityNotFound(_0xe15b1a,null))['then'](respondWithResult(_0xe15b1a,null))[_0x98c7('0x37')](handleError(_0xe15b1a,null));};exports[_0x98c7('0x3c')]=function(_0x4119e8,_0x1223df){return db['SalesforceConfiguration']['create'](_0x4119e8[_0x98c7('0x3d')],{})[_0x98c7('0x1e')](respondWithResult(_0x1223df,0xc9))['catch'](handleError(_0x1223df,null));};exports['update']=function(_0x23002c,_0x281a5f){if(_0x23002c[_0x98c7('0x3d')]['id']){delete _0x23002c[_0x98c7('0x3d')]['id'];}return db[_0x98c7('0x25')][_0x98c7('0x3b')]({'where':{'id':_0x23002c[_0x98c7('0x38')]['id']}})[_0x98c7('0x1e')](handleEntityNotFound(_0x281a5f,null))[_0x98c7('0x1e')](saveUpdates(_0x23002c[_0x98c7('0x3d')],null))[_0x98c7('0x1e')](respondWithResult(_0x281a5f,null))['catch'](handleError(_0x281a5f,null));};exports[_0x98c7('0x3e')]=function(_0x415327,_0x259c1c){return db['SalesforceConfiguration'][_0x98c7('0x3b')]({'where':{'id':_0x415327['params']['id']}})[_0x98c7('0x1e')](handleEntityNotFound(_0x259c1c,null))['then'](removeEntity(_0x259c1c,null))[_0x98c7('0x37')](handleError(_0x259c1c,null));};exports[_0x98c7('0x3f')]=function(_0x439260,_0x151f3c,_0x48d0c0){var _0x1c9dcf={};var _0x5a2627={};var _0x336c37;var _0x1927b1;return db[_0x98c7('0x25')][_0x98c7('0x40')]({'where':{'id':_0x439260[_0x98c7('0x38')]['id']}})[_0x98c7('0x1e')](handleEntityNotFound(_0x151f3c,null))['then'](function(_0x10c87a){if(_0x10c87a){_0x336c37=_0x10c87a;_0x5a2627[_0x98c7('0x28')]=_['keys'](db[_0x98c7('0x41')][_0x98c7('0x39')]);_0x5a2627[_0x98c7('0x29')]=_[_0x98c7('0x2a')](_0x439260[_0x98c7('0x29')]);_0x5a2627['filters']=_['intersection'](_0x5a2627[_0x98c7('0x28')],_0x5a2627[_0x98c7('0x29')]);_0x1c9dcf['attributes']=_[_0x98c7('0x2c')](_0x5a2627[_0x98c7('0x28')],qs[_0x98c7('0x2d')](_0x439260[_0x98c7('0x29')][_0x98c7('0x2d')]));_0x1c9dcf[_0x98c7('0x3a')]=_0x1c9dcf[_0x98c7('0x3a')][_0x98c7('0x2e')]?_0x1c9dcf[_0x98c7('0x3a')]:_0x5a2627[_0x98c7('0x28')];_0x1c9dcf[_0x98c7('0x42')]=qs['sort'](_0x439260[_0x98c7('0x29')]['sort']);_0x1c9dcf['where']=qs['filters'](_[_0x98c7('0x31')](_0x439260['query'],_0x5a2627[_0x98c7('0x2b')]));if(_0x439260[_0x98c7('0x29')]['filter']){_0x1c9dcf[_0x98c7('0x30')]=_[_0x98c7('0x33')](_0x1c9dcf[_0x98c7('0x30')],{'$or':_['map'](_0x1c9dcf[_0x98c7('0x3a')],function(_0x4eaa1d){var _0x1c4b1a={};_0x1c4b1a[_0x4eaa1d]={'$like':'%'+_0x439260['query'][_0x98c7('0x32')]+'%'};return _0x1c4b1a;})});}_0x1c9dcf=_['merge']({},_0x1c9dcf,_0x439260['options']);return _0x336c37[_0x98c7('0x3f')](_0x1c9dcf);}})['then'](function(_0x2033d2){if(_0x2033d2){_0x1927b1=_0x2033d2[_0x98c7('0x2e')];if(!_0x439260[_0x98c7('0x29')][_0x98c7('0x43')](_0x98c7('0x44'))){_0x1c9dcf['limit']=qs['limit'](_0x439260[_0x98c7('0x29')][_0x98c7('0x16')]);_0x1c9dcf[_0x98c7('0x18')]=qs[_0x98c7('0x18')](_0x439260[_0x98c7('0x29')]['offset']);}return _0x336c37[_0x98c7('0x3f')](_0x1c9dcf);}})[_0x98c7('0x1e')](function(_0x123302){if(_0x123302){return _0x123302?{'count':_0x1927b1,'rows':_0x123302}:null;}})[_0x98c7('0x1e')](respondWithResult(_0x151f3c,null))[_0x98c7('0x37')](handleError(_0x151f3c,null));};exports[_0x98c7('0x45')]=function(_0x3122b9,_0x1e0cbf,_0x39d5a2){var _0x49fe56={};var _0x4aef50={};var _0x37e2f8;var _0x4b9579;return db['SalesforceConfiguration']['findOne']({'where':{'id':_0x3122b9['params']['id']}})['then'](handleEntityNotFound(_0x1e0cbf,null))[_0x98c7('0x1e')](function(_0x5e749c){if(_0x5e749c){_0x37e2f8=_0x5e749c;_0x4aef50[_0x98c7('0x28')]=_[_0x98c7('0x2a')](db[_0x98c7('0x41')][_0x98c7('0x39')]);_0x4aef50['query']=_[_0x98c7('0x2a')](_0x3122b9[_0x98c7('0x29')]);_0x4aef50[_0x98c7('0x2b')]=_['intersection'](_0x4aef50[_0x98c7('0x28')],_0x4aef50['query']);_0x49fe56[_0x98c7('0x3a')]=_[_0x98c7('0x2c')](_0x4aef50[_0x98c7('0x28')],qs['fields'](_0x3122b9[_0x98c7('0x29')][_0x98c7('0x2d')]));_0x49fe56[_0x98c7('0x3a')]=_0x49fe56['attributes'][_0x98c7('0x2e')]?_0x49fe56[_0x98c7('0x3a')]:_0x4aef50[_0x98c7('0x28')];_0x49fe56[_0x98c7('0x42')]=qs['sort'](_0x3122b9[_0x98c7('0x29')]['sort']);_0x49fe56[_0x98c7('0x30')]=qs[_0x98c7('0x2b')](_['pick'](_0x3122b9[_0x98c7('0x29')],_0x4aef50['filters']));if(_0x3122b9['query'][_0x98c7('0x32')]){_0x49fe56['where']=_['merge'](_0x49fe56[_0x98c7('0x30')],{'$or':_[_0x98c7('0x24')](_0x49fe56[_0x98c7('0x3a')],function(_0x4ac0a1){var _0x3cfc13={};_0x3cfc13[_0x4ac0a1]={'$like':'%'+_0x3122b9[_0x98c7('0x29')][_0x98c7('0x32')]+'%'};return _0x3cfc13;})});}_0x49fe56=_['merge']({},_0x49fe56,_0x3122b9[_0x98c7('0x46')]);return _0x37e2f8['getSubjects'](_0x49fe56);}})[_0x98c7('0x1e')](function(_0xb175dd){if(_0xb175dd){_0x4b9579=_0xb175dd['length'];if(!_0x3122b9['query'][_0x98c7('0x43')](_0x98c7('0x44'))){_0x49fe56[_0x98c7('0x16')]=qs[_0x98c7('0x16')](_0x3122b9[_0x98c7('0x29')][_0x98c7('0x16')]);_0x49fe56[_0x98c7('0x18')]=qs[_0x98c7('0x18')](_0x3122b9[_0x98c7('0x29')][_0x98c7('0x18')]);}return _0x37e2f8[_0x98c7('0x45')](_0x49fe56);}})[_0x98c7('0x1e')](function(_0x4bfd65){if(_0x4bfd65){return _0x4bfd65?{'count':_0x4b9579,'rows':_0x4bfd65}:null;}})[_0x98c7('0x1e')](respondWithResult(_0x1e0cbf,null))[_0x98c7('0x37')](handleError(_0x1e0cbf,null));};exports['getDescriptions']=function(_0x377a31,_0x9d4056,_0x48715b){var _0x38c17d={};var _0x14a3d0={};var _0x5c6047;var _0x900609;return db[_0x98c7('0x25')][_0x98c7('0x40')]({'where':{'id':_0x377a31[_0x98c7('0x38')]['id']}})[_0x98c7('0x1e')](handleEntityNotFound(_0x9d4056,null))[_0x98c7('0x1e')](function(_0x488a20){if(_0x488a20){_0x5c6047=_0x488a20;_0x14a3d0['model']=_[_0x98c7('0x2a')](db['SalesforceField']['rawAttributes']);_0x14a3d0[_0x98c7('0x29')]=_[_0x98c7('0x2a')](_0x377a31[_0x98c7('0x29')]);_0x14a3d0[_0x98c7('0x2b')]=_[_0x98c7('0x2c')](_0x14a3d0[_0x98c7('0x28')],_0x14a3d0[_0x98c7('0x29')]);_0x38c17d[_0x98c7('0x3a')]=_[_0x98c7('0x2c')](_0x14a3d0['model'],qs[_0x98c7('0x2d')](_0x377a31[_0x98c7('0x29')][_0x98c7('0x2d')]));_0x38c17d[_0x98c7('0x3a')]=_0x38c17d[_0x98c7('0x3a')][_0x98c7('0x2e')]?_0x38c17d[_0x98c7('0x3a')]:_0x14a3d0['model'];_0x38c17d[_0x98c7('0x42')]=qs[_0x98c7('0x2f')](_0x377a31[_0x98c7('0x29')][_0x98c7('0x2f')]);_0x38c17d[_0x98c7('0x30')]=qs['filters'](_[_0x98c7('0x31')](_0x377a31[_0x98c7('0x29')],_0x14a3d0[_0x98c7('0x2b')]));if(_0x377a31[_0x98c7('0x29')][_0x98c7('0x32')]){_0x38c17d[_0x98c7('0x30')]=_['merge'](_0x38c17d[_0x98c7('0x30')],{'$or':_['map'](_0x38c17d['attributes'],function(_0x1376e7){var _0x362c67={};_0x362c67[_0x1376e7]={'$like':'%'+_0x377a31[_0x98c7('0x29')][_0x98c7('0x32')]+'%'};return _0x362c67;})});}_0x38c17d=_['merge']({},_0x38c17d,_0x377a31[_0x98c7('0x46')]);return _0x5c6047[_0x98c7('0x47')](_0x38c17d);}})[_0x98c7('0x1e')](function(_0x3444cc){if(_0x3444cc){_0x900609=_0x3444cc[_0x98c7('0x2e')];if(!_0x377a31[_0x98c7('0x29')]['hasOwnProperty'](_0x98c7('0x44'))){_0x38c17d['limit']=qs[_0x98c7('0x16')](_0x377a31[_0x98c7('0x29')][_0x98c7('0x16')]);_0x38c17d[_0x98c7('0x18')]=qs[_0x98c7('0x18')](_0x377a31[_0x98c7('0x29')][_0x98c7('0x18')]);}return _0x5c6047[_0x98c7('0x47')](_0x38c17d);}})[_0x98c7('0x1e')](function(_0x12c678){if(_0x12c678){return _0x12c678?{'count':_0x900609,'rows':_0x12c678}:null;}})[_0x98c7('0x1e')](respondWithResult(_0x9d4056,null))[_0x98c7('0x37')](handleError(_0x9d4056,null));};