e6a018b9ba41a38808bb6db81a04cb61f7fee008
[motion2.git] / server / api / intVtigerAccount / intVtigerAccount.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 _0xf937=['lodash','squel','crypto','jsforce','desk.js','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','save','update','then','destroy','error','stack','name','send','map','fieldName','key','query','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','type','VIRTUAL','VtigerAccount','includeAll','include','findAll','catch','show','params','keys','rawAttributes','options','find','create','body','getConfigurations','findOne','VtigerConfiguration','pick','Subjects','channel','Descriptions','getDescriptions','VtigerField','md5','getFields','username','remoteUri','serverUrl','accessKey','slice','substring','lastIndexOf','format','%s/webservice.php','getchallenge','success','POST','login','result','token','GET','describe','sessionName','autogenerated','reference','includes','editable','false','label','cf_','picklistValues','log','test','stringify','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv'];(function(_0x566608,_0x39e58c){var _0x449448=function(_0x4dbf19){while(--_0x4dbf19){_0x566608['push'](_0x566608['shift']());}};_0x449448(++_0x39e58c);}(_0xf937,0x6b));var _0x7f93=function(_0x8c8176,_0x5360a1){_0x8c8176=_0x8c8176-0x0;var _0x4dc47b=_0xf937[_0x8c8176];return _0x4dc47b;};'use strict';var emlformat=require(_0x7f93('0x0'));var rimraf=require(_0x7f93('0x1'));var zipdir=require(_0x7f93('0x2'));var jsonpatch=require(_0x7f93('0x3'));var rp=require(_0x7f93('0x4'));var moment=require(_0x7f93('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x7f93('0x6'));var util=require(_0x7f93('0x7'));var path=require(_0x7f93('0x8'));var sox=require('sox');var csv=require(_0x7f93('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7f93('0xa'));var squel=require(_0x7f93('0xb'));var crypto=require(_0x7f93('0xc'));var jsforce=require(_0x7f93('0xd'));var deskjs=require(_0x7f93('0xe'));var toCsv=require(_0x7f93('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x7f93('0xf'));var as=require(_0x7f93('0x10'));var hardwareService=require(_0x7f93('0x11'));var logger=require(_0x7f93('0x12'))(_0x7f93('0x13'));var utils=require(_0x7f93('0x14'));var config=require(_0x7f93('0x15'));var licenseUtil=require(_0x7f93('0x16'));var db=require('../../mysqldb')['db'];var integrations=require(_0x7f93('0x17'));function respondWithStatusCode(_0x1e6542,_0xa7afef){_0xa7afef=_0xa7afef||0xcc;return function(_0x1e20a2){if(_0x1e20a2){return _0x1e6542[_0x7f93('0x18')](_0xa7afef);}return _0x1e6542[_0x7f93('0x19')](_0xa7afef)[_0x7f93('0x1a')]();};}function respondWithResult(_0x3a5402,_0xfc7151){_0xfc7151=_0xfc7151||0xc8;return function(_0x34d896){if(_0x34d896){return _0x3a5402[_0x7f93('0x19')](_0xfc7151)['json'](_0x34d896);}};}function respondWithFilteredResult(_0x63938f,_0x67822c){return function(_0x3309b7){if(_0x3309b7){var _0xd355c=typeof _0x67822c['offset']===_0x7f93('0x1b')&&typeof _0x67822c[_0x7f93('0x1c')]===_0x7f93('0x1b');var _0x550c1f=_0x3309b7[_0x7f93('0x1d')];var _0xd81790=_0xd355c?0x0:_0x67822c[_0x7f93('0x1e')];var _0x5747a8=_0xd355c?_0x3309b7[_0x7f93('0x1d')]:_0x67822c['offset']+_0x67822c['limit'];var _0x282c77;if(_0x5747a8>=_0x550c1f){_0x5747a8=_0x550c1f;_0x282c77=0xc8;}else{_0x282c77=0xce;}_0x63938f[_0x7f93('0x19')](_0x282c77);return _0x63938f[_0x7f93('0x1f')](_0x7f93('0x20'),_0xd81790+'-'+_0x5747a8+'/'+_0x550c1f)[_0x7f93('0x21')](_0x3309b7);}return null;};}function patchUpdates(_0x2678cc){return function(_0x84e244){try{jsonpatch[_0x7f93('0x22')](_0x84e244,_0x2678cc,!![]);}catch(_0x5c64cc){return BPromise['reject'](_0x5c64cc);}return _0x84e244[_0x7f93('0x23')]();};}function saveUpdates(_0x1bc0b3,_0x4c7ace){return function(_0x32d5b5){if(_0x32d5b5){return _0x32d5b5[_0x7f93('0x24')](_0x1bc0b3)[_0x7f93('0x25')](function(_0x66946b){return _0x66946b;});}return null;};}function removeEntity(_0x1a02e6,_0x52f641){return function(_0x47aa5b){if(_0x47aa5b){return _0x47aa5b[_0x7f93('0x26')]()[_0x7f93('0x25')](function(){_0x1a02e6[_0x7f93('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0xdf5dbb,_0x4ee4da){return function(_0x3a0cc5){if(!_0x3a0cc5){_0xdf5dbb[_0x7f93('0x18')](0x194);}return _0x3a0cc5;};}function handleError(_0x11d033,_0x253e66){_0x253e66=_0x253e66||0x1f4;return function(_0x1bf013){logger[_0x7f93('0x27')](_0x1bf013[_0x7f93('0x28')]);if(_0x1bf013[_0x7f93('0x29')]){delete _0x1bf013[_0x7f93('0x29')];}_0x11d033['status'](_0x253e66)[_0x7f93('0x2a')](_0x1bf013);};}exports['index']=function(_0x3af552,_0x5b487d){var _0x2b19e9={},_0x4ca535={},_0x4f487f={'count':0x0,'rows':[]};var _0x5f2ea7=_[_0x7f93('0x2b')](db['VtigerAccount']['rawAttributes'],function(_0x91adc2){return{'name':_0x91adc2[_0x7f93('0x2c')],'type':_0x91adc2['type'][_0x7f93('0x2d')]};});_0x4ca535['model']=_[_0x7f93('0x2b')](_0x5f2ea7,_0x7f93('0x29'));_0x4ca535[_0x7f93('0x2e')]=_['keys'](_0x3af552[_0x7f93('0x2e')]);_0x4ca535['filters']=_['intersection'](_0x4ca535[_0x7f93('0x2f')],_0x4ca535[_0x7f93('0x2e')]);_0x2b19e9[_0x7f93('0x30')]=_[_0x7f93('0x31')](_0x4ca535[_0x7f93('0x2f')],qs[_0x7f93('0x32')](_0x3af552['query']['fields']));_0x2b19e9[_0x7f93('0x30')]=_0x2b19e9[_0x7f93('0x30')][_0x7f93('0x33')]?_0x2b19e9[_0x7f93('0x30')]:_0x4ca535[_0x7f93('0x2f')];if(!_0x3af552[_0x7f93('0x2e')][_0x7f93('0x34')](_0x7f93('0x35'))){_0x2b19e9[_0x7f93('0x1c')]=qs[_0x7f93('0x1c')](_0x3af552[_0x7f93('0x2e')][_0x7f93('0x1c')]);_0x2b19e9[_0x7f93('0x1e')]=qs[_0x7f93('0x1e')](_0x3af552['query'][_0x7f93('0x1e')]);}_0x2b19e9[_0x7f93('0x36')]=qs[_0x7f93('0x37')](_0x3af552[_0x7f93('0x2e')][_0x7f93('0x37')]);_0x2b19e9[_0x7f93('0x38')]=qs[_0x7f93('0x39')](_['pick'](_0x3af552[_0x7f93('0x2e')],_0x4ca535['filters']),_0x5f2ea7);if(_0x3af552[_0x7f93('0x2e')][_0x7f93('0x3a')]){_0x2b19e9[_0x7f93('0x38')]=_[_0x7f93('0x3b')](_0x2b19e9[_0x7f93('0x38')],{'$or':_['map'](_0x5f2ea7,function(_0x22a6b1){if(_0x22a6b1[_0x7f93('0x3c')]!==_0x7f93('0x3d')){var _0x1892e5={};_0x1892e5[_0x22a6b1[_0x7f93('0x29')]]={'$like':'%'+_0x3af552[_0x7f93('0x2e')][_0x7f93('0x3a')]+'%'};return _0x1892e5;}})});}_0x2b19e9=_['merge']({},_0x2b19e9,_0x3af552['options']);var _0x5edeef={'where':_0x2b19e9['where']};return db[_0x7f93('0x3e')][_0x7f93('0x1d')](_0x5edeef)[_0x7f93('0x25')](function(_0x29f0c8){_0x4f487f[_0x7f93('0x1d')]=_0x29f0c8;if(_0x3af552[_0x7f93('0x2e')][_0x7f93('0x3f')]){_0x2b19e9[_0x7f93('0x40')]=[{'all':!![]}];}return db['VtigerAccount'][_0x7f93('0x41')](_0x2b19e9);})['then'](function(_0x36d3aa){_0x4f487f['rows']=_0x36d3aa;return _0x4f487f;})['then'](respondWithFilteredResult(_0x5b487d,_0x2b19e9))[_0x7f93('0x42')](handleError(_0x5b487d,null));};exports[_0x7f93('0x43')]=function(_0x48339b,_0x2b7d15){var _0x122bf0={'raw':![],'where':{'id':_0x48339b[_0x7f93('0x44')]['id']}},_0x2ee6f3={};_0x2ee6f3['model']=_[_0x7f93('0x45')](db[_0x7f93('0x3e')][_0x7f93('0x46')]);_0x2ee6f3[_0x7f93('0x2e')]=_[_0x7f93('0x45')](_0x48339b['query']);_0x2ee6f3[_0x7f93('0x39')]=_[_0x7f93('0x31')](_0x2ee6f3['model'],_0x2ee6f3['query']);_0x122bf0[_0x7f93('0x30')]=_['intersection'](_0x2ee6f3[_0x7f93('0x2f')],qs[_0x7f93('0x32')](_0x48339b[_0x7f93('0x2e')][_0x7f93('0x32')]));_0x122bf0[_0x7f93('0x30')]=_0x122bf0[_0x7f93('0x30')]['length']?_0x122bf0['attributes']:_0x2ee6f3[_0x7f93('0x2f')];if(_0x48339b[_0x7f93('0x2e')][_0x7f93('0x3f')]){_0x122bf0['include']=[{'all':!![]}];}_0x122bf0=_[_0x7f93('0x3b')]({},_0x122bf0,_0x48339b[_0x7f93('0x47')]);return db[_0x7f93('0x3e')][_0x7f93('0x48')](_0x122bf0)[_0x7f93('0x25')](handleEntityNotFound(_0x2b7d15,null))[_0x7f93('0x25')](respondWithResult(_0x2b7d15,null))[_0x7f93('0x42')](handleError(_0x2b7d15,null));};exports[_0x7f93('0x49')]=function(_0x4aa33d,_0x210602){return db['VtigerAccount'][_0x7f93('0x49')](_0x4aa33d[_0x7f93('0x4a')],{})[_0x7f93('0x25')](respondWithResult(_0x210602,0xc9))[_0x7f93('0x42')](handleError(_0x210602,null));};exports['update']=function(_0x1deed7,_0x26fa0e){if(_0x1deed7[_0x7f93('0x4a')]['id']){delete _0x1deed7[_0x7f93('0x4a')]['id'];}return db[_0x7f93('0x3e')][_0x7f93('0x48')]({'where':{'id':_0x1deed7[_0x7f93('0x44')]['id']}})[_0x7f93('0x25')](handleEntityNotFound(_0x26fa0e,null))[_0x7f93('0x25')](saveUpdates(_0x1deed7[_0x7f93('0x4a')],null))[_0x7f93('0x25')](respondWithResult(_0x26fa0e,null))['catch'](handleError(_0x26fa0e,null));};exports[_0x7f93('0x26')]=function(_0x5eb942,_0x598ef4){return db['VtigerAccount'][_0x7f93('0x48')]({'where':{'id':_0x5eb942['params']['id']}})[_0x7f93('0x25')](handleEntityNotFound(_0x598ef4,null))[_0x7f93('0x25')](removeEntity(_0x598ef4,null))[_0x7f93('0x42')](handleError(_0x598ef4,null));};exports[_0x7f93('0x4b')]=function(_0x16e9a5,_0x26cb36,_0xfdd376){var _0x5d918e={};var _0x33e0dc={};var _0xa3551c;var _0x449da6;return db[_0x7f93('0x3e')][_0x7f93('0x4c')]({'where':{'id':_0x16e9a5[_0x7f93('0x44')]['id']}})[_0x7f93('0x25')](handleEntityNotFound(_0x26cb36,null))[_0x7f93('0x25')](function(_0x1ac50c){if(_0x1ac50c){_0xa3551c=_0x1ac50c;_0x33e0dc[_0x7f93('0x2f')]=_['keys'](db[_0x7f93('0x4d')][_0x7f93('0x46')]);_0x33e0dc[_0x7f93('0x2e')]=_[_0x7f93('0x45')](_0x16e9a5['query']);_0x33e0dc[_0x7f93('0x39')]=_[_0x7f93('0x31')](_0x33e0dc['model'],_0x33e0dc['query']);_0x5d918e[_0x7f93('0x30')]=_[_0x7f93('0x31')](_0x33e0dc[_0x7f93('0x2f')],qs[_0x7f93('0x32')](_0x16e9a5[_0x7f93('0x2e')][_0x7f93('0x32')]));_0x5d918e[_0x7f93('0x30')]=_0x5d918e[_0x7f93('0x30')][_0x7f93('0x33')]?_0x5d918e[_0x7f93('0x30')]:_0x33e0dc[_0x7f93('0x2f')];_0x5d918e[_0x7f93('0x36')]=qs[_0x7f93('0x37')](_0x16e9a5[_0x7f93('0x2e')][_0x7f93('0x37')]);_0x5d918e['where']=qs[_0x7f93('0x39')](_[_0x7f93('0x4e')](_0x16e9a5['query'],_0x33e0dc[_0x7f93('0x39')]));if(_0x16e9a5[_0x7f93('0x2e')][_0x7f93('0x3a')]){_0x5d918e[_0x7f93('0x38')]=_['merge'](_0x5d918e[_0x7f93('0x38')],{'$or':_[_0x7f93('0x2b')](_0x5d918e['attributes'],function(_0x5c970a){var _0x23ab59={};_0x23ab59[_0x5c970a]={'$like':'%'+_0x16e9a5[_0x7f93('0x2e')][_0x7f93('0x3a')]+'%'};return _0x23ab59;})});}_0x5d918e=_[_0x7f93('0x3b')]({},_0x5d918e,_0x16e9a5[_0x7f93('0x47')]);return _0xa3551c['getConfigurations'](_0x5d918e);}})['then'](function(_0x48ebc2){if(_0x48ebc2){_0x449da6=_0x48ebc2[_0x7f93('0x33')];if(!_0x16e9a5['query']['hasOwnProperty']('nolimit')){_0x5d918e['limit']=qs[_0x7f93('0x1c')](_0x16e9a5['query']['limit']);_0x5d918e[_0x7f93('0x1e')]=qs['offset'](_0x16e9a5[_0x7f93('0x2e')][_0x7f93('0x1e')]);}return _0xa3551c[_0x7f93('0x4b')](_0x5d918e);}})[_0x7f93('0x25')](function(_0x7dee1d){if(_0x7dee1d){return _0x7dee1d?{'count':_0x449da6,'rows':_0x7dee1d}:null;}})[_0x7f93('0x25')](respondWithResult(_0x26cb36,null))['catch'](handleError(_0x26cb36,null));};exports['addConfiguration']=function(_0x408c42,_0x4c718a,_0x37c499){if(_0x408c42[_0x7f93('0x4a')]['id']){delete _0x408c42[_0x7f93('0x4a')]['id'];}return db[_0x7f93('0x3e')][_0x7f93('0x4c')]({'where':{'id':_0x408c42[_0x7f93('0x44')]['id']}})[_0x7f93('0x25')](handleEntityNotFound(_0x4c718a,null))[_0x7f93('0x25')](function(_0x4249cd){if(_0x4249cd){_0x408c42['body']['AccountId']=_0x4249cd['id'];_0x408c42[_0x7f93('0x4a')][_0x7f93('0x4f')]=integrations['getSubjects'](_0x408c42[_0x7f93('0x4a')][_0x7f93('0x50')],_0x408c42[_0x7f93('0x4a')]['type']);_0x408c42[_0x7f93('0x4a')][_0x7f93('0x51')]=integrations[_0x7f93('0x52')](_0x408c42[_0x7f93('0x4a')]['channel'],_0x408c42[_0x7f93('0x4a')]['type']);return db[_0x7f93('0x4d')]['create'](_0x408c42[_0x7f93('0x4a')],{'include':[{'model':db[_0x7f93('0x53')],'as':_0x7f93('0x4f')},{'model':db[_0x7f93('0x53')],'as':_0x7f93('0x51')}]});}return null;})[_0x7f93('0x25')](respondWithResult(_0x4c718a,null))['catch'](handleError(_0x4c718a,null));};var md5=require(_0x7f93('0x54'));exports[_0x7f93('0x55')]=function(_0xc96de0,_0x1b2708,_0x1259a6){var _0x348b2d=null;var _0x3f5858=null;var _0x5a973c=null;var _0x4d1099=null;var _0x4746f6='';return db[_0x7f93('0x3e')]['findOne']({'where':{'id':_0xc96de0[_0x7f93('0x44')]['id']},'attributes':['id',_0x7f93('0x29'),_0x7f93('0x56'),'description','moduleName',_0x7f93('0x57'),_0x7f93('0x58'),_0x7f93('0x59')]})['then'](handleEntityNotFound(_0x1b2708,null))[_0x7f93('0x25')](function(_0x2415d3){if(_0x2415d3){_0x348b2d=_0x2415d3['username'];_0x3f5858=_0x2415d3['accessKey'];_0x5a973c=_0x2415d3['moduleName'];_0x4746f6=_0x2415d3['remoteUri'];var _0x182146=_0x4746f6[_0x7f93('0x5a')](-0x1);if(_0x182146==='/'){_0x4746f6=_0x4746f6[_0x7f93('0x5b')](0x0,_0x4746f6[_0x7f93('0x5c')](_0x182146));}_0x4d1099=util[_0x7f93('0x5d')](_0x7f93('0x5e'),_0x4746f6);var _0xbd3123={'method':'GET','uri':_0x4d1099,'qs':{'operation':_0x7f93('0x5f'),'username':_0x2415d3[_0x7f93('0x56')]},'json':!![]};return rp(_0xbd3123);}})[_0x7f93('0x25')](function(_0x49c7db){if(_0x49c7db[_0x7f93('0x60')]){var _0x545834={'method':_0x7f93('0x61'),'uri':_0x4d1099,'form':{'operation':_0x7f93('0x62'),'username':_0x348b2d,'accessKey':md5(_0x49c7db[_0x7f93('0x63')][_0x7f93('0x64')]+_0x3f5858)},'json':!![]};return rp(_0x545834);}})[_0x7f93('0x25')](function(_0x4135d8){if(_0x4135d8[_0x7f93('0x60')]){var _0x4ff1ec={'method':_0x7f93('0x65'),'uri':_0x4d1099,'qs':{'operation':_0x7f93('0x66'),'username':_0x348b2d,'sessionName':_0x4135d8[_0x7f93('0x63')][_0x7f93('0x67')],'elementType':_0x5a973c},'json':!![]};return rp(_0x4ff1ec);}})[_0x7f93('0x25')](function(_0x173ac8){if(_0x173ac8[_0x7f93('0x60')]){var _0x39a6c9=[_0x7f93('0x68'),_0x7f93('0x69'),'owner'];_['remove'](_0x173ac8[_0x7f93('0x63')][_0x7f93('0x32')],function(_0x3541bc){return _0x39a6c9[_0x7f93('0x6a')](_0x3541bc[_0x7f93('0x3c')][_0x7f93('0x29')]);});_['remove'](_0x173ac8['result'][_0x7f93('0x32')],function(_0x4328e9){return _0x4328e9[_0x7f93('0x6b')]===_0x7f93('0x6c');});return{'count':_0x173ac8[_0x7f93('0x63')]['fields']['length'],'rows':_[_0x7f93('0x2b')](_0x173ac8[_0x7f93('0x63')][_0x7f93('0x32')],function(_0x2f20eb){return{'id':_0x2f20eb[_0x7f93('0x29')],'name':_0x2f20eb[_0x7f93('0x6d')],'custom':_['startsWith'](_0x2f20eb[_0x7f93('0x29')],_0x7f93('0x6e'))?!![]:![],'options':_0x2f20eb['type'][_0x7f93('0x29')]==='picklist'&&_0x2f20eb[_0x7f93('0x3c')]['picklistValues'][_0x7f93('0x33')]>0x0?_[_0x7f93('0x2b')](_0x2f20eb[_0x7f93('0x3c')][_0x7f93('0x6f')],function(_0x4b1d4d){return{'name':_0x4b1d4d[_0x7f93('0x6d')],'value':_0x4b1d4d['value']};}):[]};})};}})[_0x7f93('0x25')](respondWithResult(_0x1b2708,null))[_0x7f93('0x42')](function(_0x5bf8af){console[_0x7f93('0x70')]('vTiger\x20error:\x20'+_0x5bf8af);var _0x7fa50c=_0xc96de0['query'][_0x7f93('0x71')]?0x1f4:_0x5bf8af['statusCode']||0x1f4;logger[_0x7f93('0x27')]('getFields,\x20%s,\x20%s,\x20%s',_0x7f93('0x55'),_0x7fa50c,JSON[_0x7f93('0x72')](_0x5bf8af));delete _0x5bf8af[_0x7f93('0x29')];if(_0x7fa50c===0x191){_0x7fa50c=0x190;}_0x1b2708[_0x7f93('0x19')](_0x7fa50c)[_0x7f93('0x2a')](_0xc96de0['query'][_0x7f93('0x71')]?{'message':_0x7f93('0x73'),'statusCode':_0x5bf8af[_0x7f93('0x74')]}:_0x5bf8af);});};