Built motion from commit ab870f9e.|2.5.44
[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 _0x80d5=['label','value','log','vTiger\x20error:\x20','test','statusCode','stringify','Wrong\x20credentials','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../config/license/hardware','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','undefined','count','Content-Range','save','update','then','error','stack','name','send','index','map','VtigerAccount','rawAttributes','type','key','query','keys','model','attributes','fields','length','hasOwnProperty','limit','order','where','filters','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','intersection','options','find','create','body','params','destroy','getConfigurations','findOne','VtigerConfiguration','sort','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','VtigerField','md5','getFields','username','description','accessKey','moduleName','remoteUri','slice','substring','format','GET','success','POST','result','token','describe','sessionName','autogenerated','includes','editable','false','startsWith','picklistValues'];(function(_0x18410c,_0x998c69){var _0x1b482b=function(_0x440a97){while(--_0x440a97){_0x18410c['push'](_0x18410c['shift']());}};_0x1b482b(++_0x998c69);}(_0x80d5,0x1cc));var _0x580d=function(_0x219629,_0x57805a){_0x219629=_0x219629-0x0;var _0x38b66e=_0x80d5[_0x219629];return _0x38b66e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x580d('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x580d('0x1'));var rp=require(_0x580d('0x2'));var moment=require(_0x580d('0x3'));var BPromise=require(_0x580d('0x4'));var Mustache=require(_0x580d('0x5'));var util=require(_0x580d('0x6'));var path=require('path');var sox=require(_0x580d('0x7'));var csv=require('to-csv');var ejs=require(_0x580d('0x8'));var fs=require('fs');var fs_extra=require(_0x580d('0x9'));var _=require(_0x580d('0xa'));var squel=require(_0x580d('0xb'));var crypto=require(_0x580d('0xc'));var jsforce=require(_0x580d('0xd'));var deskjs=require(_0x580d('0xe'));var toCsv=require(_0x580d('0xf'));var querystring=require(_0x580d('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x580d('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x580d('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0x580d('0x13'));var config=require(_0x580d('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x16cda2,_0x108aed){_0x108aed=_0x108aed||0xcc;return function(_0x2f65e6){if(_0x2f65e6){return _0x16cda2[_0x580d('0x15')](_0x108aed);}return _0x16cda2[_0x580d('0x16')](_0x108aed)[_0x580d('0x17')]();};}function respondWithResult(_0x2f2fcc,_0x258a4c){_0x258a4c=_0x258a4c||0xc8;return function(_0x5d47f4){if(_0x5d47f4){return _0x2f2fcc[_0x580d('0x16')](_0x258a4c)[_0x580d('0x18')](_0x5d47f4);}};}function respondWithFilteredResult(_0x29e1d5,_0x5a32e4){return function(_0x3b363c){if(_0x3b363c){var _0x1de049=typeof _0x5a32e4[_0x580d('0x19')]===_0x580d('0x1a')&&typeof _0x5a32e4['limit']===_0x580d('0x1a');var _0x501db9=_0x3b363c['count'];var _0x3d4628=_0x1de049?0x0:_0x5a32e4['offset'];var _0x5d50b4=_0x1de049?_0x3b363c[_0x580d('0x1b')]:_0x5a32e4[_0x580d('0x19')]+_0x5a32e4['limit'];var _0x510f42;if(_0x5d50b4>=_0x501db9){_0x5d50b4=_0x501db9;_0x510f42=0xc8;}else{_0x510f42=0xce;}_0x29e1d5['status'](_0x510f42);return _0x29e1d5['set'](_0x580d('0x1c'),_0x3d4628+'-'+_0x5d50b4+'/'+_0x501db9)[_0x580d('0x18')](_0x3b363c);}return null;};}function patchUpdates(_0x5aeecc){return function(_0x562da7){try{jsonpatch['apply'](_0x562da7,_0x5aeecc,!![]);}catch(_0x1667f6){return BPromise['reject'](_0x1667f6);}return _0x562da7[_0x580d('0x1d')]();};}function saveUpdates(_0x440697,_0x839b04){return function(_0x4f76ce){if(_0x4f76ce){return _0x4f76ce[_0x580d('0x1e')](_0x440697)[_0x580d('0x1f')](function(_0x369c75){return _0x369c75;});}return null;};}function removeEntity(_0x5b4080,_0x3548b8){return function(_0x5de213){if(_0x5de213){return _0x5de213['destroy']()[_0x580d('0x1f')](function(){_0x5b4080[_0x580d('0x16')](0xcc)[_0x580d('0x17')]();});}};}function handleEntityNotFound(_0x43158f,_0x3f5e48){return function(_0x267754){if(!_0x267754){_0x43158f[_0x580d('0x15')](0x194);}return _0x267754;};}function handleError(_0x62acb4,_0x435339){_0x435339=_0x435339||0x1f4;return function(_0x1d18a9){logger[_0x580d('0x20')](_0x1d18a9[_0x580d('0x21')]);if(_0x1d18a9['name']){delete _0x1d18a9[_0x580d('0x22')];}_0x62acb4[_0x580d('0x16')](_0x435339)[_0x580d('0x23')](_0x1d18a9);};}exports[_0x580d('0x24')]=function(_0x15ded5,_0x4cc348){var _0x1b1052={},_0x2945c8={},_0x11e129={'count':0x0,'rows':[]};var _0x11cfde=_[_0x580d('0x25')](db[_0x580d('0x26')][_0x580d('0x27')],function(_0x2ebfba){return{'name':_0x2ebfba['fieldName'],'type':_0x2ebfba[_0x580d('0x28')][_0x580d('0x29')]};});_0x2945c8['model']=_['map'](_0x11cfde,'name');_0x2945c8[_0x580d('0x2a')]=_[_0x580d('0x2b')](_0x15ded5[_0x580d('0x2a')]);_0x2945c8['filters']=_['intersection'](_0x2945c8[_0x580d('0x2c')],_0x2945c8[_0x580d('0x2a')]);_0x1b1052[_0x580d('0x2d')]=_['intersection'](_0x2945c8[_0x580d('0x2c')],qs[_0x580d('0x2e')](_0x15ded5['query']['fields']));_0x1b1052[_0x580d('0x2d')]=_0x1b1052[_0x580d('0x2d')][_0x580d('0x2f')]?_0x1b1052[_0x580d('0x2d')]:_0x2945c8[_0x580d('0x2c')];if(!_0x15ded5[_0x580d('0x2a')][_0x580d('0x30')]('nolimit')){_0x1b1052[_0x580d('0x31')]=qs[_0x580d('0x31')](_0x15ded5[_0x580d('0x2a')][_0x580d('0x31')]);_0x1b1052[_0x580d('0x19')]=qs['offset'](_0x15ded5[_0x580d('0x2a')]['offset']);}_0x1b1052[_0x580d('0x32')]=qs['sort'](_0x15ded5[_0x580d('0x2a')]['sort']);_0x1b1052[_0x580d('0x33')]=qs[_0x580d('0x34')](_[_0x580d('0x35')](_0x15ded5[_0x580d('0x2a')],_0x2945c8[_0x580d('0x34')]),_0x11cfde);if(_0x15ded5[_0x580d('0x2a')][_0x580d('0x36')]){_0x1b1052[_0x580d('0x33')]=_[_0x580d('0x37')](_0x1b1052[_0x580d('0x33')],{'$or':_['map'](_0x11cfde,function(_0x5c8a4f){if(_0x5c8a4f['type']!==_0x580d('0x38')){var _0x5db2d9={};_0x5db2d9[_0x5c8a4f[_0x580d('0x22')]]={'$like':'%'+_0x15ded5['query'][_0x580d('0x36')]+'%'};return _0x5db2d9;}})});}_0x1b1052=_[_0x580d('0x37')]({},_0x1b1052,_0x15ded5['options']);var _0x57fd3f={'where':_0x1b1052[_0x580d('0x33')]};return db[_0x580d('0x26')][_0x580d('0x1b')](_0x57fd3f)['then'](function(_0x37290a){_0x11e129[_0x580d('0x1b')]=_0x37290a;if(_0x15ded5[_0x580d('0x2a')][_0x580d('0x39')]){_0x1b1052[_0x580d('0x3a')]=[{'all':!![]}];}return db[_0x580d('0x26')][_0x580d('0x3b')](_0x1b1052);})[_0x580d('0x1f')](function(_0x3c26b7){_0x11e129[_0x580d('0x3c')]=_0x3c26b7;return _0x11e129;})['then'](respondWithFilteredResult(_0x4cc348,_0x1b1052))[_0x580d('0x3d')](handleError(_0x4cc348,null));};exports[_0x580d('0x3e')]=function(_0x758d2e,_0x36028f){var _0xbd6537={'raw':![],'where':{'id':_0x758d2e['params']['id']}},_0x25d118={};_0x25d118[_0x580d('0x2c')]=_[_0x580d('0x2b')](db['VtigerAccount'][_0x580d('0x27')]);_0x25d118[_0x580d('0x2a')]=_[_0x580d('0x2b')](_0x758d2e[_0x580d('0x2a')]);_0x25d118[_0x580d('0x34')]=_[_0x580d('0x3f')](_0x25d118['model'],_0x25d118[_0x580d('0x2a')]);_0xbd6537['attributes']=_[_0x580d('0x3f')](_0x25d118['model'],qs[_0x580d('0x2e')](_0x758d2e['query'][_0x580d('0x2e')]));_0xbd6537[_0x580d('0x2d')]=_0xbd6537['attributes']['length']?_0xbd6537[_0x580d('0x2d')]:_0x25d118[_0x580d('0x2c')];if(_0x758d2e[_0x580d('0x2a')][_0x580d('0x39')]){_0xbd6537['include']=[{'all':!![]}];}_0xbd6537=_[_0x580d('0x37')]({},_0xbd6537,_0x758d2e[_0x580d('0x40')]);return db[_0x580d('0x26')][_0x580d('0x41')](_0xbd6537)[_0x580d('0x1f')](handleEntityNotFound(_0x36028f,null))[_0x580d('0x1f')](respondWithResult(_0x36028f,null))['catch'](handleError(_0x36028f,null));};exports['create']=function(_0x48907e,_0xfec9af){return db[_0x580d('0x26')][_0x580d('0x42')](_0x48907e[_0x580d('0x43')],{})[_0x580d('0x1f')](respondWithResult(_0xfec9af,0xc9))[_0x580d('0x3d')](handleError(_0xfec9af,null));};exports[_0x580d('0x1e')]=function(_0x2db028,_0x2821c1){if(_0x2db028['body']['id']){delete _0x2db028[_0x580d('0x43')]['id'];}return db[_0x580d('0x26')][_0x580d('0x41')]({'where':{'id':_0x2db028[_0x580d('0x44')]['id']}})[_0x580d('0x1f')](handleEntityNotFound(_0x2821c1,null))[_0x580d('0x1f')](saveUpdates(_0x2db028[_0x580d('0x43')],null))[_0x580d('0x1f')](respondWithResult(_0x2821c1,null))[_0x580d('0x3d')](handleError(_0x2821c1,null));};exports[_0x580d('0x45')]=function(_0x2baffb,_0x5b9656){return db['VtigerAccount'][_0x580d('0x41')]({'where':{'id':_0x2baffb['params']['id']}})['then'](handleEntityNotFound(_0x5b9656,null))[_0x580d('0x1f')](removeEntity(_0x5b9656,null))['catch'](handleError(_0x5b9656,null));};exports[_0x580d('0x46')]=function(_0x4370e5,_0x5e21a2,_0x369441){var _0x560a77={};var _0x1165dc={};var _0x127aa5;var _0x2bebaa;return db['VtigerAccount'][_0x580d('0x47')]({'where':{'id':_0x4370e5['params']['id']}})['then'](handleEntityNotFound(_0x5e21a2,null))['then'](function(_0x500379){if(_0x500379){_0x127aa5=_0x500379;_0x1165dc[_0x580d('0x2c')]=_['keys'](db[_0x580d('0x48')]['rawAttributes']);_0x1165dc[_0x580d('0x2a')]=_[_0x580d('0x2b')](_0x4370e5['query']);_0x1165dc[_0x580d('0x34')]=_[_0x580d('0x3f')](_0x1165dc[_0x580d('0x2c')],_0x1165dc[_0x580d('0x2a')]);_0x560a77[_0x580d('0x2d')]=_[_0x580d('0x3f')](_0x1165dc[_0x580d('0x2c')],qs[_0x580d('0x2e')](_0x4370e5[_0x580d('0x2a')][_0x580d('0x2e')]));_0x560a77[_0x580d('0x2d')]=_0x560a77[_0x580d('0x2d')][_0x580d('0x2f')]?_0x560a77[_0x580d('0x2d')]:_0x1165dc[_0x580d('0x2c')];_0x560a77[_0x580d('0x32')]=qs['sort'](_0x4370e5[_0x580d('0x2a')][_0x580d('0x49')]);_0x560a77[_0x580d('0x33')]=qs[_0x580d('0x34')](_[_0x580d('0x35')](_0x4370e5[_0x580d('0x2a')],_0x1165dc[_0x580d('0x34')]));if(_0x4370e5['query']['filter']){_0x560a77['where']=_[_0x580d('0x37')](_0x560a77[_0x580d('0x33')],{'$or':_[_0x580d('0x25')](_0x560a77[_0x580d('0x2d')],function(_0x5ce777){var _0x5951c7={};_0x5951c7[_0x5ce777]={'$like':'%'+_0x4370e5[_0x580d('0x2a')]['filter']+'%'};return _0x5951c7;})});}_0x560a77=_[_0x580d('0x37')]({},_0x560a77,_0x4370e5['options']);return _0x127aa5[_0x580d('0x46')](_0x560a77);}})[_0x580d('0x1f')](function(_0x4591da){if(_0x4591da){_0x2bebaa=_0x4591da[_0x580d('0x2f')];if(!_0x4370e5['query'][_0x580d('0x30')]('nolimit')){_0x560a77[_0x580d('0x31')]=qs['limit'](_0x4370e5[_0x580d('0x2a')][_0x580d('0x31')]);_0x560a77[_0x580d('0x19')]=qs[_0x580d('0x19')](_0x4370e5[_0x580d('0x2a')]['offset']);}return _0x127aa5['getConfigurations'](_0x560a77);}})[_0x580d('0x1f')](function(_0x55dcc4){if(_0x55dcc4){return _0x55dcc4?{'count':_0x2bebaa,'rows':_0x55dcc4}:null;}})['then'](respondWithResult(_0x5e21a2,null))[_0x580d('0x3d')](handleError(_0x5e21a2,null));};exports[_0x580d('0x4a')]=function(_0x1977ea,_0x5d40dd,_0x27cc29){if(_0x1977ea[_0x580d('0x43')]['id']){delete _0x1977ea[_0x580d('0x43')]['id'];}return db['VtigerAccount']['findOne']({'where':{'id':_0x1977ea['params']['id']}})[_0x580d('0x1f')](handleEntityNotFound(_0x5d40dd,null))[_0x580d('0x1f')](function(_0x58eae0){if(_0x58eae0){_0x1977ea[_0x580d('0x43')][_0x580d('0x4b')]=_0x58eae0['id'];_0x1977ea[_0x580d('0x43')][_0x580d('0x4c')]=integrations[_0x580d('0x4d')](_0x1977ea['body']['channel'],_0x1977ea['body'][_0x580d('0x28')]);_0x1977ea['body'][_0x580d('0x4e')]=integrations[_0x580d('0x4f')](_0x1977ea[_0x580d('0x43')][_0x580d('0x50')],_0x1977ea[_0x580d('0x43')][_0x580d('0x28')]);return db[_0x580d('0x48')][_0x580d('0x42')](_0x1977ea[_0x580d('0x43')],{'include':[{'model':db[_0x580d('0x51')],'as':_0x580d('0x4c')},{'model':db['VtigerField'],'as':_0x580d('0x4e')}]});}return null;})['then'](respondWithResult(_0x5d40dd,null))[_0x580d('0x3d')](handleError(_0x5d40dd,null));};var md5=require(_0x580d('0x52'));exports[_0x580d('0x53')]=function(_0x17df8c,_0x134578,_0xc5b37b){var _0x40ca32=null;var _0x25cced=null;var _0x86b0ff=null;var _0x1e796d=null;var _0x2b8e2d='';return db[_0x580d('0x26')][_0x580d('0x47')]({'where':{'id':_0x17df8c[_0x580d('0x44')]['id']},'attributes':['id','name',_0x580d('0x54'),_0x580d('0x55'),'moduleName','remoteUri','serverUrl',_0x580d('0x56')]})[_0x580d('0x1f')](handleEntityNotFound(_0x134578,null))[_0x580d('0x1f')](function(_0x52020c){if(_0x52020c){_0x40ca32=_0x52020c['username'];_0x25cced=_0x52020c[_0x580d('0x56')];_0x86b0ff=_0x52020c[_0x580d('0x57')];_0x2b8e2d=_0x52020c[_0x580d('0x58')];var _0xb2d294=_0x2b8e2d[_0x580d('0x59')](-0x1);if(_0xb2d294==='/'){_0x2b8e2d=_0x2b8e2d[_0x580d('0x5a')](0x0,_0x2b8e2d['lastIndexOf'](_0xb2d294));}_0x1e796d=util[_0x580d('0x5b')]('%s/webservice.php',_0x2b8e2d);var _0x371089={'method':_0x580d('0x5c'),'uri':_0x1e796d,'qs':{'operation':'getchallenge','username':_0x52020c['username']},'json':!![]};return rp(_0x371089);}})['then'](function(_0x57aeb6){if(_0x57aeb6[_0x580d('0x5d')]){var _0xd32a53={'method':_0x580d('0x5e'),'uri':_0x1e796d,'form':{'operation':'login','username':_0x40ca32,'accessKey':md5(_0x57aeb6[_0x580d('0x5f')][_0x580d('0x60')]+_0x25cced)},'json':!![]};return rp(_0xd32a53);}})[_0x580d('0x1f')](function(_0x310174){if(_0x310174[_0x580d('0x5d')]){var _0x4a034e={'method':_0x580d('0x5c'),'uri':_0x1e796d,'qs':{'operation':_0x580d('0x61'),'username':_0x40ca32,'sessionName':_0x310174[_0x580d('0x5f')][_0x580d('0x62')],'elementType':_0x86b0ff},'json':!![]};return rp(_0x4a034e);}})['then'](function(_0x326f46){if(_0x326f46[_0x580d('0x5d')]){var _0x2037ea=[_0x580d('0x63'),'reference','owner'];_['remove'](_0x326f46['result']['fields'],function(_0x457319){return _0x2037ea[_0x580d('0x64')](_0x457319[_0x580d('0x28')][_0x580d('0x22')]);});_['remove'](_0x326f46['result']['fields'],function(_0x12537b){return _0x12537b[_0x580d('0x65')]===_0x580d('0x66');});return{'count':_0x326f46[_0x580d('0x5f')][_0x580d('0x2e')][_0x580d('0x2f')],'rows':_[_0x580d('0x25')](_0x326f46[_0x580d('0x5f')][_0x580d('0x2e')],function(_0x4dfb5b){return{'id':_0x4dfb5b['name'],'name':_0x4dfb5b['label'],'custom':_[_0x580d('0x67')](_0x4dfb5b['name'],'cf_')?!![]:![],'options':_0x4dfb5b[_0x580d('0x28')][_0x580d('0x22')]==='picklist'&&_0x4dfb5b[_0x580d('0x28')][_0x580d('0x68')][_0x580d('0x2f')]>0x0?_[_0x580d('0x25')](_0x4dfb5b[_0x580d('0x28')][_0x580d('0x68')],function(_0x842619){return{'name':_0x842619[_0x580d('0x69')],'value':_0x842619[_0x580d('0x6a')]};}):[]};})};}})[_0x580d('0x1f')](respondWithResult(_0x134578,null))['catch'](function(_0x8b0503){console[_0x580d('0x6b')](_0x580d('0x6c')+_0x8b0503);var _0x32e5a6=_0x17df8c[_0x580d('0x2a')][_0x580d('0x6d')]?0x1f4:_0x8b0503[_0x580d('0x6e')]||0x1f4;logger[_0x580d('0x20')]('getFields,\x20%s,\x20%s,\x20%s',_0x580d('0x53'),_0x32e5a6,JSON[_0x580d('0x6f')](_0x8b0503));delete _0x8b0503[_0x580d('0x22')];if(_0x32e5a6===0x191){_0x32e5a6=0x190;}_0x134578['status'](_0x32e5a6)[_0x580d('0x23')](_0x17df8c[_0x580d('0x2a')][_0x580d('0x6d')]?{'message':_0x580d('0x70'),'statusCode':_0x8b0503[_0x580d('0x6e')]}:_0x8b0503);});};