f9ebfd4b2257e23838177d469da5b2b83260a8e2
[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 _0x9a66=['remoteUri','serverUrl','accessKey','slice','substring','lastIndexOf','%s/webservice.php','GET','success','login','token','describe','result','sessionName','autogenerated','reference','owner','remove','editable','label','picklist','picklistValues','value','log','vTiger\x20error:\x20','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','zip-dir','request-promise','path','sox','to-csv','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','save','update','then','destroy','name','send','index','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','type','VIRTUAL','merge','VtigerAccount','includeAll','findAll','catch','show','params','include','options','find','create','body','getConfigurations','findOne','VtigerConfiguration','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','VtigerField','md5','getFields','username','description','moduleName'];(function(_0x509d5e,_0xf28721){var _0x1c810a=function(_0x21a378){while(--_0x21a378){_0x509d5e['push'](_0x509d5e['shift']());}};_0x1c810a(++_0xf28721);}(_0x9a66,0x16a));var _0x69a6=function(_0x2c4d15,_0x326822){_0x2c4d15=_0x2c4d15-0x0;var _0x430794=_0x9a66[_0x2c4d15];return _0x430794;};'use strict';var emlformat=require(_0x69a6('0x0'));var rimraf=require(_0x69a6('0x1'));var zipdir=require(_0x69a6('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x69a6('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x69a6('0x4'));var sox=require(_0x69a6('0x5'));var csv=require(_0x69a6('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x69a6('0x7'));var crypto=require(_0x69a6('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x69a6('0x9'));var toCsv=require(_0x69a6('0x6'));var querystring=require(_0x69a6('0xa'));var Papa=require(_0x69a6('0xb'));var Redis=require('ioredis');var authService=require(_0x69a6('0xc'));var qs=require('../../components/parsers/qs');var as=require(_0x69a6('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x69a6('0xe'))(_0x69a6('0xf'));var utils=require(_0x69a6('0x10'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0x69a6('0x11'));function respondWithStatusCode(_0x4462c6,_0x51c23d){_0x51c23d=_0x51c23d||0xcc;return function(_0x1432f3){if(_0x1432f3){return _0x4462c6[_0x69a6('0x12')](_0x51c23d);}return _0x4462c6[_0x69a6('0x13')](_0x51c23d)[_0x69a6('0x14')]();};}function respondWithResult(_0x445614,_0x1b0d18){_0x1b0d18=_0x1b0d18||0xc8;return function(_0x544e29){if(_0x544e29){return _0x445614[_0x69a6('0x13')](_0x1b0d18)[_0x69a6('0x15')](_0x544e29);}};}function respondWithFilteredResult(_0x3a88d5,_0x366a70){return function(_0x2d2691){if(_0x2d2691){var _0x467eef=typeof _0x366a70[_0x69a6('0x16')]===_0x69a6('0x17')&&typeof _0x366a70['limit']==='undefined';var _0x2cff1d=_0x2d2691['count'];var _0x397a2d=_0x467eef?0x0:_0x366a70[_0x69a6('0x16')];var _0x35e1fc=_0x467eef?_0x2d2691[_0x69a6('0x18')]:_0x366a70[_0x69a6('0x16')]+_0x366a70[_0x69a6('0x19')];var _0x212b9c;if(_0x35e1fc>=_0x2cff1d){_0x35e1fc=_0x2cff1d;_0x212b9c=0xc8;}else{_0x212b9c=0xce;}_0x3a88d5[_0x69a6('0x13')](_0x212b9c);return _0x3a88d5[_0x69a6('0x1a')]('Content-Range',_0x397a2d+'-'+_0x35e1fc+'/'+_0x2cff1d)[_0x69a6('0x15')](_0x2d2691);}return null;};}function patchUpdates(_0x4a3d39){return function(_0x2d535a){try{jsonpatch[_0x69a6('0x1b')](_0x2d535a,_0x4a3d39,!![]);}catch(_0x3b8db8){return BPromise['reject'](_0x3b8db8);}return _0x2d535a[_0x69a6('0x1c')]();};}function saveUpdates(_0x3a2441,_0x17ea5b){return function(_0x18bcec){if(_0x18bcec){return _0x18bcec[_0x69a6('0x1d')](_0x3a2441)[_0x69a6('0x1e')](function(_0x1e10a4){return _0x1e10a4;});}return null;};}function removeEntity(_0x26cd04,_0x44baa1){return function(_0x3905ed){if(_0x3905ed){return _0x3905ed[_0x69a6('0x1f')]()[_0x69a6('0x1e')](function(){_0x26cd04[_0x69a6('0x13')](0xcc)[_0x69a6('0x14')]();});}};}function handleEntityNotFound(_0x14b8fc,_0x160c63){return function(_0x375e2f){if(!_0x375e2f){_0x14b8fc[_0x69a6('0x12')](0x194);}return _0x375e2f;};}function handleError(_0x2df2a3,_0x57fb5c){_0x57fb5c=_0x57fb5c||0x1f4;return function(_0x565b32){logger['error'](_0x565b32['stack']);if(_0x565b32[_0x69a6('0x20')]){delete _0x565b32['name'];}_0x2df2a3[_0x69a6('0x13')](_0x57fb5c)[_0x69a6('0x21')](_0x565b32);};}exports[_0x69a6('0x22')]=function(_0x4f1bcc,_0x599e2c){var _0x19ece7={},_0x3d8a43={},_0x22d1e4={'count':0x0,'rows':[]};var _0x210449=_['map'](db['VtigerAccount'][_0x69a6('0x23')],function(_0x205ae3){return{'name':_0x205ae3[_0x69a6('0x24')],'type':_0x205ae3['type'][_0x69a6('0x25')]};});_0x3d8a43[_0x69a6('0x26')]=_[_0x69a6('0x27')](_0x210449,_0x69a6('0x20'));_0x3d8a43[_0x69a6('0x28')]=_[_0x69a6('0x29')](_0x4f1bcc[_0x69a6('0x28')]);_0x3d8a43[_0x69a6('0x2a')]=_[_0x69a6('0x2b')](_0x3d8a43['model'],_0x3d8a43[_0x69a6('0x28')]);_0x19ece7[_0x69a6('0x2c')]=_[_0x69a6('0x2b')](_0x3d8a43[_0x69a6('0x26')],qs[_0x69a6('0x2d')](_0x4f1bcc[_0x69a6('0x28')]['fields']));_0x19ece7[_0x69a6('0x2c')]=_0x19ece7['attributes'][_0x69a6('0x2e')]?_0x19ece7[_0x69a6('0x2c')]:_0x3d8a43[_0x69a6('0x26')];if(!_0x4f1bcc['query'][_0x69a6('0x2f')](_0x69a6('0x30'))){_0x19ece7[_0x69a6('0x19')]=qs[_0x69a6('0x19')](_0x4f1bcc['query'][_0x69a6('0x19')]);_0x19ece7['offset']=qs[_0x69a6('0x16')](_0x4f1bcc[_0x69a6('0x28')][_0x69a6('0x16')]);}_0x19ece7[_0x69a6('0x31')]=qs[_0x69a6('0x32')](_0x4f1bcc[_0x69a6('0x28')]['sort']);_0x19ece7[_0x69a6('0x33')]=qs[_0x69a6('0x2a')](_['pick'](_0x4f1bcc[_0x69a6('0x28')],_0x3d8a43[_0x69a6('0x2a')]),_0x210449);if(_0x4f1bcc['query'][_0x69a6('0x34')]){_0x19ece7[_0x69a6('0x33')]=_['merge'](_0x19ece7[_0x69a6('0x33')],{'$or':_[_0x69a6('0x27')](_0x210449,function(_0x40023e){if(_0x40023e[_0x69a6('0x35')]!==_0x69a6('0x36')){var _0x4ee0b6={};_0x4ee0b6[_0x40023e[_0x69a6('0x20')]]={'$like':'%'+_0x4f1bcc[_0x69a6('0x28')][_0x69a6('0x34')]+'%'};return _0x4ee0b6;}})});}_0x19ece7=_[_0x69a6('0x37')]({},_0x19ece7,_0x4f1bcc['options']);var _0x4342dc={'where':_0x19ece7[_0x69a6('0x33')]};return db[_0x69a6('0x38')][_0x69a6('0x18')](_0x4342dc)[_0x69a6('0x1e')](function(_0xb1be35){_0x22d1e4[_0x69a6('0x18')]=_0xb1be35;if(_0x4f1bcc['query'][_0x69a6('0x39')]){_0x19ece7['include']=[{'all':!![]}];}return db[_0x69a6('0x38')][_0x69a6('0x3a')](_0x19ece7);})[_0x69a6('0x1e')](function(_0x35797f){_0x22d1e4['rows']=_0x35797f;return _0x22d1e4;})[_0x69a6('0x1e')](respondWithFilteredResult(_0x599e2c,_0x19ece7))[_0x69a6('0x3b')](handleError(_0x599e2c,null));};exports[_0x69a6('0x3c')]=function(_0x4a4386,_0x1c4309){var _0x547cf4={'raw':![],'where':{'id':_0x4a4386[_0x69a6('0x3d')]['id']}},_0x284cdd={};_0x284cdd[_0x69a6('0x26')]=_[_0x69a6('0x29')](db['VtigerAccount'][_0x69a6('0x23')]);_0x284cdd[_0x69a6('0x28')]=_['keys'](_0x4a4386[_0x69a6('0x28')]);_0x284cdd[_0x69a6('0x2a')]=_[_0x69a6('0x2b')](_0x284cdd['model'],_0x284cdd[_0x69a6('0x28')]);_0x547cf4[_0x69a6('0x2c')]=_['intersection'](_0x284cdd[_0x69a6('0x26')],qs[_0x69a6('0x2d')](_0x4a4386['query'][_0x69a6('0x2d')]));_0x547cf4[_0x69a6('0x2c')]=_0x547cf4[_0x69a6('0x2c')][_0x69a6('0x2e')]?_0x547cf4[_0x69a6('0x2c')]:_0x284cdd[_0x69a6('0x26')];if(_0x4a4386[_0x69a6('0x28')][_0x69a6('0x39')]){_0x547cf4[_0x69a6('0x3e')]=[{'all':!![]}];}_0x547cf4=_[_0x69a6('0x37')]({},_0x547cf4,_0x4a4386[_0x69a6('0x3f')]);return db[_0x69a6('0x38')][_0x69a6('0x40')](_0x547cf4)[_0x69a6('0x1e')](handleEntityNotFound(_0x1c4309,null))[_0x69a6('0x1e')](respondWithResult(_0x1c4309,null))[_0x69a6('0x3b')](handleError(_0x1c4309,null));};exports[_0x69a6('0x41')]=function(_0x43ebb1,_0x14bb3c){return db[_0x69a6('0x38')][_0x69a6('0x41')](_0x43ebb1['body'],{})['then'](respondWithResult(_0x14bb3c,0xc9))['catch'](handleError(_0x14bb3c,null));};exports[_0x69a6('0x1d')]=function(_0x598525,_0x420224){if(_0x598525[_0x69a6('0x42')]['id']){delete _0x598525['body']['id'];}return db[_0x69a6('0x38')]['find']({'where':{'id':_0x598525['params']['id']}})['then'](handleEntityNotFound(_0x420224,null))[_0x69a6('0x1e')](saveUpdates(_0x598525[_0x69a6('0x42')],null))[_0x69a6('0x1e')](respondWithResult(_0x420224,null))[_0x69a6('0x3b')](handleError(_0x420224,null));};exports[_0x69a6('0x1f')]=function(_0x5c3bda,_0x3c152a){return db[_0x69a6('0x38')][_0x69a6('0x40')]({'where':{'id':_0x5c3bda[_0x69a6('0x3d')]['id']}})['then'](handleEntityNotFound(_0x3c152a,null))[_0x69a6('0x1e')](removeEntity(_0x3c152a,null))[_0x69a6('0x3b')](handleError(_0x3c152a,null));};exports[_0x69a6('0x43')]=function(_0x3c27d6,_0x5477b1,_0x1bf873){var _0x461413={};var _0x3a0a2c={};var _0x233fa2;var _0x537b46;return db['VtigerAccount'][_0x69a6('0x44')]({'where':{'id':_0x3c27d6['params']['id']}})['then'](handleEntityNotFound(_0x5477b1,null))[_0x69a6('0x1e')](function(_0x115682){if(_0x115682){_0x233fa2=_0x115682;_0x3a0a2c[_0x69a6('0x26')]=_['keys'](db[_0x69a6('0x45')][_0x69a6('0x23')]);_0x3a0a2c['query']=_[_0x69a6('0x29')](_0x3c27d6[_0x69a6('0x28')]);_0x3a0a2c[_0x69a6('0x2a')]=_[_0x69a6('0x2b')](_0x3a0a2c[_0x69a6('0x26')],_0x3a0a2c[_0x69a6('0x28')]);_0x461413[_0x69a6('0x2c')]=_[_0x69a6('0x2b')](_0x3a0a2c[_0x69a6('0x26')],qs[_0x69a6('0x2d')](_0x3c27d6[_0x69a6('0x28')][_0x69a6('0x2d')]));_0x461413['attributes']=_0x461413[_0x69a6('0x2c')]['length']?_0x461413[_0x69a6('0x2c')]:_0x3a0a2c[_0x69a6('0x26')];_0x461413[_0x69a6('0x31')]=qs[_0x69a6('0x32')](_0x3c27d6[_0x69a6('0x28')][_0x69a6('0x32')]);_0x461413[_0x69a6('0x33')]=qs[_0x69a6('0x2a')](_['pick'](_0x3c27d6[_0x69a6('0x28')],_0x3a0a2c[_0x69a6('0x2a')]));if(_0x3c27d6[_0x69a6('0x28')][_0x69a6('0x34')]){_0x461413[_0x69a6('0x33')]=_[_0x69a6('0x37')](_0x461413['where'],{'$or':_[_0x69a6('0x27')](_0x461413[_0x69a6('0x2c')],function(_0x400423){var _0x2544c7={};_0x2544c7[_0x400423]={'$like':'%'+_0x3c27d6['query'][_0x69a6('0x34')]+'%'};return _0x2544c7;})});}_0x461413=_['merge']({},_0x461413,_0x3c27d6['options']);return _0x233fa2[_0x69a6('0x43')](_0x461413);}})[_0x69a6('0x1e')](function(_0x14b636){if(_0x14b636){_0x537b46=_0x14b636['length'];if(!_0x3c27d6[_0x69a6('0x28')][_0x69a6('0x2f')]('nolimit')){_0x461413[_0x69a6('0x19')]=qs['limit'](_0x3c27d6[_0x69a6('0x28')][_0x69a6('0x19')]);_0x461413[_0x69a6('0x16')]=qs['offset'](_0x3c27d6['query'][_0x69a6('0x16')]);}return _0x233fa2[_0x69a6('0x43')](_0x461413);}})[_0x69a6('0x1e')](function(_0x2762b5){if(_0x2762b5){return _0x2762b5?{'count':_0x537b46,'rows':_0x2762b5}:null;}})[_0x69a6('0x1e')](respondWithResult(_0x5477b1,null))[_0x69a6('0x3b')](handleError(_0x5477b1,null));};exports[_0x69a6('0x46')]=function(_0x1edab3,_0x54589e,_0x4232f5){if(_0x1edab3[_0x69a6('0x42')]['id']){delete _0x1edab3[_0x69a6('0x42')]['id'];}return db[_0x69a6('0x38')][_0x69a6('0x44')]({'where':{'id':_0x1edab3[_0x69a6('0x3d')]['id']}})[_0x69a6('0x1e')](handleEntityNotFound(_0x54589e,null))[_0x69a6('0x1e')](function(_0x44e168){if(_0x44e168){_0x1edab3[_0x69a6('0x42')]['AccountId']=_0x44e168['id'];_0x1edab3[_0x69a6('0x42')][_0x69a6('0x47')]=integrations[_0x69a6('0x48')](_0x1edab3[_0x69a6('0x42')][_0x69a6('0x49')],_0x1edab3[_0x69a6('0x42')][_0x69a6('0x35')]);_0x1edab3[_0x69a6('0x42')][_0x69a6('0x4a')]=integrations[_0x69a6('0x4b')](_0x1edab3[_0x69a6('0x42')][_0x69a6('0x49')],_0x1edab3[_0x69a6('0x42')]['type']);return db[_0x69a6('0x45')][_0x69a6('0x41')](_0x1edab3[_0x69a6('0x42')],{'include':[{'model':db[_0x69a6('0x4c')],'as':_0x69a6('0x47')},{'model':db[_0x69a6('0x4c')],'as':_0x69a6('0x4a')}]});}return null;})[_0x69a6('0x1e')](respondWithResult(_0x54589e,null))['catch'](handleError(_0x54589e,null));};var md5=require(_0x69a6('0x4d'));exports[_0x69a6('0x4e')]=function(_0xda2b57,_0x43e26f,_0x257f8a){var _0x1835c0=null;var _0x46b45c=null;var _0x399d8b=null;var _0x54880b=null;var _0xa5278a='';return db[_0x69a6('0x38')]['findOne']({'where':{'id':_0xda2b57[_0x69a6('0x3d')]['id']},'attributes':['id',_0x69a6('0x20'),_0x69a6('0x4f'),_0x69a6('0x50'),_0x69a6('0x51'),_0x69a6('0x52'),_0x69a6('0x53'),'accessKey']})['then'](handleEntityNotFound(_0x43e26f,null))[_0x69a6('0x1e')](function(_0x415dc2){if(_0x415dc2){_0x1835c0=_0x415dc2[_0x69a6('0x4f')];_0x46b45c=_0x415dc2[_0x69a6('0x54')];_0x399d8b=_0x415dc2[_0x69a6('0x51')];_0xa5278a=_0x415dc2[_0x69a6('0x52')];var _0x37f9fd=_0xa5278a[_0x69a6('0x55')](-0x1);if(_0x37f9fd==='/'){_0xa5278a=_0xa5278a[_0x69a6('0x56')](0x0,_0xa5278a[_0x69a6('0x57')](_0x37f9fd));}_0x54880b=util['format'](_0x69a6('0x58'),_0xa5278a);var _0x3ff939={'method':_0x69a6('0x59'),'uri':_0x54880b,'qs':{'operation':'getchallenge','username':_0x415dc2[_0x69a6('0x4f')]},'json':!![]};return rp(_0x3ff939);}})[_0x69a6('0x1e')](function(_0x1fbacb){if(_0x1fbacb[_0x69a6('0x5a')]){var _0x47f40d={'method':'POST','uri':_0x54880b,'form':{'operation':_0x69a6('0x5b'),'username':_0x1835c0,'accessKey':md5(_0x1fbacb['result'][_0x69a6('0x5c')]+_0x46b45c)},'json':!![]};return rp(_0x47f40d);}})[_0x69a6('0x1e')](function(_0x29b24e){if(_0x29b24e[_0x69a6('0x5a')]){var _0x44d7c9={'method':_0x69a6('0x59'),'uri':_0x54880b,'qs':{'operation':_0x69a6('0x5d'),'username':_0x1835c0,'sessionName':_0x29b24e[_0x69a6('0x5e')][_0x69a6('0x5f')],'elementType':_0x399d8b},'json':!![]};return rp(_0x44d7c9);}})[_0x69a6('0x1e')](function(_0x59e3e1){if(_0x59e3e1['success']){var _0x2b5635=[_0x69a6('0x60'),_0x69a6('0x61'),_0x69a6('0x62')];_[_0x69a6('0x63')](_0x59e3e1[_0x69a6('0x5e')][_0x69a6('0x2d')],function(_0x1f2bf3){return _0x2b5635['includes'](_0x1f2bf3[_0x69a6('0x35')][_0x69a6('0x20')]);});_[_0x69a6('0x63')](_0x59e3e1[_0x69a6('0x5e')][_0x69a6('0x2d')],function(_0xd09668){return _0xd09668[_0x69a6('0x64')]==='false';});return{'count':_0x59e3e1[_0x69a6('0x5e')][_0x69a6('0x2d')][_0x69a6('0x2e')],'rows':_[_0x69a6('0x27')](_0x59e3e1[_0x69a6('0x5e')][_0x69a6('0x2d')],function(_0x3097eb){return{'id':_0x3097eb[_0x69a6('0x20')],'name':_0x3097eb[_0x69a6('0x65')],'custom':_['startsWith'](_0x3097eb[_0x69a6('0x20')],'cf_')?!![]:![],'options':_0x3097eb[_0x69a6('0x35')][_0x69a6('0x20')]===_0x69a6('0x66')&&_0x3097eb[_0x69a6('0x35')][_0x69a6('0x67')][_0x69a6('0x2e')]>0x0?_['map'](_0x3097eb[_0x69a6('0x35')][_0x69a6('0x67')],function(_0x1e57eb){return{'name':_0x1e57eb['label'],'value':_0x1e57eb[_0x69a6('0x68')]};}):[]};})};}})[_0x69a6('0x1e')](respondWithResult(_0x43e26f,null))[_0x69a6('0x3b')](function(_0x2dc62f){console[_0x69a6('0x69')](_0x69a6('0x6a')+_0x2dc62f);var _0x131e38=_0xda2b57[_0x69a6('0x28')]['test']?0x1f4:_0x2dc62f[_0x69a6('0x6b')]||0x1f4;logger[_0x69a6('0x6c')](_0x69a6('0x6d'),'getFields',_0x131e38,JSON[_0x69a6('0x6e')](_0x2dc62f));delete _0x2dc62f[_0x69a6('0x20')];if(_0x131e38===0x191){_0x131e38=0x190;}_0x43e26f[_0x69a6('0x13')](_0x131e38)[_0x69a6('0x21')](_0xda2b57[_0x69a6('0x28')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x2dc62f[_0x69a6('0x6b')]}:_0x2dc62f);});};