e6a91b6152f53a9f34916654443823e6d282eef5
[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 _0xe02b=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','undefined','count','offset','limit','set','json','apply','reject','save','update','then','destroy','end','sendStatus','error','name','send','index','map','VtigerAccount','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','sort','filter','merge','where','options','rows','catch','show','params','keys','includeAll','include','find','create','body','getConfigurations','VtigerConfiguration','order','pick','hasOwnProperty','nolimit','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','VtigerField','md5','getFields','findOne','username','description','serverUrl','accessKey','remoteUri','slice','substring','lastIndexOf','format','%s/webservice.php','GET','getchallenge','success','POST','result','sessionName','reference','remove','editable','label','startsWith','cf_','picklist','picklistValues','value','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x1ad53c,_0x13ebf8){var _0x33afe4=function(_0x2fa995){while(--_0x2fa995){_0x1ad53c['push'](_0x1ad53c['shift']());}};_0x33afe4(++_0x13ebf8);}(_0xe02b,0x15c));var _0xbe02=function(_0x44053d,_0x33b5c4){_0x44053d=_0x44053d-0x0;var _0x345f76=_0xe02b[_0x44053d];return _0x345f76;};'use strict';var emlformat=require(_0xbe02('0x0'));var rimraf=require(_0xbe02('0x1'));var zipdir=require(_0xbe02('0x2'));var jsonpatch=require(_0xbe02('0x3'));var rp=require(_0xbe02('0x4'));var moment=require(_0xbe02('0x5'));var BPromise=require(_0xbe02('0x6'));var Mustache=require(_0xbe02('0x7'));var util=require(_0xbe02('0x8'));var path=require(_0xbe02('0x9'));var sox=require(_0xbe02('0xa'));var csv=require(_0xbe02('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xbe02('0xc'));var _=require('lodash');var squel=require(_0xbe02('0xd'));var crypto=require(_0xbe02('0xe'));var jsforce=require(_0xbe02('0xf'));var deskjs=require(_0xbe02('0x10'));var toCsv=require(_0xbe02('0xb'));var querystring=require('querystring');var Papa=require(_0xbe02('0x11'));var Redis=require(_0xbe02('0x12'));var authService=require(_0xbe02('0x13'));var qs=require(_0xbe02('0x14'));var as=require(_0xbe02('0x15'));var hardwareService=require(_0xbe02('0x16'));var logger=require(_0xbe02('0x17'))(_0xbe02('0x18'));var utils=require(_0xbe02('0x19'));var config=require(_0xbe02('0x1a'));var licenseUtil=require(_0xbe02('0x1b'));var db=require(_0xbe02('0x1c'))['db'];var integrations=require(_0xbe02('0x1d'));function respondWithStatusCode(_0xce99d7,_0x1ca2a3){_0x1ca2a3=_0x1ca2a3||0xcc;return function(_0x27e493){if(_0x27e493){return _0xce99d7['sendStatus'](_0x1ca2a3);}return _0xce99d7[_0xbe02('0x1e')](_0x1ca2a3)['end']();};}function respondWithResult(_0x3b82e4,_0x2cb2e2){_0x2cb2e2=_0x2cb2e2||0xc8;return function(_0x2a9576){if(_0x2a9576){return _0x3b82e4[_0xbe02('0x1e')](_0x2cb2e2)['json'](_0x2a9576);}};}function respondWithFilteredResult(_0x405597,_0x91cae3){return function(_0x31d7b6){if(_0x31d7b6){var _0x545c3d=typeof _0x91cae3['offset']===_0xbe02('0x1f')&&typeof _0x91cae3['limit']===_0xbe02('0x1f');var _0x3710a1=_0x31d7b6[_0xbe02('0x20')];var _0x40b9b2=_0x545c3d?0x0:_0x91cae3[_0xbe02('0x21')];var _0x1c9b7c=_0x545c3d?_0x31d7b6[_0xbe02('0x20')]:_0x91cae3[_0xbe02('0x21')]+_0x91cae3[_0xbe02('0x22')];var _0x221012;if(_0x1c9b7c>=_0x3710a1){_0x1c9b7c=_0x3710a1;_0x221012=0xc8;}else{_0x221012=0xce;}_0x405597['status'](_0x221012);return _0x405597[_0xbe02('0x23')]('Content-Range',_0x40b9b2+'-'+_0x1c9b7c+'/'+_0x3710a1)[_0xbe02('0x24')](_0x31d7b6);}return null;};}function patchUpdates(_0x245c22){return function(_0x1477b0){try{jsonpatch[_0xbe02('0x25')](_0x1477b0,_0x245c22,!![]);}catch(_0x29cedc){return BPromise[_0xbe02('0x26')](_0x29cedc);}return _0x1477b0[_0xbe02('0x27')]();};}function saveUpdates(_0x578856,_0xeaa08e){return function(_0xb57f32){if(_0xb57f32){return _0xb57f32[_0xbe02('0x28')](_0x578856)[_0xbe02('0x29')](function(_0x5ae446){return _0x5ae446;});}return null;};}function removeEntity(_0x450b61,_0x411f8f){return function(_0x278ce1){if(_0x278ce1){return _0x278ce1[_0xbe02('0x2a')]()[_0xbe02('0x29')](function(){_0x450b61[_0xbe02('0x1e')](0xcc)[_0xbe02('0x2b')]();});}};}function handleEntityNotFound(_0x21e1a8,_0x38e725){return function(_0x33a3dd){if(!_0x33a3dd){_0x21e1a8[_0xbe02('0x2c')](0x194);}return _0x33a3dd;};}function handleError(_0x17202a,_0x39c61f){_0x39c61f=_0x39c61f||0x1f4;return function(_0x4b5d3e){logger[_0xbe02('0x2d')](_0x4b5d3e['stack']);if(_0x4b5d3e[_0xbe02('0x2e')]){delete _0x4b5d3e[_0xbe02('0x2e')];}_0x17202a[_0xbe02('0x1e')](_0x39c61f)[_0xbe02('0x2f')](_0x4b5d3e);};}exports[_0xbe02('0x30')]=function(_0x569422,_0xb996e7){var _0x39bd71={},_0x10a2ce={},_0x72e365={'count':0x0,'rows':[]};var _0x418682=_[_0xbe02('0x31')](db[_0xbe02('0x32')][_0xbe02('0x33')],function(_0x48efe2){return{'name':_0x48efe2[_0xbe02('0x34')],'type':_0x48efe2[_0xbe02('0x35')][_0xbe02('0x36')]};});_0x10a2ce['model']=_['map'](_0x418682,_0xbe02('0x2e'));_0x10a2ce[_0xbe02('0x37')]=_['keys'](_0x569422['query']);_0x10a2ce[_0xbe02('0x38')]=_[_0xbe02('0x39')](_0x10a2ce[_0xbe02('0x3a')],_0x10a2ce[_0xbe02('0x37')]);_0x39bd71[_0xbe02('0x3b')]=_[_0xbe02('0x39')](_0x10a2ce[_0xbe02('0x3a')],qs[_0xbe02('0x3c')](_0x569422['query'][_0xbe02('0x3c')]));_0x39bd71[_0xbe02('0x3b')]=_0x39bd71[_0xbe02('0x3b')][_0xbe02('0x3d')]?_0x39bd71[_0xbe02('0x3b')]:_0x10a2ce[_0xbe02('0x3a')];if(!_0x569422['query']['hasOwnProperty']('nolimit')){_0x39bd71[_0xbe02('0x22')]=qs[_0xbe02('0x22')](_0x569422[_0xbe02('0x37')][_0xbe02('0x22')]);_0x39bd71[_0xbe02('0x21')]=qs['offset'](_0x569422[_0xbe02('0x37')][_0xbe02('0x21')]);}_0x39bd71['order']=qs[_0xbe02('0x3e')](_0x569422[_0xbe02('0x37')][_0xbe02('0x3e')]);_0x39bd71['where']=qs[_0xbe02('0x38')](_['pick'](_0x569422[_0xbe02('0x37')],_0x10a2ce[_0xbe02('0x38')]),_0x418682);if(_0x569422[_0xbe02('0x37')][_0xbe02('0x3f')]){_0x39bd71['where']=_[_0xbe02('0x40')](_0x39bd71[_0xbe02('0x41')],{'$or':_['map'](_0x418682,function(_0x4248be){if(_0x4248be[_0xbe02('0x35')]!=='VIRTUAL'){var _0x33e7e4={};_0x33e7e4[_0x4248be[_0xbe02('0x2e')]]={'$like':'%'+_0x569422[_0xbe02('0x37')][_0xbe02('0x3f')]+'%'};return _0x33e7e4;}})});}_0x39bd71=_[_0xbe02('0x40')]({},_0x39bd71,_0x569422[_0xbe02('0x42')]);var _0x28ced0={'where':_0x39bd71[_0xbe02('0x41')]};return db[_0xbe02('0x32')]['count'](_0x28ced0)['then'](function(_0x509461){_0x72e365[_0xbe02('0x20')]=_0x509461;if(_0x569422[_0xbe02('0x37')]['includeAll']){_0x39bd71['include']=[{'all':!![]}];}return db[_0xbe02('0x32')]['findAll'](_0x39bd71);})[_0xbe02('0x29')](function(_0x12ac3e){_0x72e365[_0xbe02('0x43')]=_0x12ac3e;return _0x72e365;})[_0xbe02('0x29')](respondWithFilteredResult(_0xb996e7,_0x39bd71))[_0xbe02('0x44')](handleError(_0xb996e7,null));};exports[_0xbe02('0x45')]=function(_0x2445bd,_0x408558){var _0x12edb7={'raw':![],'where':{'id':_0x2445bd[_0xbe02('0x46')]['id']}},_0xa51d8c={};_0xa51d8c[_0xbe02('0x3a')]=_['keys'](db['VtigerAccount'][_0xbe02('0x33')]);_0xa51d8c[_0xbe02('0x37')]=_[_0xbe02('0x47')](_0x2445bd['query']);_0xa51d8c[_0xbe02('0x38')]=_[_0xbe02('0x39')](_0xa51d8c[_0xbe02('0x3a')],_0xa51d8c[_0xbe02('0x37')]);_0x12edb7[_0xbe02('0x3b')]=_[_0xbe02('0x39')](_0xa51d8c['model'],qs[_0xbe02('0x3c')](_0x2445bd[_0xbe02('0x37')]['fields']));_0x12edb7[_0xbe02('0x3b')]=_0x12edb7[_0xbe02('0x3b')]['length']?_0x12edb7[_0xbe02('0x3b')]:_0xa51d8c[_0xbe02('0x3a')];if(_0x2445bd[_0xbe02('0x37')][_0xbe02('0x48')]){_0x12edb7[_0xbe02('0x49')]=[{'all':!![]}];}_0x12edb7=_[_0xbe02('0x40')]({},_0x12edb7,_0x2445bd[_0xbe02('0x42')]);return db['VtigerAccount'][_0xbe02('0x4a')](_0x12edb7)[_0xbe02('0x29')](handleEntityNotFound(_0x408558,null))[_0xbe02('0x29')](respondWithResult(_0x408558,null))[_0xbe02('0x44')](handleError(_0x408558,null));};exports[_0xbe02('0x4b')]=function(_0x52ed90,_0x9cc995){return db['VtigerAccount'][_0xbe02('0x4b')](_0x52ed90[_0xbe02('0x4c')],{})[_0xbe02('0x29')](respondWithResult(_0x9cc995,0xc9))[_0xbe02('0x44')](handleError(_0x9cc995,null));};exports['update']=function(_0x2c60cf,_0x375bc2){if(_0x2c60cf[_0xbe02('0x4c')]['id']){delete _0x2c60cf[_0xbe02('0x4c')]['id'];}return db[_0xbe02('0x32')]['find']({'where':{'id':_0x2c60cf[_0xbe02('0x46')]['id']}})[_0xbe02('0x29')](handleEntityNotFound(_0x375bc2,null))['then'](saveUpdates(_0x2c60cf[_0xbe02('0x4c')],null))[_0xbe02('0x29')](respondWithResult(_0x375bc2,null))[_0xbe02('0x44')](handleError(_0x375bc2,null));};exports[_0xbe02('0x2a')]=function(_0x47de59,_0x2c17a7){return db[_0xbe02('0x32')][_0xbe02('0x4a')]({'where':{'id':_0x47de59[_0xbe02('0x46')]['id']}})[_0xbe02('0x29')](handleEntityNotFound(_0x2c17a7,null))[_0xbe02('0x29')](removeEntity(_0x2c17a7,null))[_0xbe02('0x44')](handleError(_0x2c17a7,null));};exports[_0xbe02('0x4d')]=function(_0x1e1940,_0x10a533,_0x371278){var _0x47cee1={};var _0x53ecf4={};var _0x40e87d;var _0x7c6674;return db[_0xbe02('0x32')]['findOne']({'where':{'id':_0x1e1940['params']['id']}})[_0xbe02('0x29')](handleEntityNotFound(_0x10a533,null))[_0xbe02('0x29')](function(_0x52272a){if(_0x52272a){_0x40e87d=_0x52272a;_0x53ecf4[_0xbe02('0x3a')]=_[_0xbe02('0x47')](db[_0xbe02('0x4e')][_0xbe02('0x33')]);_0x53ecf4['query']=_[_0xbe02('0x47')](_0x1e1940[_0xbe02('0x37')]);_0x53ecf4['filters']=_[_0xbe02('0x39')](_0x53ecf4[_0xbe02('0x3a')],_0x53ecf4[_0xbe02('0x37')]);_0x47cee1[_0xbe02('0x3b')]=_[_0xbe02('0x39')](_0x53ecf4[_0xbe02('0x3a')],qs['fields'](_0x1e1940[_0xbe02('0x37')]['fields']));_0x47cee1[_0xbe02('0x3b')]=_0x47cee1[_0xbe02('0x3b')][_0xbe02('0x3d')]?_0x47cee1[_0xbe02('0x3b')]:_0x53ecf4[_0xbe02('0x3a')];_0x47cee1[_0xbe02('0x4f')]=qs[_0xbe02('0x3e')](_0x1e1940[_0xbe02('0x37')]['sort']);_0x47cee1[_0xbe02('0x41')]=qs['filters'](_[_0xbe02('0x50')](_0x1e1940[_0xbe02('0x37')],_0x53ecf4[_0xbe02('0x38')]));if(_0x1e1940[_0xbe02('0x37')][_0xbe02('0x3f')]){_0x47cee1[_0xbe02('0x41')]=_['merge'](_0x47cee1[_0xbe02('0x41')],{'$or':_[_0xbe02('0x31')](_0x47cee1['attributes'],function(_0x3648b7){var _0x1dc5df={};_0x1dc5df[_0x3648b7]={'$like':'%'+_0x1e1940['query'][_0xbe02('0x3f')]+'%'};return _0x1dc5df;})});}_0x47cee1=_[_0xbe02('0x40')]({},_0x47cee1,_0x1e1940[_0xbe02('0x42')]);return _0x40e87d[_0xbe02('0x4d')](_0x47cee1);}})[_0xbe02('0x29')](function(_0x2e831e){if(_0x2e831e){_0x7c6674=_0x2e831e[_0xbe02('0x3d')];if(!_0x1e1940['query'][_0xbe02('0x51')](_0xbe02('0x52'))){_0x47cee1[_0xbe02('0x22')]=qs['limit'](_0x1e1940[_0xbe02('0x37')][_0xbe02('0x22')]);_0x47cee1[_0xbe02('0x21')]=qs[_0xbe02('0x21')](_0x1e1940['query'][_0xbe02('0x21')]);}return _0x40e87d[_0xbe02('0x4d')](_0x47cee1);}})[_0xbe02('0x29')](function(_0x508801){if(_0x508801){return _0x508801?{'count':_0x7c6674,'rows':_0x508801}:null;}})[_0xbe02('0x29')](respondWithResult(_0x10a533,null))['catch'](handleError(_0x10a533,null));};exports['addConfiguration']=function(_0x3b1d3b,_0x15488d,_0x2a33c9){if(_0x3b1d3b['body']['id']){delete _0x3b1d3b[_0xbe02('0x4c')]['id'];}return db['VtigerAccount']['findOne']({'where':{'id':_0x3b1d3b['params']['id']}})['then'](handleEntityNotFound(_0x15488d,null))[_0xbe02('0x29')](function(_0x9d388d){if(_0x9d388d){_0x3b1d3b['body'][_0xbe02('0x53')]=_0x9d388d['id'];_0x3b1d3b[_0xbe02('0x4c')][_0xbe02('0x54')]=integrations[_0xbe02('0x55')](_0x3b1d3b[_0xbe02('0x4c')]['channel'],_0x3b1d3b[_0xbe02('0x4c')][_0xbe02('0x35')]);_0x3b1d3b['body'][_0xbe02('0x56')]=integrations[_0xbe02('0x57')](_0x3b1d3b[_0xbe02('0x4c')][_0xbe02('0x58')],_0x3b1d3b[_0xbe02('0x4c')][_0xbe02('0x35')]);return db[_0xbe02('0x4e')][_0xbe02('0x4b')](_0x3b1d3b['body'],{'include':[{'model':db[_0xbe02('0x59')],'as':_0xbe02('0x54')},{'model':db[_0xbe02('0x59')],'as':'Descriptions'}]});}return null;})[_0xbe02('0x29')](respondWithResult(_0x15488d,null))[_0xbe02('0x44')](handleError(_0x15488d,null));};var md5=require(_0xbe02('0x5a'));exports[_0xbe02('0x5b')]=function(_0x11f59d,_0x29b39c,_0x6a1264){var _0x342406=null;var _0x248c7d=null;var _0x4b5436=null;var _0x2b7195=null;var _0x3aef91='';return db[_0xbe02('0x32')][_0xbe02('0x5c')]({'where':{'id':_0x11f59d[_0xbe02('0x46')]['id']},'attributes':['id','name',_0xbe02('0x5d'),_0xbe02('0x5e'),'moduleName','remoteUri',_0xbe02('0x5f'),_0xbe02('0x60')]})['then'](handleEntityNotFound(_0x29b39c,null))[_0xbe02('0x29')](function(_0x99759e){if(_0x99759e){_0x342406=_0x99759e['username'];_0x248c7d=_0x99759e[_0xbe02('0x60')];_0x4b5436=_0x99759e['moduleName'];_0x3aef91=_0x99759e[_0xbe02('0x61')];var _0x3782f4=_0x3aef91[_0xbe02('0x62')](-0x1);if(_0x3782f4==='/'){_0x3aef91=_0x3aef91[_0xbe02('0x63')](0x0,_0x3aef91[_0xbe02('0x64')](_0x3782f4));}_0x2b7195=util[_0xbe02('0x65')](_0xbe02('0x66'),_0x3aef91);var _0x13a583={'method':_0xbe02('0x67'),'uri':_0x2b7195,'qs':{'operation':_0xbe02('0x68'),'username':_0x99759e[_0xbe02('0x5d')]},'json':!![]};return rp(_0x13a583);}})[_0xbe02('0x29')](function(_0x29e479){if(_0x29e479[_0xbe02('0x69')]){var _0x33f44c={'method':_0xbe02('0x6a'),'uri':_0x2b7195,'form':{'operation':'login','username':_0x342406,'accessKey':md5(_0x29e479[_0xbe02('0x6b')]['token']+_0x248c7d)},'json':!![]};return rp(_0x33f44c);}})['then'](function(_0x532198){if(_0x532198[_0xbe02('0x69')]){var _0x353b22={'method':_0xbe02('0x67'),'uri':_0x2b7195,'qs':{'operation':'describe','username':_0x342406,'sessionName':_0x532198[_0xbe02('0x6b')][_0xbe02('0x6c')],'elementType':_0x4b5436},'json':!![]};return rp(_0x353b22);}})[_0xbe02('0x29')](function(_0x12cfb9){if(_0x12cfb9['success']){var _0x5c8cdd=['autogenerated',_0xbe02('0x6d'),'owner'];_[_0xbe02('0x6e')](_0x12cfb9[_0xbe02('0x6b')][_0xbe02('0x3c')],function(_0x35dc36){return _0x5c8cdd['includes'](_0x35dc36[_0xbe02('0x35')]['name']);});_[_0xbe02('0x6e')](_0x12cfb9['result'][_0xbe02('0x3c')],function(_0x321e9e){return _0x321e9e[_0xbe02('0x6f')]==='false';});return{'count':_0x12cfb9[_0xbe02('0x6b')][_0xbe02('0x3c')][_0xbe02('0x3d')],'rows':_['map'](_0x12cfb9[_0xbe02('0x6b')][_0xbe02('0x3c')],function(_0x474898){return{'id':_0x474898[_0xbe02('0x2e')],'name':_0x474898[_0xbe02('0x70')],'custom':_[_0xbe02('0x71')](_0x474898[_0xbe02('0x2e')],_0xbe02('0x72'))?!![]:![],'options':_0x474898[_0xbe02('0x35')][_0xbe02('0x2e')]===_0xbe02('0x73')&&_0x474898[_0xbe02('0x35')][_0xbe02('0x74')][_0xbe02('0x3d')]>0x0?_[_0xbe02('0x31')](_0x474898['type'][_0xbe02('0x74')],function(_0x56079b){return{'name':_0x56079b['label'],'value':_0x56079b[_0xbe02('0x75')]};}):[]};})};}})['then'](respondWithResult(_0x29b39c,null))['catch'](function(_0x1f95b6){console['log']('vTiger\x20error:\x20'+_0x1f95b6);var _0x180ece=_0x11f59d[_0xbe02('0x37')][_0xbe02('0x76')]?0x1f4:_0x1f95b6[_0xbe02('0x77')]||0x1f4;logger[_0xbe02('0x2d')](_0xbe02('0x78'),'getFields',_0x180ece,JSON[_0xbe02('0x79')](_0x1f95b6));delete _0x1f95b6[_0xbe02('0x2e')];if(_0x180ece===0x191){_0x180ece=0x190;}_0x29b39c[_0xbe02('0x1e')](_0x180ece)[_0xbe02('0x2f')](_0x11f59d[_0xbe02('0x37')][_0xbe02('0x76')]?{'message':_0xbe02('0x7a'),'statusCode':_0x1f95b6['statusCode']}:_0x1f95b6);});};