Built motion from commit 21186556.|2.6.19
[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 _0x799d=['pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','keys','fields','options','find','create','body','destroy','params','getConfigurations','nolimit','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','VtigerConfiguration','VtigerField','md5','username','description','remoteUri','serverUrl','moduleName','slice','format','%s/webservice.php','GET','success','POST','login','result','token','describe','autogenerated','reference','owner','remove','includes','editable','false','label','startsWith','cf_','picklist','picklistValues','value','log','vTiger\x20error:\x20','test','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','send','statusCode','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','then','error','name','index','map','VtigerAccount','rawAttributes','type','key','model','query','intersection','attributes','length','hasOwnProperty','order','sort','where','filters'];(function(_0xae7c2f,_0xf31e04){var _0x5d7001=function(_0x4eeadb){while(--_0x4eeadb){_0xae7c2f['push'](_0xae7c2f['shift']());}};_0x5d7001(++_0xf31e04);}(_0x799d,0x13d));var _0xd799=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x799d[_0x122ef9];return _0x42fba0;};'use strict';var emlformat=require(_0xd799('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd799('0x1'));var jsonpatch=require(_0xd799('0x2'));var rp=require('request-promise');var moment=require(_0xd799('0x3'));var BPromise=require(_0xd799('0x4'));var Mustache=require(_0xd799('0x5'));var util=require(_0xd799('0x6'));var path=require(_0xd799('0x7'));var sox=require(_0xd799('0x8'));var csv=require(_0xd799('0x9'));var ejs=require(_0xd799('0xa'));var fs=require('fs');var fs_extra=require(_0xd799('0xb'));var _=require('lodash');var squel=require(_0xd799('0xc'));var crypto=require(_0xd799('0xd'));var jsforce=require(_0xd799('0xe'));var deskjs=require(_0xd799('0xf'));var toCsv=require(_0xd799('0x9'));var querystring=require(_0xd799('0x10'));var Papa=require('papaparse');var Redis=require(_0xd799('0x11'));var authService=require(_0xd799('0x12'));var qs=require(_0xd799('0x13'));var as=require(_0xd799('0x14'));var hardwareService=require(_0xd799('0x15'));var logger=require(_0xd799('0x16'))(_0xd799('0x17'));var utils=require(_0xd799('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xd799('0x19'));var db=require(_0xd799('0x1a'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x43dc2f,_0x270b8f){_0x270b8f=_0x270b8f||0xcc;return function(_0x1c3c47){if(_0x1c3c47){return _0x43dc2f[_0xd799('0x1b')](_0x270b8f);}return _0x43dc2f[_0xd799('0x1c')](_0x270b8f)['end']();};}function respondWithResult(_0x20461f,_0x16e244){_0x16e244=_0x16e244||0xc8;return function(_0x52199b){if(_0x52199b){return _0x20461f[_0xd799('0x1c')](_0x16e244)[_0xd799('0x1d')](_0x52199b);}};}function respondWithFilteredResult(_0x5e170e,_0x3adc69){return function(_0x499141){if(_0x499141){var _0x2eaf33=typeof _0x3adc69['offset']===_0xd799('0x1e')&&typeof _0x3adc69[_0xd799('0x1f')]===_0xd799('0x1e');var _0x257750=_0x499141[_0xd799('0x20')];var _0x4fcf75=_0x2eaf33?0x0:_0x3adc69[_0xd799('0x21')];var _0x3ab9be=_0x2eaf33?_0x499141[_0xd799('0x20')]:_0x3adc69['offset']+_0x3adc69['limit'];var _0x50e25c;if(_0x3ab9be>=_0x257750){_0x3ab9be=_0x257750;_0x50e25c=0xc8;}else{_0x50e25c=0xce;}_0x5e170e['status'](_0x50e25c);return _0x5e170e[_0xd799('0x22')](_0xd799('0x23'),_0x4fcf75+'-'+_0x3ab9be+'/'+_0x257750)[_0xd799('0x1d')](_0x499141);}return null;};}function patchUpdates(_0x450e8f){return function(_0x2803ed){try{jsonpatch[_0xd799('0x24')](_0x2803ed,_0x450e8f,!![]);}catch(_0x20323d){return BPromise[_0xd799('0x25')](_0x20323d);}return _0x2803ed['save']();};}function saveUpdates(_0x3a9bae,_0x2688f0){return function(_0x23d399){if(_0x23d399){return _0x23d399[_0xd799('0x26')](_0x3a9bae)[_0xd799('0x27')](function(_0x301b49){return _0x301b49;});}return null;};}function removeEntity(_0x2e1e76,_0x4b5c91){return function(_0x2545a3){if(_0x2545a3){return _0x2545a3['destroy']()[_0xd799('0x27')](function(){_0x2e1e76[_0xd799('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x53c6d6,_0x5e9241){return function(_0x100a00){if(!_0x100a00){_0x53c6d6[_0xd799('0x1b')](0x194);}return _0x100a00;};}function handleError(_0x2ea590,_0x3bfa3c){_0x3bfa3c=_0x3bfa3c||0x1f4;return function(_0x33b4cb){logger[_0xd799('0x28')](_0x33b4cb['stack']);if(_0x33b4cb['name']){delete _0x33b4cb[_0xd799('0x29')];}_0x2ea590['status'](_0x3bfa3c)['send'](_0x33b4cb);};}exports[_0xd799('0x2a')]=function(_0x300214,_0x1f6399){var _0x1f63aa={},_0x2ef803={},_0x19f714={'count':0x0,'rows':[]};var _0x512a1c=_[_0xd799('0x2b')](db[_0xd799('0x2c')][_0xd799('0x2d')],function(_0x382f40){return{'name':_0x382f40['fieldName'],'type':_0x382f40[_0xd799('0x2e')][_0xd799('0x2f')]};});_0x2ef803[_0xd799('0x30')]=_[_0xd799('0x2b')](_0x512a1c,'name');_0x2ef803[_0xd799('0x31')]=_['keys'](_0x300214[_0xd799('0x31')]);_0x2ef803['filters']=_[_0xd799('0x32')](_0x2ef803[_0xd799('0x30')],_0x2ef803[_0xd799('0x31')]);_0x1f63aa['attributes']=_[_0xd799('0x32')](_0x2ef803[_0xd799('0x30')],qs['fields'](_0x300214[_0xd799('0x31')]['fields']));_0x1f63aa[_0xd799('0x33')]=_0x1f63aa[_0xd799('0x33')][_0xd799('0x34')]?_0x1f63aa[_0xd799('0x33')]:_0x2ef803[_0xd799('0x30')];if(!_0x300214['query'][_0xd799('0x35')]('nolimit')){_0x1f63aa[_0xd799('0x1f')]=qs[_0xd799('0x1f')](_0x300214[_0xd799('0x31')][_0xd799('0x1f')]);_0x1f63aa[_0xd799('0x21')]=qs[_0xd799('0x21')](_0x300214[_0xd799('0x31')][_0xd799('0x21')]);}_0x1f63aa[_0xd799('0x36')]=qs['sort'](_0x300214[_0xd799('0x31')][_0xd799('0x37')]);_0x1f63aa[_0xd799('0x38')]=qs[_0xd799('0x39')](_[_0xd799('0x3a')](_0x300214['query'],_0x2ef803[_0xd799('0x39')]),_0x512a1c);if(_0x300214[_0xd799('0x31')][_0xd799('0x3b')]){_0x1f63aa['where']=_[_0xd799('0x3c')](_0x1f63aa[_0xd799('0x38')],{'$or':_[_0xd799('0x2b')](_0x512a1c,function(_0x11d9d7){if(_0x11d9d7[_0xd799('0x2e')]!==_0xd799('0x3d')){var _0x169537={};_0x169537[_0x11d9d7['name']]={'$like':'%'+_0x300214[_0xd799('0x31')][_0xd799('0x3b')]+'%'};return _0x169537;}})});}_0x1f63aa=_[_0xd799('0x3c')]({},_0x1f63aa,_0x300214['options']);var _0x52e1f7={'where':_0x1f63aa[_0xd799('0x38')]};return db[_0xd799('0x2c')][_0xd799('0x20')](_0x52e1f7)[_0xd799('0x27')](function(_0x13e81e){_0x19f714[_0xd799('0x20')]=_0x13e81e;if(_0x300214['query'][_0xd799('0x3e')]){_0x1f63aa[_0xd799('0x3f')]=[{'all':!![]}];}return db[_0xd799('0x2c')][_0xd799('0x40')](_0x1f63aa);})[_0xd799('0x27')](function(_0xa44741){_0x19f714[_0xd799('0x41')]=_0xa44741;return _0x19f714;})[_0xd799('0x27')](respondWithFilteredResult(_0x1f6399,_0x1f63aa))[_0xd799('0x42')](handleError(_0x1f6399,null));};exports[_0xd799('0x43')]=function(_0x334fa0,_0x1a13ed){var _0x3d204d={'raw':![],'where':{'id':_0x334fa0['params']['id']}},_0x2f18ca={};_0x2f18ca[_0xd799('0x30')]=_[_0xd799('0x44')](db[_0xd799('0x2c')][_0xd799('0x2d')]);_0x2f18ca[_0xd799('0x31')]=_[_0xd799('0x44')](_0x334fa0[_0xd799('0x31')]);_0x2f18ca[_0xd799('0x39')]=_[_0xd799('0x32')](_0x2f18ca[_0xd799('0x30')],_0x2f18ca['query']);_0x3d204d[_0xd799('0x33')]=_[_0xd799('0x32')](_0x2f18ca[_0xd799('0x30')],qs[_0xd799('0x45')](_0x334fa0[_0xd799('0x31')][_0xd799('0x45')]));_0x3d204d[_0xd799('0x33')]=_0x3d204d[_0xd799('0x33')][_0xd799('0x34')]?_0x3d204d[_0xd799('0x33')]:_0x2f18ca[_0xd799('0x30')];if(_0x334fa0['query'][_0xd799('0x3e')]){_0x3d204d['include']=[{'all':!![]}];}_0x3d204d=_[_0xd799('0x3c')]({},_0x3d204d,_0x334fa0[_0xd799('0x46')]);return db[_0xd799('0x2c')][_0xd799('0x47')](_0x3d204d)[_0xd799('0x27')](handleEntityNotFound(_0x1a13ed,null))[_0xd799('0x27')](respondWithResult(_0x1a13ed,null))[_0xd799('0x42')](handleError(_0x1a13ed,null));};exports[_0xd799('0x48')]=function(_0x25befb,_0x39fcac){return db[_0xd799('0x2c')][_0xd799('0x48')](_0x25befb[_0xd799('0x49')],{})[_0xd799('0x27')](respondWithResult(_0x39fcac,0xc9))[_0xd799('0x42')](handleError(_0x39fcac,null));};exports['update']=function(_0x5ad710,_0x413dcc){if(_0x5ad710[_0xd799('0x49')]['id']){delete _0x5ad710['body']['id'];}return db[_0xd799('0x2c')][_0xd799('0x47')]({'where':{'id':_0x5ad710['params']['id']}})['then'](handleEntityNotFound(_0x413dcc,null))[_0xd799('0x27')](saveUpdates(_0x5ad710['body'],null))[_0xd799('0x27')](respondWithResult(_0x413dcc,null))[_0xd799('0x42')](handleError(_0x413dcc,null));};exports[_0xd799('0x4a')]=function(_0x523e16,_0xf199a){return db[_0xd799('0x2c')]['find']({'where':{'id':_0x523e16[_0xd799('0x4b')]['id']}})[_0xd799('0x27')](handleEntityNotFound(_0xf199a,null))[_0xd799('0x27')](removeEntity(_0xf199a,null))[_0xd799('0x42')](handleError(_0xf199a,null));};exports[_0xd799('0x4c')]=function(_0x4c36fd,_0x3d1e8f,_0x1ee350){var _0x471499={};var _0x7bddce={};var _0x2fb824;var _0x180f56;return db[_0xd799('0x2c')]['findOne']({'where':{'id':_0x4c36fd[_0xd799('0x4b')]['id']}})[_0xd799('0x27')](handleEntityNotFound(_0x3d1e8f,null))[_0xd799('0x27')](function(_0x204c7c){if(_0x204c7c){_0x2fb824=_0x204c7c;_0x7bddce[_0xd799('0x30')]=_[_0xd799('0x44')](db['VtigerConfiguration'][_0xd799('0x2d')]);_0x7bddce[_0xd799('0x31')]=_[_0xd799('0x44')](_0x4c36fd[_0xd799('0x31')]);_0x7bddce[_0xd799('0x39')]=_['intersection'](_0x7bddce[_0xd799('0x30')],_0x7bddce[_0xd799('0x31')]);_0x471499[_0xd799('0x33')]=_[_0xd799('0x32')](_0x7bddce['model'],qs[_0xd799('0x45')](_0x4c36fd[_0xd799('0x31')][_0xd799('0x45')]));_0x471499[_0xd799('0x33')]=_0x471499['attributes'][_0xd799('0x34')]?_0x471499[_0xd799('0x33')]:_0x7bddce[_0xd799('0x30')];_0x471499['order']=qs[_0xd799('0x37')](_0x4c36fd[_0xd799('0x31')]['sort']);_0x471499[_0xd799('0x38')]=qs[_0xd799('0x39')](_[_0xd799('0x3a')](_0x4c36fd[_0xd799('0x31')],_0x7bddce[_0xd799('0x39')]));if(_0x4c36fd[_0xd799('0x31')][_0xd799('0x3b')]){_0x471499['where']=_[_0xd799('0x3c')](_0x471499[_0xd799('0x38')],{'$or':_[_0xd799('0x2b')](_0x471499[_0xd799('0x33')],function(_0x1037bf){var _0x41e625={};_0x41e625[_0x1037bf]={'$like':'%'+_0x4c36fd[_0xd799('0x31')][_0xd799('0x3b')]+'%'};return _0x41e625;})});}_0x471499=_[_0xd799('0x3c')]({},_0x471499,_0x4c36fd['options']);return _0x2fb824[_0xd799('0x4c')](_0x471499);}})[_0xd799('0x27')](function(_0x3aba6a){if(_0x3aba6a){_0x180f56=_0x3aba6a[_0xd799('0x34')];if(!_0x4c36fd['query'][_0xd799('0x35')](_0xd799('0x4d'))){_0x471499[_0xd799('0x1f')]=qs[_0xd799('0x1f')](_0x4c36fd[_0xd799('0x31')][_0xd799('0x1f')]);_0x471499[_0xd799('0x21')]=qs[_0xd799('0x21')](_0x4c36fd[_0xd799('0x31')][_0xd799('0x21')]);}return _0x2fb824['getConfigurations'](_0x471499);}})['then'](function(_0x2707e3){if(_0x2707e3){return _0x2707e3?{'count':_0x180f56,'rows':_0x2707e3}:null;}})['then'](respondWithResult(_0x3d1e8f,null))['catch'](handleError(_0x3d1e8f,null));};exports[_0xd799('0x4e')]=function(_0x22dfec,_0x45e891,_0x348c96){if(_0x22dfec['body']['id']){delete _0x22dfec[_0xd799('0x49')]['id'];}return db[_0xd799('0x2c')][_0xd799('0x4f')]({'where':{'id':_0x22dfec[_0xd799('0x4b')]['id']}})[_0xd799('0x27')](handleEntityNotFound(_0x45e891,null))[_0xd799('0x27')](function(_0x1e1a99){if(_0x1e1a99){_0x22dfec[_0xd799('0x49')][_0xd799('0x50')]=_0x1e1a99['id'];_0x22dfec[_0xd799('0x49')][_0xd799('0x51')]=integrations[_0xd799('0x52')](_0x22dfec['body'][_0xd799('0x53')],_0x22dfec['body'][_0xd799('0x2e')]);_0x22dfec['body'][_0xd799('0x54')]=integrations[_0xd799('0x55')](_0x22dfec[_0xd799('0x49')]['channel'],_0x22dfec[_0xd799('0x49')][_0xd799('0x2e')]);return db[_0xd799('0x56')][_0xd799('0x48')](_0x22dfec[_0xd799('0x49')],{'include':[{'model':db[_0xd799('0x57')],'as':'Subjects'},{'model':db[_0xd799('0x57')],'as':_0xd799('0x54')}]});}return null;})[_0xd799('0x27')](respondWithResult(_0x45e891,null))[_0xd799('0x42')](handleError(_0x45e891,null));};var md5=require(_0xd799('0x58'));exports['getFields']=function(_0x2453cb,_0x23cbb,_0x38db75){var _0x2effde=null;var _0x129b65=null;var _0x79ed5d=null;var _0x1f4f00=null;var _0x145e29='';return db[_0xd799('0x2c')][_0xd799('0x4f')]({'where':{'id':_0x2453cb[_0xd799('0x4b')]['id']},'attributes':['id',_0xd799('0x29'),_0xd799('0x59'),_0xd799('0x5a'),'moduleName',_0xd799('0x5b'),_0xd799('0x5c'),'accessKey']})[_0xd799('0x27')](handleEntityNotFound(_0x23cbb,null))[_0xd799('0x27')](function(_0x5b719b){if(_0x5b719b){_0x2effde=_0x5b719b[_0xd799('0x59')];_0x129b65=_0x5b719b['accessKey'];_0x79ed5d=_0x5b719b[_0xd799('0x5d')];_0x145e29=_0x5b719b[_0xd799('0x5b')];var _0x4fcffb=_0x145e29[_0xd799('0x5e')](-0x1);if(_0x4fcffb==='/'){_0x145e29=_0x145e29['substring'](0x0,_0x145e29['lastIndexOf'](_0x4fcffb));}_0x1f4f00=util[_0xd799('0x5f')](_0xd799('0x60'),_0x145e29);var _0x3b7972={'method':_0xd799('0x61'),'uri':_0x1f4f00,'qs':{'operation':'getchallenge','username':_0x5b719b['username']},'json':!![]};return rp(_0x3b7972);}})[_0xd799('0x27')](function(_0x5a3c00){if(_0x5a3c00[_0xd799('0x62')]){var _0xb85eb0={'method':_0xd799('0x63'),'uri':_0x1f4f00,'form':{'operation':_0xd799('0x64'),'username':_0x2effde,'accessKey':md5(_0x5a3c00[_0xd799('0x65')][_0xd799('0x66')]+_0x129b65)},'json':!![]};return rp(_0xb85eb0);}})['then'](function(_0xc3643f){if(_0xc3643f[_0xd799('0x62')]){var _0x46dee0={'method':_0xd799('0x61'),'uri':_0x1f4f00,'qs':{'operation':_0xd799('0x67'),'username':_0x2effde,'sessionName':_0xc3643f['result']['sessionName'],'elementType':_0x79ed5d},'json':!![]};return rp(_0x46dee0);}})[_0xd799('0x27')](function(_0x5aa466){if(_0x5aa466['success']){var _0x4fa948=[_0xd799('0x68'),_0xd799('0x69'),_0xd799('0x6a')];_[_0xd799('0x6b')](_0x5aa466[_0xd799('0x65')]['fields'],function(_0x538cb9){return _0x4fa948[_0xd799('0x6c')](_0x538cb9[_0xd799('0x2e')][_0xd799('0x29')]);});_[_0xd799('0x6b')](_0x5aa466['result'][_0xd799('0x45')],function(_0x371019){return _0x371019[_0xd799('0x6d')]===_0xd799('0x6e');});return{'count':_0x5aa466['result'][_0xd799('0x45')][_0xd799('0x34')],'rows':_[_0xd799('0x2b')](_0x5aa466[_0xd799('0x65')][_0xd799('0x45')],function(_0x4b2ff5){return{'id':_0x4b2ff5[_0xd799('0x29')],'name':_0x4b2ff5[_0xd799('0x6f')],'custom':_[_0xd799('0x70')](_0x4b2ff5[_0xd799('0x29')],_0xd799('0x71'))?!![]:![],'options':_0x4b2ff5[_0xd799('0x2e')][_0xd799('0x29')]===_0xd799('0x72')&&_0x4b2ff5[_0xd799('0x2e')][_0xd799('0x73')]['length']>0x0?_['map'](_0x4b2ff5['type']['picklistValues'],function(_0x3079bd){return{'name':_0x3079bd[_0xd799('0x6f')],'value':_0x3079bd[_0xd799('0x74')]};}):[]};})};}})['then'](respondWithResult(_0x23cbb,null))['catch'](function(_0x4555de){console[_0xd799('0x75')](_0xd799('0x76')+_0x4555de);var _0x409e6d=_0x2453cb[_0xd799('0x31')][_0xd799('0x77')]?0x1f4:_0x4555de['statusCode']||0x1f4;logger[_0xd799('0x28')](_0xd799('0x78'),_0xd799('0x79'),_0x409e6d,JSON[_0xd799('0x7a')](_0x4555de));delete _0x4555de['name'];if(_0x409e6d===0x191){_0x409e6d=0x190;}_0x23cbb[_0xd799('0x1c')](_0x409e6d)[_0xd799('0x7b')](_0x2453cb[_0xd799('0x31')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x4555de[_0xd799('0x7c')]}:_0x4555de);});};