01456da0a3a8308e3e22385751399d3119bc7f34
[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 _0x533c=['papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','offset','limit','count','Content-Range','json','apply','save','update','then','end','sendStatus','error','name','send','index','map','VtigerAccount','rawAttributes','fieldName','type','filters','intersection','attributes','fields','query','length','model','hasOwnProperty','sort','where','filter','merge','options','includeAll','include','findAll','show','params','keys','create','body','catch','destroy','find','getConfigurations','VtigerConfiguration','order','pick','addConfiguration','findOne','Subjects','getSubjects','channel','getDescriptions','VtigerField','Descriptions','md5','getFields','username','description','moduleName','remoteUri','serverUrl','accessKey','slice','lastIndexOf','%s/webservice.php','GET','success','login','result','token','autogenerated','remove','includes','false','label','startsWith','cf_','picklist','picklistValues','value','log','statusCode','stringify','test','Wrong\x20credentials','rimraf','fast-json-patch','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring'];(function(_0x5746a1,_0x11eab1){var _0x551a43=function(_0x7ddcbe){while(--_0x7ddcbe){_0x5746a1['push'](_0x5746a1['shift']());}};_0x551a43(++_0x11eab1);}(_0x533c,0x1af));var _0xc533=function(_0x30e211,_0x32e11b){_0x30e211=_0x30e211-0x0;var _0x2c1ec1=_0x533c[_0x30e211];return _0x2c1ec1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc533('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc533('0x1'));var rp=require('request-promise');var moment=require(_0xc533('0x2'));var BPromise=require(_0xc533('0x3'));var Mustache=require(_0xc533('0x4'));var util=require('util');var path=require(_0xc533('0x5'));var sox=require('sox');var csv=require(_0xc533('0x6'));var ejs=require(_0xc533('0x7'));var fs=require('fs');var fs_extra=require(_0xc533('0x8'));var _=require(_0xc533('0x9'));var squel=require('squel');var crypto=require(_0xc533('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xc533('0xb'));var toCsv=require(_0xc533('0x6'));var querystring=require(_0xc533('0xc'));var Papa=require(_0xc533('0xd'));var Redis=require(_0xc533('0xe'));var authService=require(_0xc533('0xf'));var qs=require(_0xc533('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc533('0x11'));var logger=require(_0xc533('0x12'))(_0xc533('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xc533('0x14'));var db=require(_0xc533('0x15'))['db'];var integrations=require(_0xc533('0x16'));function respondWithStatusCode(_0x3b1d41,_0x45d771){_0x45d771=_0x45d771||0xcc;return function(_0x5bb02f){if(_0x5bb02f){return _0x3b1d41['sendStatus'](_0x45d771);}return _0x3b1d41[_0xc533('0x17')](_0x45d771)['end']();};}function respondWithResult(_0x44a50a,_0x408629){_0x408629=_0x408629||0xc8;return function(_0x3d9a73){if(_0x3d9a73){return _0x44a50a[_0xc533('0x17')](_0x408629)['json'](_0x3d9a73);}};}function respondWithFilteredResult(_0x273767,_0x1f2e6a){return function(_0x30a361){if(_0x30a361){var _0x27f5b0=typeof _0x1f2e6a[_0xc533('0x18')]==='undefined'&&typeof _0x1f2e6a[_0xc533('0x19')]==='undefined';var _0x30ccb6=_0x30a361[_0xc533('0x1a')];var _0x2cadad=_0x27f5b0?0x0:_0x1f2e6a[_0xc533('0x18')];var _0x5af848=_0x27f5b0?_0x30a361[_0xc533('0x1a')]:_0x1f2e6a[_0xc533('0x18')]+_0x1f2e6a['limit'];var _0xa1e1d5;if(_0x5af848>=_0x30ccb6){_0x5af848=_0x30ccb6;_0xa1e1d5=0xc8;}else{_0xa1e1d5=0xce;}_0x273767[_0xc533('0x17')](_0xa1e1d5);return _0x273767['set'](_0xc533('0x1b'),_0x2cadad+'-'+_0x5af848+'/'+_0x30ccb6)[_0xc533('0x1c')](_0x30a361);}return null;};}function patchUpdates(_0x5320f2){return function(_0x169d59){try{jsonpatch[_0xc533('0x1d')](_0x169d59,_0x5320f2,!![]);}catch(_0x4ac768){return BPromise['reject'](_0x4ac768);}return _0x169d59[_0xc533('0x1e')]();};}function saveUpdates(_0x28fb87,_0x2285fb){return function(_0x2daabf){if(_0x2daabf){return _0x2daabf[_0xc533('0x1f')](_0x28fb87)[_0xc533('0x20')](function(_0x495759){return _0x495759;});}return null;};}function removeEntity(_0x12dc83,_0x3cfce3){return function(_0x11731e){if(_0x11731e){return _0x11731e['destroy']()[_0xc533('0x20')](function(){_0x12dc83[_0xc533('0x17')](0xcc)[_0xc533('0x21')]();});}};}function handleEntityNotFound(_0x46bda8,_0x1742fb){return function(_0x4ffdfb){if(!_0x4ffdfb){_0x46bda8[_0xc533('0x22')](0x194);}return _0x4ffdfb;};}function handleError(_0x462fb3,_0x39e413){_0x39e413=_0x39e413||0x1f4;return function(_0xdabf85){logger[_0xc533('0x23')](_0xdabf85['stack']);if(_0xdabf85['name']){delete _0xdabf85[_0xc533('0x24')];}_0x462fb3[_0xc533('0x17')](_0x39e413)[_0xc533('0x25')](_0xdabf85);};}exports[_0xc533('0x26')]=function(_0x498beb,_0x5a80f1){var _0x11250c={},_0x39be75={},_0x59bf3f={'count':0x0,'rows':[]};var _0x2fd403=_[_0xc533('0x27')](db[_0xc533('0x28')][_0xc533('0x29')],function(_0x4721d2){return{'name':_0x4721d2[_0xc533('0x2a')],'type':_0x4721d2[_0xc533('0x2b')]['key']};});_0x39be75['model']=_[_0xc533('0x27')](_0x2fd403,_0xc533('0x24'));_0x39be75['query']=_['keys'](_0x498beb['query']);_0x39be75[_0xc533('0x2c')]=_[_0xc533('0x2d')](_0x39be75['model'],_0x39be75['query']);_0x11250c[_0xc533('0x2e')]=_[_0xc533('0x2d')](_0x39be75['model'],qs[_0xc533('0x2f')](_0x498beb[_0xc533('0x30')][_0xc533('0x2f')]));_0x11250c[_0xc533('0x2e')]=_0x11250c[_0xc533('0x2e')][_0xc533('0x31')]?_0x11250c[_0xc533('0x2e')]:_0x39be75[_0xc533('0x32')];if(!_0x498beb[_0xc533('0x30')][_0xc533('0x33')]('nolimit')){_0x11250c[_0xc533('0x19')]=qs['limit'](_0x498beb['query'][_0xc533('0x19')]);_0x11250c[_0xc533('0x18')]=qs['offset'](_0x498beb[_0xc533('0x30')][_0xc533('0x18')]);}_0x11250c['order']=qs[_0xc533('0x34')](_0x498beb['query'][_0xc533('0x34')]);_0x11250c[_0xc533('0x35')]=qs[_0xc533('0x2c')](_['pick'](_0x498beb[_0xc533('0x30')],_0x39be75[_0xc533('0x2c')]),_0x2fd403);if(_0x498beb[_0xc533('0x30')][_0xc533('0x36')]){_0x11250c[_0xc533('0x35')]=_[_0xc533('0x37')](_0x11250c['where'],{'$or':_[_0xc533('0x27')](_0x2fd403,function(_0x408512){if(_0x408512[_0xc533('0x2b')]!=='VIRTUAL'){var _0x78be14={};_0x78be14[_0x408512[_0xc533('0x24')]]={'$like':'%'+_0x498beb['query']['filter']+'%'};return _0x78be14;}})});}_0x11250c=_['merge']({},_0x11250c,_0x498beb[_0xc533('0x38')]);var _0x1247a5={'where':_0x11250c[_0xc533('0x35')]};return db['VtigerAccount']['count'](_0x1247a5)[_0xc533('0x20')](function(_0x1c4de8){_0x59bf3f[_0xc533('0x1a')]=_0x1c4de8;if(_0x498beb[_0xc533('0x30')][_0xc533('0x39')]){_0x11250c[_0xc533('0x3a')]=[{'all':!![]}];}return db['VtigerAccount'][_0xc533('0x3b')](_0x11250c);})[_0xc533('0x20')](function(_0x4e72f3){_0x59bf3f['rows']=_0x4e72f3;return _0x59bf3f;})['then'](respondWithFilteredResult(_0x5a80f1,_0x11250c))['catch'](handleError(_0x5a80f1,null));};exports[_0xc533('0x3c')]=function(_0x4d85bf,_0x2fa81c){var _0x22c4c4={'raw':![],'where':{'id':_0x4d85bf[_0xc533('0x3d')]['id']}},_0x50eddf={};_0x50eddf[_0xc533('0x32')]=_['keys'](db[_0xc533('0x28')][_0xc533('0x29')]);_0x50eddf[_0xc533('0x30')]=_[_0xc533('0x3e')](_0x4d85bf['query']);_0x50eddf[_0xc533('0x2c')]=_['intersection'](_0x50eddf[_0xc533('0x32')],_0x50eddf['query']);_0x22c4c4[_0xc533('0x2e')]=_[_0xc533('0x2d')](_0x50eddf[_0xc533('0x32')],qs[_0xc533('0x2f')](_0x4d85bf['query']['fields']));_0x22c4c4[_0xc533('0x2e')]=_0x22c4c4[_0xc533('0x2e')][_0xc533('0x31')]?_0x22c4c4['attributes']:_0x50eddf['model'];if(_0x4d85bf[_0xc533('0x30')][_0xc533('0x39')]){_0x22c4c4[_0xc533('0x3a')]=[{'all':!![]}];}_0x22c4c4=_[_0xc533('0x37')]({},_0x22c4c4,_0x4d85bf['options']);return db[_0xc533('0x28')]['find'](_0x22c4c4)['then'](handleEntityNotFound(_0x2fa81c,null))[_0xc533('0x20')](respondWithResult(_0x2fa81c,null))['catch'](handleError(_0x2fa81c,null));};exports[_0xc533('0x3f')]=function(_0x419f99,_0x5b1bd3){return db[_0xc533('0x28')][_0xc533('0x3f')](_0x419f99[_0xc533('0x40')],{})[_0xc533('0x20')](respondWithResult(_0x5b1bd3,0xc9))[_0xc533('0x41')](handleError(_0x5b1bd3,null));};exports[_0xc533('0x1f')]=function(_0x4d2c63,_0x3b657a){if(_0x4d2c63[_0xc533('0x40')]['id']){delete _0x4d2c63[_0xc533('0x40')]['id'];}return db[_0xc533('0x28')]['find']({'where':{'id':_0x4d2c63['params']['id']}})['then'](handleEntityNotFound(_0x3b657a,null))[_0xc533('0x20')](saveUpdates(_0x4d2c63['body'],null))['then'](respondWithResult(_0x3b657a,null))['catch'](handleError(_0x3b657a,null));};exports[_0xc533('0x42')]=function(_0x5a7838,_0x40b373){return db[_0xc533('0x28')][_0xc533('0x43')]({'where':{'id':_0x5a7838[_0xc533('0x3d')]['id']}})['then'](handleEntityNotFound(_0x40b373,null))['then'](removeEntity(_0x40b373,null))['catch'](handleError(_0x40b373,null));};exports[_0xc533('0x44')]=function(_0x326421,_0x4c687e,_0x5388f9){var _0x135df9={};var _0x49e31d={};var _0x46a2c0;var _0x8cb586;return db[_0xc533('0x28')]['findOne']({'where':{'id':_0x326421[_0xc533('0x3d')]['id']}})[_0xc533('0x20')](handleEntityNotFound(_0x4c687e,null))[_0xc533('0x20')](function(_0x7bdc73){if(_0x7bdc73){_0x46a2c0=_0x7bdc73;_0x49e31d[_0xc533('0x32')]=_[_0xc533('0x3e')](db[_0xc533('0x45')][_0xc533('0x29')]);_0x49e31d[_0xc533('0x30')]=_['keys'](_0x326421[_0xc533('0x30')]);_0x49e31d[_0xc533('0x2c')]=_[_0xc533('0x2d')](_0x49e31d['model'],_0x49e31d[_0xc533('0x30')]);_0x135df9[_0xc533('0x2e')]=_[_0xc533('0x2d')](_0x49e31d[_0xc533('0x32')],qs[_0xc533('0x2f')](_0x326421[_0xc533('0x30')][_0xc533('0x2f')]));_0x135df9['attributes']=_0x135df9[_0xc533('0x2e')][_0xc533('0x31')]?_0x135df9[_0xc533('0x2e')]:_0x49e31d[_0xc533('0x32')];_0x135df9[_0xc533('0x46')]=qs[_0xc533('0x34')](_0x326421[_0xc533('0x30')][_0xc533('0x34')]);_0x135df9[_0xc533('0x35')]=qs[_0xc533('0x2c')](_[_0xc533('0x47')](_0x326421[_0xc533('0x30')],_0x49e31d[_0xc533('0x2c')]));if(_0x326421['query'][_0xc533('0x36')]){_0x135df9[_0xc533('0x35')]=_[_0xc533('0x37')](_0x135df9[_0xc533('0x35')],{'$or':_[_0xc533('0x27')](_0x135df9['attributes'],function(_0x42e2b8){var _0x4bfc1a={};_0x4bfc1a[_0x42e2b8]={'$like':'%'+_0x326421['query'][_0xc533('0x36')]+'%'};return _0x4bfc1a;})});}_0x135df9=_[_0xc533('0x37')]({},_0x135df9,_0x326421[_0xc533('0x38')]);return _0x46a2c0[_0xc533('0x44')](_0x135df9);}})['then'](function(_0x13fb4f){if(_0x13fb4f){_0x8cb586=_0x13fb4f[_0xc533('0x31')];if(!_0x326421['query']['hasOwnProperty']('nolimit')){_0x135df9['limit']=qs['limit'](_0x326421[_0xc533('0x30')][_0xc533('0x19')]);_0x135df9[_0xc533('0x18')]=qs['offset'](_0x326421[_0xc533('0x30')][_0xc533('0x18')]);}return _0x46a2c0[_0xc533('0x44')](_0x135df9);}})[_0xc533('0x20')](function(_0x55db8c){if(_0x55db8c){return _0x55db8c?{'count':_0x8cb586,'rows':_0x55db8c}:null;}})[_0xc533('0x20')](respondWithResult(_0x4c687e,null))[_0xc533('0x41')](handleError(_0x4c687e,null));};exports[_0xc533('0x48')]=function(_0x5afcdb,_0x1a7287,_0x24803f){if(_0x5afcdb[_0xc533('0x40')]['id']){delete _0x5afcdb[_0xc533('0x40')]['id'];}return db[_0xc533('0x28')][_0xc533('0x49')]({'where':{'id':_0x5afcdb[_0xc533('0x3d')]['id']}})[_0xc533('0x20')](handleEntityNotFound(_0x1a7287,null))[_0xc533('0x20')](function(_0x4ff40e){if(_0x4ff40e){_0x5afcdb[_0xc533('0x40')]['AccountId']=_0x4ff40e['id'];_0x5afcdb[_0xc533('0x40')][_0xc533('0x4a')]=integrations[_0xc533('0x4b')](_0x5afcdb[_0xc533('0x40')][_0xc533('0x4c')],_0x5afcdb[_0xc533('0x40')][_0xc533('0x2b')]);_0x5afcdb[_0xc533('0x40')]['Descriptions']=integrations[_0xc533('0x4d')](_0x5afcdb['body'][_0xc533('0x4c')],_0x5afcdb[_0xc533('0x40')][_0xc533('0x2b')]);return db[_0xc533('0x45')]['create'](_0x5afcdb[_0xc533('0x40')],{'include':[{'model':db['VtigerField'],'as':_0xc533('0x4a')},{'model':db[_0xc533('0x4e')],'as':_0xc533('0x4f')}]});}return null;})[_0xc533('0x20')](respondWithResult(_0x1a7287,null))[_0xc533('0x41')](handleError(_0x1a7287,null));};var md5=require(_0xc533('0x50'));exports[_0xc533('0x51')]=function(_0x2476a7,_0x1ade7b,_0x35e8dc){var _0x1b421d=null;var _0x40e68e=null;var _0x1f974b=null;var _0x2251c0=null;var _0x5ab5b1='';return db[_0xc533('0x28')][_0xc533('0x49')]({'where':{'id':_0x2476a7[_0xc533('0x3d')]['id']},'attributes':['id',_0xc533('0x24'),_0xc533('0x52'),_0xc533('0x53'),_0xc533('0x54'),_0xc533('0x55'),_0xc533('0x56'),'accessKey']})['then'](handleEntityNotFound(_0x1ade7b,null))[_0xc533('0x20')](function(_0x47327d){if(_0x47327d){_0x1b421d=_0x47327d['username'];_0x40e68e=_0x47327d[_0xc533('0x57')];_0x1f974b=_0x47327d[_0xc533('0x54')];_0x5ab5b1=_0x47327d[_0xc533('0x55')];var _0x116103=_0x5ab5b1[_0xc533('0x58')](-0x1);if(_0x116103==='/'){_0x5ab5b1=_0x5ab5b1['substring'](0x0,_0x5ab5b1[_0xc533('0x59')](_0x116103));}_0x2251c0=util['format'](_0xc533('0x5a'),_0x5ab5b1);var _0x542478={'method':_0xc533('0x5b'),'uri':_0x2251c0,'qs':{'operation':'getchallenge','username':_0x47327d[_0xc533('0x52')]},'json':!![]};return rp(_0x542478);}})[_0xc533('0x20')](function(_0x26df00){if(_0x26df00[_0xc533('0x5c')]){var _0x255a0d={'method':'POST','uri':_0x2251c0,'form':{'operation':_0xc533('0x5d'),'username':_0x1b421d,'accessKey':md5(_0x26df00[_0xc533('0x5e')][_0xc533('0x5f')]+_0x40e68e)},'json':!![]};return rp(_0x255a0d);}})['then'](function(_0x347b37){if(_0x347b37[_0xc533('0x5c')]){var _0x7587cf={'method':_0xc533('0x5b'),'uri':_0x2251c0,'qs':{'operation':'describe','username':_0x1b421d,'sessionName':_0x347b37[_0xc533('0x5e')]['sessionName'],'elementType':_0x1f974b},'json':!![]};return rp(_0x7587cf);}})['then'](function(_0x1813b8){if(_0x1813b8['success']){var _0x4da58c=[_0xc533('0x60'),'reference','owner'];_[_0xc533('0x61')](_0x1813b8[_0xc533('0x5e')][_0xc533('0x2f')],function(_0x52ab14){return _0x4da58c[_0xc533('0x62')](_0x52ab14[_0xc533('0x2b')][_0xc533('0x24')]);});_[_0xc533('0x61')](_0x1813b8['result'][_0xc533('0x2f')],function(_0x4ab4dc){return _0x4ab4dc['editable']===_0xc533('0x63');});return{'count':_0x1813b8[_0xc533('0x5e')][_0xc533('0x2f')][_0xc533('0x31')],'rows':_[_0xc533('0x27')](_0x1813b8[_0xc533('0x5e')][_0xc533('0x2f')],function(_0x2d3ab8){return{'id':_0x2d3ab8[_0xc533('0x24')],'name':_0x2d3ab8[_0xc533('0x64')],'custom':_[_0xc533('0x65')](_0x2d3ab8[_0xc533('0x24')],_0xc533('0x66'))?!![]:![],'options':_0x2d3ab8[_0xc533('0x2b')][_0xc533('0x24')]===_0xc533('0x67')&&_0x2d3ab8[_0xc533('0x2b')]['picklistValues']['length']>0x0?_[_0xc533('0x27')](_0x2d3ab8['type'][_0xc533('0x68')],function(_0x13978c){return{'name':_0x13978c[_0xc533('0x64')],'value':_0x13978c[_0xc533('0x69')]};}):[]};})};}})[_0xc533('0x20')](respondWithResult(_0x1ade7b,null))[_0xc533('0x41')](function(_0x4af723){console[_0xc533('0x6a')]('vTiger\x20error:\x20'+_0x4af723);var _0x4861d2=_0x2476a7[_0xc533('0x30')]['test']?0x1f4:_0x4af723[_0xc533('0x6b')]||0x1f4;logger[_0xc533('0x23')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x4861d2,JSON[_0xc533('0x6c')](_0x4af723));delete _0x4af723['name'];if(_0x4861d2===0x191){_0x4861d2=0x190;}_0x1ade7b[_0xc533('0x17')](_0x4861d2)[_0xc533('0x25')](_0x2476a7[_0xc533('0x30')][_0xc533('0x6d')]?{'message':_0xc533('0x6e'),'statusCode':_0x4af723[_0xc533('0x6b')]}:_0x4af723);});};