d4e4fb24cd2520d80dbea85abd92acf15a83555f
[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 _0xaf0d=['stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','map','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','type','VIRTUAL','filter','merge','includeAll','include','findAll','rows','show','params','VtigerAccount','options','find','create','body','catch','destroy','getConfigurations','findOne','addConfiguration','AccountId','Subjects','getSubjects','getDescriptions','channel','VtigerField','Descriptions','md5','username','description','moduleName','serverUrl','accessKey','remoteUri','slice','substring','lastIndexOf','format','%s/webservice.php','getchallenge','success','POST','login','result','token','GET','describe','sessionName','autogenerated','reference','owner','includes','remove','editable','startsWith','cf_','picklistValues','label','log','test','statusCode'];(function(_0x8af54b,_0x280be5){var _0x27d8f0=function(_0x559734){while(--_0x559734){_0x8af54b['push'](_0x8af54b['shift']());}};_0x27d8f0(++_0x280be5);}(_0xaf0d,0xf8));var _0xdaf0=function(_0x116f24,_0x4ea958){_0x116f24=_0x116f24-0x0;var _0x482cd1=_0xaf0d[_0x116f24];return _0x482cd1;};'use strict';var emlformat=require(_0xdaf0('0x0'));var rimraf=require(_0xdaf0('0x1'));var zipdir=require(_0xdaf0('0x2'));var jsonpatch=require(_0xdaf0('0x3'));var rp=require(_0xdaf0('0x4'));var moment=require(_0xdaf0('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xdaf0('0x6'));var path=require(_0xdaf0('0x7'));var sox=require(_0xdaf0('0x8'));var csv=require(_0xdaf0('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xdaf0('0xa'));var crypto=require('crypto');var jsforce=require(_0xdaf0('0xb'));var deskjs=require(_0xdaf0('0xc'));var toCsv=require(_0xdaf0('0x9'));var querystring=require('querystring');var Papa=require(_0xdaf0('0xd'));var Redis=require(_0xdaf0('0xe'));var authService=require(_0xdaf0('0xf'));var qs=require(_0xdaf0('0x10'));var as=require(_0xdaf0('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xdaf0('0x12'))(_0xdaf0('0x13'));var utils=require(_0xdaf0('0x14'));var config=require(_0xdaf0('0x15'));var licenseUtil=require(_0xdaf0('0x16'));var db=require(_0xdaf0('0x17'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3ee4dd,_0x1b9723){_0x1b9723=_0x1b9723||0xcc;return function(_0x15a15c){if(_0x15a15c){return _0x3ee4dd[_0xdaf0('0x18')](_0x1b9723);}return _0x3ee4dd[_0xdaf0('0x19')](_0x1b9723)[_0xdaf0('0x1a')]();};}function respondWithResult(_0x4cd4ff,_0x299d1a){_0x299d1a=_0x299d1a||0xc8;return function(_0x38252d){if(_0x38252d){return _0x4cd4ff[_0xdaf0('0x19')](_0x299d1a)[_0xdaf0('0x1b')](_0x38252d);}};}function respondWithFilteredResult(_0x49d057,_0x1bce2d){return function(_0x2bc9ca){if(_0x2bc9ca){var _0x2bbe4b=typeof _0x1bce2d[_0xdaf0('0x1c')]==='undefined'&&typeof _0x1bce2d[_0xdaf0('0x1d')]==='undefined';var _0x422eb5=_0x2bc9ca[_0xdaf0('0x1e')];var _0x6e996f=_0x2bbe4b?0x0:_0x1bce2d[_0xdaf0('0x1c')];var _0x57c54c=_0x2bbe4b?_0x2bc9ca['count']:_0x1bce2d[_0xdaf0('0x1c')]+_0x1bce2d[_0xdaf0('0x1d')];var _0x5f2235;if(_0x57c54c>=_0x422eb5){_0x57c54c=_0x422eb5;_0x5f2235=0xc8;}else{_0x5f2235=0xce;}_0x49d057['status'](_0x5f2235);return _0x49d057[_0xdaf0('0x1f')](_0xdaf0('0x20'),_0x6e996f+'-'+_0x57c54c+'/'+_0x422eb5)[_0xdaf0('0x1b')](_0x2bc9ca);}return null;};}function patchUpdates(_0x4d1400){return function(_0x5a2dec){try{jsonpatch[_0xdaf0('0x21')](_0x5a2dec,_0x4d1400,!![]);}catch(_0x5e12fd){return BPromise[_0xdaf0('0x22')](_0x5e12fd);}return _0x5a2dec[_0xdaf0('0x23')]();};}function saveUpdates(_0x1e8728,_0x36c438){return function(_0x48da6c){if(_0x48da6c){return _0x48da6c[_0xdaf0('0x24')](_0x1e8728)[_0xdaf0('0x25')](function(_0xbc378f){return _0xbc378f;});}return null;};}function removeEntity(_0x4c4cec,_0x14889b){return function(_0x98b8be){if(_0x98b8be){return _0x98b8be['destroy']()['then'](function(){_0x4c4cec['status'](0xcc)[_0xdaf0('0x1a')]();});}};}function handleEntityNotFound(_0x253bbc,_0x1effba){return function(_0x3df0e9){if(!_0x3df0e9){_0x253bbc[_0xdaf0('0x18')](0x194);}return _0x3df0e9;};}function handleError(_0x34b487,_0x2c66fe){_0x2c66fe=_0x2c66fe||0x1f4;return function(_0xf9fafa){logger[_0xdaf0('0x26')](_0xf9fafa[_0xdaf0('0x27')]);if(_0xf9fafa[_0xdaf0('0x28')]){delete _0xf9fafa[_0xdaf0('0x28')];}_0x34b487[_0xdaf0('0x19')](_0x2c66fe)[_0xdaf0('0x29')](_0xf9fafa);};}exports[_0xdaf0('0x2a')]=function(_0x2e061a,_0x42914b){var _0x4fefe6={},_0x31592f={},_0x1169c0={'count':0x0,'rows':[]};var _0x1d712a=_[_0xdaf0('0x2b')](db['VtigerAccount'][_0xdaf0('0x2c')],function(_0x2a7be6){return{'name':_0x2a7be6[_0xdaf0('0x2d')],'type':_0x2a7be6['type'][_0xdaf0('0x2e')]};});_0x31592f[_0xdaf0('0x2f')]=_[_0xdaf0('0x2b')](_0x1d712a,_0xdaf0('0x28'));_0x31592f['query']=_[_0xdaf0('0x30')](_0x2e061a[_0xdaf0('0x31')]);_0x31592f[_0xdaf0('0x32')]=_[_0xdaf0('0x33')](_0x31592f[_0xdaf0('0x2f')],_0x31592f[_0xdaf0('0x31')]);_0x4fefe6[_0xdaf0('0x34')]=_[_0xdaf0('0x33')](_0x31592f[_0xdaf0('0x2f')],qs[_0xdaf0('0x35')](_0x2e061a[_0xdaf0('0x31')][_0xdaf0('0x35')]));_0x4fefe6[_0xdaf0('0x34')]=_0x4fefe6[_0xdaf0('0x34')][_0xdaf0('0x36')]?_0x4fefe6[_0xdaf0('0x34')]:_0x31592f['model'];if(!_0x2e061a[_0xdaf0('0x31')][_0xdaf0('0x37')](_0xdaf0('0x38'))){_0x4fefe6['limit']=qs[_0xdaf0('0x1d')](_0x2e061a['query'][_0xdaf0('0x1d')]);_0x4fefe6['offset']=qs['offset'](_0x2e061a['query'][_0xdaf0('0x1c')]);}_0x4fefe6[_0xdaf0('0x39')]=qs[_0xdaf0('0x3a')](_0x2e061a['query']['sort']);_0x4fefe6[_0xdaf0('0x3b')]=qs[_0xdaf0('0x32')](_['pick'](_0x2e061a[_0xdaf0('0x31')],_0x31592f[_0xdaf0('0x32')]),_0x1d712a);if(_0x2e061a[_0xdaf0('0x31')]['filter']){_0x4fefe6[_0xdaf0('0x3b')]=_['merge'](_0x4fefe6[_0xdaf0('0x3b')],{'$or':_[_0xdaf0('0x2b')](_0x1d712a,function(_0xf3b11b){if(_0xf3b11b[_0xdaf0('0x3c')]!==_0xdaf0('0x3d')){var _0x27346b={};_0x27346b[_0xf3b11b['name']]={'$like':'%'+_0x2e061a[_0xdaf0('0x31')][_0xdaf0('0x3e')]+'%'};return _0x27346b;}})});}_0x4fefe6=_[_0xdaf0('0x3f')]({},_0x4fefe6,_0x2e061a['options']);var _0x34ff2c={'where':_0x4fefe6['where']};return db['VtigerAccount'][_0xdaf0('0x1e')](_0x34ff2c)[_0xdaf0('0x25')](function(_0x32b37f){_0x1169c0[_0xdaf0('0x1e')]=_0x32b37f;if(_0x2e061a[_0xdaf0('0x31')][_0xdaf0('0x40')]){_0x4fefe6[_0xdaf0('0x41')]=[{'all':!![]}];}return db['VtigerAccount'][_0xdaf0('0x42')](_0x4fefe6);})[_0xdaf0('0x25')](function(_0xd1ecc6){_0x1169c0[_0xdaf0('0x43')]=_0xd1ecc6;return _0x1169c0;})[_0xdaf0('0x25')](respondWithFilteredResult(_0x42914b,_0x4fefe6))['catch'](handleError(_0x42914b,null));};exports[_0xdaf0('0x44')]=function(_0x24cafa,_0x28030b){var _0x46c2c2={'raw':![],'where':{'id':_0x24cafa[_0xdaf0('0x45')]['id']}},_0x3630d4={};_0x3630d4[_0xdaf0('0x2f')]=_[_0xdaf0('0x30')](db[_0xdaf0('0x46')][_0xdaf0('0x2c')]);_0x3630d4[_0xdaf0('0x31')]=_[_0xdaf0('0x30')](_0x24cafa[_0xdaf0('0x31')]);_0x3630d4[_0xdaf0('0x32')]=_[_0xdaf0('0x33')](_0x3630d4[_0xdaf0('0x2f')],_0x3630d4[_0xdaf0('0x31')]);_0x46c2c2[_0xdaf0('0x34')]=_[_0xdaf0('0x33')](_0x3630d4[_0xdaf0('0x2f')],qs['fields'](_0x24cafa[_0xdaf0('0x31')][_0xdaf0('0x35')]));_0x46c2c2[_0xdaf0('0x34')]=_0x46c2c2[_0xdaf0('0x34')][_0xdaf0('0x36')]?_0x46c2c2[_0xdaf0('0x34')]:_0x3630d4[_0xdaf0('0x2f')];if(_0x24cafa[_0xdaf0('0x31')]['includeAll']){_0x46c2c2[_0xdaf0('0x41')]=[{'all':!![]}];}_0x46c2c2=_[_0xdaf0('0x3f')]({},_0x46c2c2,_0x24cafa[_0xdaf0('0x47')]);return db[_0xdaf0('0x46')][_0xdaf0('0x48')](_0x46c2c2)[_0xdaf0('0x25')](handleEntityNotFound(_0x28030b,null))[_0xdaf0('0x25')](respondWithResult(_0x28030b,null))['catch'](handleError(_0x28030b,null));};exports['create']=function(_0x15d1b0,_0x1bd2de){return db[_0xdaf0('0x46')][_0xdaf0('0x49')](_0x15d1b0[_0xdaf0('0x4a')],{})[_0xdaf0('0x25')](respondWithResult(_0x1bd2de,0xc9))[_0xdaf0('0x4b')](handleError(_0x1bd2de,null));};exports[_0xdaf0('0x24')]=function(_0x3fe8ad,_0x5416ce){if(_0x3fe8ad['body']['id']){delete _0x3fe8ad[_0xdaf0('0x4a')]['id'];}return db['VtigerAccount'][_0xdaf0('0x48')]({'where':{'id':_0x3fe8ad[_0xdaf0('0x45')]['id']}})[_0xdaf0('0x25')](handleEntityNotFound(_0x5416ce,null))[_0xdaf0('0x25')](saveUpdates(_0x3fe8ad['body'],null))[_0xdaf0('0x25')](respondWithResult(_0x5416ce,null))['catch'](handleError(_0x5416ce,null));};exports[_0xdaf0('0x4c')]=function(_0x4ba0ea,_0x4cc7be){return db[_0xdaf0('0x46')][_0xdaf0('0x48')]({'where':{'id':_0x4ba0ea[_0xdaf0('0x45')]['id']}})['then'](handleEntityNotFound(_0x4cc7be,null))[_0xdaf0('0x25')](removeEntity(_0x4cc7be,null))['catch'](handleError(_0x4cc7be,null));};exports[_0xdaf0('0x4d')]=function(_0x577934,_0x1d0ee4,_0x3eb437){var _0x21fffe={};var _0x5f06e5={};var _0x48544d;var _0x181690;return db[_0xdaf0('0x46')][_0xdaf0('0x4e')]({'where':{'id':_0x577934[_0xdaf0('0x45')]['id']}})[_0xdaf0('0x25')](handleEntityNotFound(_0x1d0ee4,null))[_0xdaf0('0x25')](function(_0x2a0cec){if(_0x2a0cec){_0x48544d=_0x2a0cec;_0x5f06e5['model']=_['keys'](db['VtigerConfiguration'][_0xdaf0('0x2c')]);_0x5f06e5['query']=_['keys'](_0x577934[_0xdaf0('0x31')]);_0x5f06e5['filters']=_[_0xdaf0('0x33')](_0x5f06e5[_0xdaf0('0x2f')],_0x5f06e5['query']);_0x21fffe[_0xdaf0('0x34')]=_[_0xdaf0('0x33')](_0x5f06e5['model'],qs[_0xdaf0('0x35')](_0x577934[_0xdaf0('0x31')]['fields']));_0x21fffe[_0xdaf0('0x34')]=_0x21fffe[_0xdaf0('0x34')]['length']?_0x21fffe[_0xdaf0('0x34')]:_0x5f06e5['model'];_0x21fffe[_0xdaf0('0x39')]=qs['sort'](_0x577934[_0xdaf0('0x31')][_0xdaf0('0x3a')]);_0x21fffe[_0xdaf0('0x3b')]=qs[_0xdaf0('0x32')](_['pick'](_0x577934['query'],_0x5f06e5[_0xdaf0('0x32')]));if(_0x577934['query'][_0xdaf0('0x3e')]){_0x21fffe[_0xdaf0('0x3b')]=_['merge'](_0x21fffe[_0xdaf0('0x3b')],{'$or':_['map'](_0x21fffe[_0xdaf0('0x34')],function(_0x7cd9ae){var _0x2b8d07={};_0x2b8d07[_0x7cd9ae]={'$like':'%'+_0x577934['query'][_0xdaf0('0x3e')]+'%'};return _0x2b8d07;})});}_0x21fffe=_[_0xdaf0('0x3f')]({},_0x21fffe,_0x577934['options']);return _0x48544d[_0xdaf0('0x4d')](_0x21fffe);}})[_0xdaf0('0x25')](function(_0x2790f7){if(_0x2790f7){_0x181690=_0x2790f7['length'];if(!_0x577934[_0xdaf0('0x31')][_0xdaf0('0x37')]('nolimit')){_0x21fffe[_0xdaf0('0x1d')]=qs[_0xdaf0('0x1d')](_0x577934[_0xdaf0('0x31')][_0xdaf0('0x1d')]);_0x21fffe[_0xdaf0('0x1c')]=qs[_0xdaf0('0x1c')](_0x577934[_0xdaf0('0x31')][_0xdaf0('0x1c')]);}return _0x48544d[_0xdaf0('0x4d')](_0x21fffe);}})[_0xdaf0('0x25')](function(_0x508e34){if(_0x508e34){return _0x508e34?{'count':_0x181690,'rows':_0x508e34}:null;}})[_0xdaf0('0x25')](respondWithResult(_0x1d0ee4,null))[_0xdaf0('0x4b')](handleError(_0x1d0ee4,null));};exports[_0xdaf0('0x4f')]=function(_0x1cb577,_0x26c454,_0x310eb0){if(_0x1cb577[_0xdaf0('0x4a')]['id']){delete _0x1cb577[_0xdaf0('0x4a')]['id'];}return db[_0xdaf0('0x46')][_0xdaf0('0x4e')]({'where':{'id':_0x1cb577[_0xdaf0('0x45')]['id']}})['then'](handleEntityNotFound(_0x26c454,null))[_0xdaf0('0x25')](function(_0x114204){if(_0x114204){_0x1cb577['body'][_0xdaf0('0x50')]=_0x114204['id'];_0x1cb577[_0xdaf0('0x4a')][_0xdaf0('0x51')]=integrations[_0xdaf0('0x52')](_0x1cb577[_0xdaf0('0x4a')]['channel'],_0x1cb577['body']['type']);_0x1cb577[_0xdaf0('0x4a')]['Descriptions']=integrations[_0xdaf0('0x53')](_0x1cb577[_0xdaf0('0x4a')][_0xdaf0('0x54')],_0x1cb577['body'][_0xdaf0('0x3c')]);return db['VtigerConfiguration'][_0xdaf0('0x49')](_0x1cb577[_0xdaf0('0x4a')],{'include':[{'model':db['VtigerField'],'as':_0xdaf0('0x51')},{'model':db[_0xdaf0('0x55')],'as':_0xdaf0('0x56')}]});}return null;})['then'](respondWithResult(_0x26c454,null))[_0xdaf0('0x4b')](handleError(_0x26c454,null));};var md5=require(_0xdaf0('0x57'));exports['getFields']=function(_0x42fe96,_0x4bbfc9,_0x3bd14d){var _0x37c1b7=null;var _0x2c5722=null;var _0x180fbc=null;var _0x2a7a87=null;var _0x39d263='';return db[_0xdaf0('0x46')][_0xdaf0('0x4e')]({'where':{'id':_0x42fe96[_0xdaf0('0x45')]['id']},'attributes':['id',_0xdaf0('0x28'),_0xdaf0('0x58'),_0xdaf0('0x59'),_0xdaf0('0x5a'),'remoteUri',_0xdaf0('0x5b'),_0xdaf0('0x5c')]})['then'](handleEntityNotFound(_0x4bbfc9,null))['then'](function(_0x56fcee){if(_0x56fcee){_0x37c1b7=_0x56fcee[_0xdaf0('0x58')];_0x2c5722=_0x56fcee[_0xdaf0('0x5c')];_0x180fbc=_0x56fcee[_0xdaf0('0x5a')];_0x39d263=_0x56fcee[_0xdaf0('0x5d')];var _0x5a398f=_0x39d263[_0xdaf0('0x5e')](-0x1);if(_0x5a398f==='/'){_0x39d263=_0x39d263[_0xdaf0('0x5f')](0x0,_0x39d263[_0xdaf0('0x60')](_0x5a398f));}_0x2a7a87=util[_0xdaf0('0x61')](_0xdaf0('0x62'),_0x39d263);var _0xdb961d={'method':'GET','uri':_0x2a7a87,'qs':{'operation':_0xdaf0('0x63'),'username':_0x56fcee[_0xdaf0('0x58')]},'json':!![]};return rp(_0xdb961d);}})[_0xdaf0('0x25')](function(_0x367823){if(_0x367823[_0xdaf0('0x64')]){var _0x2a1edb={'method':_0xdaf0('0x65'),'uri':_0x2a7a87,'form':{'operation':_0xdaf0('0x66'),'username':_0x37c1b7,'accessKey':md5(_0x367823[_0xdaf0('0x67')][_0xdaf0('0x68')]+_0x2c5722)},'json':!![]};return rp(_0x2a1edb);}})[_0xdaf0('0x25')](function(_0x1726ba){if(_0x1726ba[_0xdaf0('0x64')]){var _0x30d0c2={'method':_0xdaf0('0x69'),'uri':_0x2a7a87,'qs':{'operation':_0xdaf0('0x6a'),'username':_0x37c1b7,'sessionName':_0x1726ba[_0xdaf0('0x67')][_0xdaf0('0x6b')],'elementType':_0x180fbc},'json':!![]};return rp(_0x30d0c2);}})[_0xdaf0('0x25')](function(_0xc03059){if(_0xc03059[_0xdaf0('0x64')]){var _0x49cd03=[_0xdaf0('0x6c'),_0xdaf0('0x6d'),_0xdaf0('0x6e')];_['remove'](_0xc03059[_0xdaf0('0x67')][_0xdaf0('0x35')],function(_0x4e2ac9){return _0x49cd03[_0xdaf0('0x6f')](_0x4e2ac9['type']['name']);});_[_0xdaf0('0x70')](_0xc03059[_0xdaf0('0x67')][_0xdaf0('0x35')],function(_0x59cb82){return _0x59cb82[_0xdaf0('0x71')]==='false';});return{'count':_0xc03059[_0xdaf0('0x67')][_0xdaf0('0x35')]['length'],'rows':_[_0xdaf0('0x2b')](_0xc03059[_0xdaf0('0x67')]['fields'],function(_0x15d9ec){return{'id':_0x15d9ec[_0xdaf0('0x28')],'name':_0x15d9ec['label'],'custom':_[_0xdaf0('0x72')](_0x15d9ec['name'],_0xdaf0('0x73'))?!![]:![],'options':_0x15d9ec[_0xdaf0('0x3c')][_0xdaf0('0x28')]==='picklist'&&_0x15d9ec[_0xdaf0('0x3c')][_0xdaf0('0x74')][_0xdaf0('0x36')]>0x0?_[_0xdaf0('0x2b')](_0x15d9ec['type'][_0xdaf0('0x74')],function(_0x135e6b){return{'name':_0x135e6b[_0xdaf0('0x75')],'value':_0x135e6b['value']};}):[]};})};}})[_0xdaf0('0x25')](respondWithResult(_0x4bbfc9,null))[_0xdaf0('0x4b')](function(_0x4501db){console[_0xdaf0('0x76')]('vTiger\x20error:\x20'+_0x4501db);var _0x222263=_0x42fe96[_0xdaf0('0x31')][_0xdaf0('0x77')]?0x1f4:_0x4501db[_0xdaf0('0x78')]||0x1f4;logger[_0xdaf0('0x26')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x222263,JSON[_0xdaf0('0x79')](_0x4501db));delete _0x4501db['name'];if(_0x222263===0x191){_0x222263=0x190;}_0x4bbfc9[_0xdaf0('0x19')](_0x222263)['send'](_0x42fe96['query'][_0xdaf0('0x77')]?{'message':_0xdaf0('0x7a'),'statusCode':_0x4501db[_0xdaf0('0x78')]}:_0x4501db);});};