ca1ae139fbe2e06043999d7ff2fa35053e18a5d7
[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 _0x80c8=['md5','getFields','username','remoteUri','serverUrl','accessKey','moduleName','slice','lastIndexOf','format','%s/webservice.php','getchallenge','success','login','result','token','GET','describe','sessionName','autogenerated','reference','remove','includes','editable','label','startsWith','cf_','picklist','picklistValues','vTiger\x20error:\x20','test','stringify','Wrong\x20credentials','statusCode','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','fs-extra','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','end','error','name','send','index','map','VtigerAccount','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','VIRTUAL','options','include','findAll','catch','show','params','keys','includeAll','find','create','body','getConfigurations','VtigerConfiguration','order','merge','nolimit','addConfiguration','AccountId','Subjects','getSubjects','getDescriptions','channel','VtigerField','Descriptions'];(function(_0x428eb2,_0x20f989){var _0x20fc49=function(_0x6b45ea){while(--_0x6b45ea){_0x428eb2['push'](_0x428eb2['shift']());}};_0x20fc49(++_0x20f989);}(_0x80c8,0x9a));var _0x880c=function(_0x3dfb99,_0x2c5bc8){_0x3dfb99=_0x3dfb99-0x0;var _0xadeebe=_0x80c8[_0x3dfb99];return _0xadeebe;};'use strict';var emlformat=require(_0x880c('0x0'));var rimraf=require(_0x880c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x880c('0x2'));var rp=require(_0x880c('0x3'));var moment=require(_0x880c('0x4'));var BPromise=require(_0x880c('0x5'));var Mustache=require(_0x880c('0x6'));var util=require(_0x880c('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x880c('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x880c('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x880c('0xa'));var jsforce=require(_0x880c('0xb'));var deskjs=require(_0x880c('0xc'));var toCsv=require(_0x880c('0x8'));var querystring=require(_0x880c('0xd'));var Papa=require('papaparse');var Redis=require(_0x880c('0xe'));var authService=require(_0x880c('0xf'));var qs=require(_0x880c('0x10'));var as=require(_0x880c('0x11'));var hardwareService=require(_0x880c('0x12'));var logger=require(_0x880c('0x13'))(_0x880c('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x880c('0x15'))['db'];var integrations=require(_0x880c('0x16'));function respondWithStatusCode(_0x14a5a1,_0x4398d2){_0x4398d2=_0x4398d2||0xcc;return function(_0x17d79c){if(_0x17d79c){return _0x14a5a1[_0x880c('0x17')](_0x4398d2);}return _0x14a5a1[_0x880c('0x18')](_0x4398d2)['end']();};}function respondWithResult(_0x1341bc,_0x27be74){_0x27be74=_0x27be74||0xc8;return function(_0x2bc330){if(_0x2bc330){return _0x1341bc['status'](_0x27be74)[_0x880c('0x19')](_0x2bc330);}};}function respondWithFilteredResult(_0x1f87f9,_0x34bb04){return function(_0x405cb8){if(_0x405cb8){var _0x3be1eb=typeof _0x34bb04[_0x880c('0x1a')]===_0x880c('0x1b')&&typeof _0x34bb04[_0x880c('0x1c')]==='undefined';var _0x31a9b3=_0x405cb8['count'];var _0x2c297e=_0x3be1eb?0x0:_0x34bb04[_0x880c('0x1a')];var _0x49ce1d=_0x3be1eb?_0x405cb8[_0x880c('0x1d')]:_0x34bb04[_0x880c('0x1a')]+_0x34bb04[_0x880c('0x1c')];var _0xe85759;if(_0x49ce1d>=_0x31a9b3){_0x49ce1d=_0x31a9b3;_0xe85759=0xc8;}else{_0xe85759=0xce;}_0x1f87f9[_0x880c('0x18')](_0xe85759);return _0x1f87f9[_0x880c('0x1e')](_0x880c('0x1f'),_0x2c297e+'-'+_0x49ce1d+'/'+_0x31a9b3)[_0x880c('0x19')](_0x405cb8);}return null;};}function patchUpdates(_0x3af146){return function(_0x28ce0f){try{jsonpatch[_0x880c('0x20')](_0x28ce0f,_0x3af146,!![]);}catch(_0x79beab){return BPromise[_0x880c('0x21')](_0x79beab);}return _0x28ce0f[_0x880c('0x22')]();};}function saveUpdates(_0x3fa0f8,_0x236f08){return function(_0x11d1ef){if(_0x11d1ef){return _0x11d1ef[_0x880c('0x23')](_0x3fa0f8)[_0x880c('0x24')](function(_0x1ff5a5){return _0x1ff5a5;});}return null;};}function removeEntity(_0x2c616d,_0x5381cf){return function(_0x2ecea1){if(_0x2ecea1){return _0x2ecea1[_0x880c('0x25')]()[_0x880c('0x24')](function(){_0x2c616d[_0x880c('0x18')](0xcc)[_0x880c('0x26')]();});}};}function handleEntityNotFound(_0xc67a66,_0x437539){return function(_0x235c89){if(!_0x235c89){_0xc67a66[_0x880c('0x17')](0x194);}return _0x235c89;};}function handleError(_0x5ca8c6,_0x493cc5){_0x493cc5=_0x493cc5||0x1f4;return function(_0x73a466){logger[_0x880c('0x27')](_0x73a466['stack']);if(_0x73a466['name']){delete _0x73a466[_0x880c('0x28')];}_0x5ca8c6[_0x880c('0x18')](_0x493cc5)[_0x880c('0x29')](_0x73a466);};}exports[_0x880c('0x2a')]=function(_0x3bb050,_0x54d3a0){var _0x5717b9={},_0x51b279={},_0x1d8893={'count':0x0,'rows':[]};var _0x47f1b0=_[_0x880c('0x2b')](db[_0x880c('0x2c')][_0x880c('0x2d')],function(_0x49783d){return{'name':_0x49783d[_0x880c('0x2e')],'type':_0x49783d[_0x880c('0x2f')][_0x880c('0x30')]};});_0x51b279['model']=_[_0x880c('0x2b')](_0x47f1b0,'name');_0x51b279[_0x880c('0x31')]=_['keys'](_0x3bb050[_0x880c('0x31')]);_0x51b279[_0x880c('0x32')]=_[_0x880c('0x33')](_0x51b279[_0x880c('0x34')],_0x51b279[_0x880c('0x31')]);_0x5717b9[_0x880c('0x35')]=_[_0x880c('0x33')](_0x51b279[_0x880c('0x34')],qs[_0x880c('0x36')](_0x3bb050[_0x880c('0x31')]['fields']));_0x5717b9[_0x880c('0x35')]=_0x5717b9[_0x880c('0x35')][_0x880c('0x37')]?_0x5717b9[_0x880c('0x35')]:_0x51b279[_0x880c('0x34')];if(!_0x3bb050[_0x880c('0x31')][_0x880c('0x38')]('nolimit')){_0x5717b9[_0x880c('0x1c')]=qs[_0x880c('0x1c')](_0x3bb050[_0x880c('0x31')][_0x880c('0x1c')]);_0x5717b9[_0x880c('0x1a')]=qs['offset'](_0x3bb050[_0x880c('0x31')][_0x880c('0x1a')]);}_0x5717b9['order']=qs[_0x880c('0x39')](_0x3bb050['query'][_0x880c('0x39')]);_0x5717b9[_0x880c('0x3a')]=qs[_0x880c('0x32')](_[_0x880c('0x3b')](_0x3bb050[_0x880c('0x31')],_0x51b279['filters']),_0x47f1b0);if(_0x3bb050['query'][_0x880c('0x3c')]){_0x5717b9[_0x880c('0x3a')]=_['merge'](_0x5717b9[_0x880c('0x3a')],{'$or':_['map'](_0x47f1b0,function(_0x52b405){if(_0x52b405[_0x880c('0x2f')]!==_0x880c('0x3d')){var _0x49340e={};_0x49340e[_0x52b405[_0x880c('0x28')]]={'$like':'%'+_0x3bb050[_0x880c('0x31')][_0x880c('0x3c')]+'%'};return _0x49340e;}})});}_0x5717b9=_['merge']({},_0x5717b9,_0x3bb050[_0x880c('0x3e')]);var _0x422bce={'where':_0x5717b9[_0x880c('0x3a')]};return db[_0x880c('0x2c')]['count'](_0x422bce)[_0x880c('0x24')](function(_0x362352){_0x1d8893[_0x880c('0x1d')]=_0x362352;if(_0x3bb050[_0x880c('0x31')]['includeAll']){_0x5717b9[_0x880c('0x3f')]=[{'all':!![]}];}return db[_0x880c('0x2c')][_0x880c('0x40')](_0x5717b9);})[_0x880c('0x24')](function(_0x3a8460){_0x1d8893['rows']=_0x3a8460;return _0x1d8893;})[_0x880c('0x24')](respondWithFilteredResult(_0x54d3a0,_0x5717b9))[_0x880c('0x41')](handleError(_0x54d3a0,null));};exports[_0x880c('0x42')]=function(_0x4dba8b,_0x183b38){var _0x3df7fd={'raw':![],'where':{'id':_0x4dba8b[_0x880c('0x43')]['id']}},_0x2b4283={};_0x2b4283['model']=_[_0x880c('0x44')](db['VtigerAccount']['rawAttributes']);_0x2b4283[_0x880c('0x31')]=_[_0x880c('0x44')](_0x4dba8b[_0x880c('0x31')]);_0x2b4283['filters']=_['intersection'](_0x2b4283['model'],_0x2b4283[_0x880c('0x31')]);_0x3df7fd[_0x880c('0x35')]=_[_0x880c('0x33')](_0x2b4283[_0x880c('0x34')],qs[_0x880c('0x36')](_0x4dba8b[_0x880c('0x31')][_0x880c('0x36')]));_0x3df7fd[_0x880c('0x35')]=_0x3df7fd[_0x880c('0x35')][_0x880c('0x37')]?_0x3df7fd[_0x880c('0x35')]:_0x2b4283[_0x880c('0x34')];if(_0x4dba8b['query'][_0x880c('0x45')]){_0x3df7fd[_0x880c('0x3f')]=[{'all':!![]}];}_0x3df7fd=_['merge']({},_0x3df7fd,_0x4dba8b['options']);return db[_0x880c('0x2c')][_0x880c('0x46')](_0x3df7fd)['then'](handleEntityNotFound(_0x183b38,null))[_0x880c('0x24')](respondWithResult(_0x183b38,null))[_0x880c('0x41')](handleError(_0x183b38,null));};exports[_0x880c('0x47')]=function(_0x25024d,_0x1d0647){return db[_0x880c('0x2c')][_0x880c('0x47')](_0x25024d[_0x880c('0x48')],{})[_0x880c('0x24')](respondWithResult(_0x1d0647,0xc9))[_0x880c('0x41')](handleError(_0x1d0647,null));};exports[_0x880c('0x23')]=function(_0x5916c7,_0x33c92b){if(_0x5916c7['body']['id']){delete _0x5916c7[_0x880c('0x48')]['id'];}return db[_0x880c('0x2c')]['find']({'where':{'id':_0x5916c7['params']['id']}})['then'](handleEntityNotFound(_0x33c92b,null))[_0x880c('0x24')](saveUpdates(_0x5916c7[_0x880c('0x48')],null))[_0x880c('0x24')](respondWithResult(_0x33c92b,null))[_0x880c('0x41')](handleError(_0x33c92b,null));};exports[_0x880c('0x25')]=function(_0xabc6e2,_0x4cb7a8){return db[_0x880c('0x2c')][_0x880c('0x46')]({'where':{'id':_0xabc6e2[_0x880c('0x43')]['id']}})[_0x880c('0x24')](handleEntityNotFound(_0x4cb7a8,null))[_0x880c('0x24')](removeEntity(_0x4cb7a8,null))['catch'](handleError(_0x4cb7a8,null));};exports[_0x880c('0x49')]=function(_0x1ebd6d,_0x6640e,_0xd4bdb8){var _0x3d1a1c={};var _0x47a865={};var _0x2a2b98;var _0x1e4ea0;return db[_0x880c('0x2c')]['findOne']({'where':{'id':_0x1ebd6d[_0x880c('0x43')]['id']}})[_0x880c('0x24')](handleEntityNotFound(_0x6640e,null))[_0x880c('0x24')](function(_0x3c2453){if(_0x3c2453){_0x2a2b98=_0x3c2453;_0x47a865[_0x880c('0x34')]=_[_0x880c('0x44')](db[_0x880c('0x4a')][_0x880c('0x2d')]);_0x47a865[_0x880c('0x31')]=_[_0x880c('0x44')](_0x1ebd6d[_0x880c('0x31')]);_0x47a865[_0x880c('0x32')]=_[_0x880c('0x33')](_0x47a865[_0x880c('0x34')],_0x47a865[_0x880c('0x31')]);_0x3d1a1c['attributes']=_[_0x880c('0x33')](_0x47a865[_0x880c('0x34')],qs[_0x880c('0x36')](_0x1ebd6d[_0x880c('0x31')][_0x880c('0x36')]));_0x3d1a1c['attributes']=_0x3d1a1c[_0x880c('0x35')][_0x880c('0x37')]?_0x3d1a1c[_0x880c('0x35')]:_0x47a865[_0x880c('0x34')];_0x3d1a1c[_0x880c('0x4b')]=qs['sort'](_0x1ebd6d[_0x880c('0x31')][_0x880c('0x39')]);_0x3d1a1c[_0x880c('0x3a')]=qs[_0x880c('0x32')](_[_0x880c('0x3b')](_0x1ebd6d[_0x880c('0x31')],_0x47a865[_0x880c('0x32')]));if(_0x1ebd6d[_0x880c('0x31')][_0x880c('0x3c')]){_0x3d1a1c['where']=_[_0x880c('0x4c')](_0x3d1a1c[_0x880c('0x3a')],{'$or':_[_0x880c('0x2b')](_0x3d1a1c['attributes'],function(_0x431250){var _0x245e81={};_0x245e81[_0x431250]={'$like':'%'+_0x1ebd6d[_0x880c('0x31')][_0x880c('0x3c')]+'%'};return _0x245e81;})});}_0x3d1a1c=_[_0x880c('0x4c')]({},_0x3d1a1c,_0x1ebd6d[_0x880c('0x3e')]);return _0x2a2b98['getConfigurations'](_0x3d1a1c);}})['then'](function(_0x50f642){if(_0x50f642){_0x1e4ea0=_0x50f642[_0x880c('0x37')];if(!_0x1ebd6d[_0x880c('0x31')][_0x880c('0x38')](_0x880c('0x4d'))){_0x3d1a1c[_0x880c('0x1c')]=qs[_0x880c('0x1c')](_0x1ebd6d[_0x880c('0x31')][_0x880c('0x1c')]);_0x3d1a1c[_0x880c('0x1a')]=qs[_0x880c('0x1a')](_0x1ebd6d[_0x880c('0x31')][_0x880c('0x1a')]);}return _0x2a2b98['getConfigurations'](_0x3d1a1c);}})['then'](function(_0x1b9349){if(_0x1b9349){return _0x1b9349?{'count':_0x1e4ea0,'rows':_0x1b9349}:null;}})[_0x880c('0x24')](respondWithResult(_0x6640e,null))[_0x880c('0x41')](handleError(_0x6640e,null));};exports[_0x880c('0x4e')]=function(_0x1405d1,_0x4dae23,_0x2b4ce0){if(_0x1405d1[_0x880c('0x48')]['id']){delete _0x1405d1[_0x880c('0x48')]['id'];}return db[_0x880c('0x2c')]['findOne']({'where':{'id':_0x1405d1[_0x880c('0x43')]['id']}})[_0x880c('0x24')](handleEntityNotFound(_0x4dae23,null))[_0x880c('0x24')](function(_0x224a3f){if(_0x224a3f){_0x1405d1[_0x880c('0x48')][_0x880c('0x4f')]=_0x224a3f['id'];_0x1405d1[_0x880c('0x48')][_0x880c('0x50')]=integrations[_0x880c('0x51')](_0x1405d1[_0x880c('0x48')]['channel'],_0x1405d1[_0x880c('0x48')]['type']);_0x1405d1['body']['Descriptions']=integrations[_0x880c('0x52')](_0x1405d1[_0x880c('0x48')][_0x880c('0x53')],_0x1405d1['body'][_0x880c('0x2f')]);return db[_0x880c('0x4a')][_0x880c('0x47')](_0x1405d1[_0x880c('0x48')],{'include':[{'model':db[_0x880c('0x54')],'as':_0x880c('0x50')},{'model':db[_0x880c('0x54')],'as':_0x880c('0x55')}]});}return null;})[_0x880c('0x24')](respondWithResult(_0x4dae23,null))['catch'](handleError(_0x4dae23,null));};var md5=require(_0x880c('0x56'));exports[_0x880c('0x57')]=function(_0x5ebeaa,_0x220442,_0xbe71e){var _0x1b7ab4=null;var _0x2318a1=null;var _0x22da2e=null;var _0x17efd1=null;var _0x16172d='';return db[_0x880c('0x2c')]['findOne']({'where':{'id':_0x5ebeaa[_0x880c('0x43')]['id']},'attributes':['id',_0x880c('0x28'),_0x880c('0x58'),'description','moduleName',_0x880c('0x59'),_0x880c('0x5a'),_0x880c('0x5b')]})['then'](handleEntityNotFound(_0x220442,null))[_0x880c('0x24')](function(_0x312e9f){if(_0x312e9f){_0x1b7ab4=_0x312e9f[_0x880c('0x58')];_0x2318a1=_0x312e9f['accessKey'];_0x22da2e=_0x312e9f[_0x880c('0x5c')];_0x16172d=_0x312e9f[_0x880c('0x59')];var _0x452fb2=_0x16172d[_0x880c('0x5d')](-0x1);if(_0x452fb2==='/'){_0x16172d=_0x16172d['substring'](0x0,_0x16172d[_0x880c('0x5e')](_0x452fb2));}_0x17efd1=util[_0x880c('0x5f')](_0x880c('0x60'),_0x16172d);var _0x124f3f={'method':'GET','uri':_0x17efd1,'qs':{'operation':_0x880c('0x61'),'username':_0x312e9f[_0x880c('0x58')]},'json':!![]};return rp(_0x124f3f);}})[_0x880c('0x24')](function(_0x324548){if(_0x324548[_0x880c('0x62')]){var _0x2fe4c5={'method':'POST','uri':_0x17efd1,'form':{'operation':_0x880c('0x63'),'username':_0x1b7ab4,'accessKey':md5(_0x324548[_0x880c('0x64')][_0x880c('0x65')]+_0x2318a1)},'json':!![]};return rp(_0x2fe4c5);}})[_0x880c('0x24')](function(_0x364152){if(_0x364152[_0x880c('0x62')]){var _0x41a7c3={'method':_0x880c('0x66'),'uri':_0x17efd1,'qs':{'operation':_0x880c('0x67'),'username':_0x1b7ab4,'sessionName':_0x364152[_0x880c('0x64')][_0x880c('0x68')],'elementType':_0x22da2e},'json':!![]};return rp(_0x41a7c3);}})[_0x880c('0x24')](function(_0x50254f){if(_0x50254f['success']){var _0xaa07ed=[_0x880c('0x69'),_0x880c('0x6a'),'owner'];_[_0x880c('0x6b')](_0x50254f[_0x880c('0x64')][_0x880c('0x36')],function(_0x1a7c5a){return _0xaa07ed[_0x880c('0x6c')](_0x1a7c5a[_0x880c('0x2f')][_0x880c('0x28')]);});_[_0x880c('0x6b')](_0x50254f['result']['fields'],function(_0x31be5e){return _0x31be5e[_0x880c('0x6d')]==='false';});return{'count':_0x50254f[_0x880c('0x64')]['fields'][_0x880c('0x37')],'rows':_[_0x880c('0x2b')](_0x50254f[_0x880c('0x64')][_0x880c('0x36')],function(_0x590c2e){return{'id':_0x590c2e[_0x880c('0x28')],'name':_0x590c2e[_0x880c('0x6e')],'custom':_[_0x880c('0x6f')](_0x590c2e['name'],_0x880c('0x70'))?!![]:![],'options':_0x590c2e['type'][_0x880c('0x28')]===_0x880c('0x71')&&_0x590c2e[_0x880c('0x2f')][_0x880c('0x72')]['length']>0x0?_['map'](_0x590c2e[_0x880c('0x2f')][_0x880c('0x72')],function(_0x136883){return{'name':_0x136883[_0x880c('0x6e')],'value':_0x136883['value']};}):[]};})};}})[_0x880c('0x24')](respondWithResult(_0x220442,null))[_0x880c('0x41')](function(_0x38053b){console['log'](_0x880c('0x73')+_0x38053b);var _0x37b52c=_0x5ebeaa['query'][_0x880c('0x74')]?0x1f4:_0x38053b['statusCode']||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x880c('0x57'),_0x37b52c,JSON[_0x880c('0x75')](_0x38053b));delete _0x38053b[_0x880c('0x28')];if(_0x37b52c===0x191){_0x37b52c=0x190;}_0x220442[_0x880c('0x18')](_0x37b52c)['send'](_0x5ebeaa['query'][_0x880c('0x74')]?{'message':_0x880c('0x76'),'statusCode':_0x38053b[_0x880c('0x77')]}:_0x38053b);});};