197fc97b82b9427a8dc78edfab52f613b536be8b
[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 _0x100f=['apply','reject','update','then','index','VtigerAccount','fieldName','key','map','name','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type','VIRTUAL','options','include','show','params','rawAttributes','find','create','body','catch','destroy','getConfigurations','findOne','VtigerConfiguration','addConfiguration','AccountId','getSubjects','channel','Descriptions','getDescriptions','VtigerField','md5','getFields','username','moduleName','accessKey','remoteUri','slice','lastIndexOf','format','%s/webservice.php','GET','getchallenge','success','login','result','token','describe','sessionName','autogenerated','owner','remove','includes','editable','false','label','startsWith','cf_','picklist','picklistValues','value','log','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range'];(function(_0x4e56e6,_0x38be20){var _0x126a38=function(_0x45d4a6){while(--_0x45d4a6){_0x4e56e6['push'](_0x4e56e6['shift']());}};_0x126a38(++_0x38be20);}(_0x100f,0xd0));var _0xf100=function(_0x2b0ce0,_0x394b3b){_0x2b0ce0=_0x2b0ce0-0x0;var _0x1b042d=_0x100f[_0x2b0ce0];return _0x1b042d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf100('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf100('0x1'));var rp=require(_0xf100('0x2'));var moment=require(_0xf100('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xf100('0x4'));var util=require(_0xf100('0x5'));var path=require(_0xf100('0x6'));var sox=require(_0xf100('0x7'));var csv=require(_0xf100('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf100('0x9'));var _=require(_0xf100('0xa'));var squel=require(_0xf100('0xb'));var crypto=require(_0xf100('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xf100('0xd'));var toCsv=require(_0xf100('0x8'));var querystring=require(_0xf100('0xe'));var Papa=require(_0xf100('0xf'));var Redis=require(_0xf100('0x10'));var authService=require(_0xf100('0x11'));var qs=require(_0xf100('0x12'));var as=require(_0xf100('0x13'));var hardwareService=require(_0xf100('0x14'));var logger=require(_0xf100('0x15'))(_0xf100('0x16'));var utils=require(_0xf100('0x17'));var config=require(_0xf100('0x18'));var licenseUtil=require(_0xf100('0x19'));var db=require(_0xf100('0x1a'))['db'];var integrations=require(_0xf100('0x1b'));function respondWithStatusCode(_0xc7b2c4,_0x337499){_0x337499=_0x337499||0xcc;return function(_0x1eb7b0){if(_0x1eb7b0){return _0xc7b2c4[_0xf100('0x1c')](_0x337499);}return _0xc7b2c4[_0xf100('0x1d')](_0x337499)[_0xf100('0x1e')]();};}function respondWithResult(_0x29e841,_0x55f3f0){_0x55f3f0=_0x55f3f0||0xc8;return function(_0x2f20ca){if(_0x2f20ca){return _0x29e841['status'](_0x55f3f0)[_0xf100('0x1f')](_0x2f20ca);}};}function respondWithFilteredResult(_0x194a41,_0x493a73){return function(_0x27fe58){if(_0x27fe58){var _0x3d6f87=typeof _0x493a73['offset']==='undefined'&&typeof _0x493a73[_0xf100('0x20')]===_0xf100('0x21');var _0x1360ef=_0x27fe58[_0xf100('0x22')];var _0x5417e7=_0x3d6f87?0x0:_0x493a73['offset'];var _0x4f19ae=_0x3d6f87?_0x27fe58['count']:_0x493a73[_0xf100('0x23')]+_0x493a73['limit'];var _0x5adeaa;if(_0x4f19ae>=_0x1360ef){_0x4f19ae=_0x1360ef;_0x5adeaa=0xc8;}else{_0x5adeaa=0xce;}_0x194a41[_0xf100('0x1d')](_0x5adeaa);return _0x194a41[_0xf100('0x24')](_0xf100('0x25'),_0x5417e7+'-'+_0x4f19ae+'/'+_0x1360ef)[_0xf100('0x1f')](_0x27fe58);}return null;};}function patchUpdates(_0x48138d){return function(_0x12c658){try{jsonpatch[_0xf100('0x26')](_0x12c658,_0x48138d,!![]);}catch(_0x479d54){return BPromise[_0xf100('0x27')](_0x479d54);}return _0x12c658['save']();};}function saveUpdates(_0x4483f0,_0x140134){return function(_0x53f30b){if(_0x53f30b){return _0x53f30b[_0xf100('0x28')](_0x4483f0)[_0xf100('0x29')](function(_0x514566){return _0x514566;});}return null;};}function removeEntity(_0x2a5409,_0x126a54){return function(_0x592af6){if(_0x592af6){return _0x592af6['destroy']()[_0xf100('0x29')](function(){_0x2a5409['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x49d455,_0x322507){return function(_0x4723a2){if(!_0x4723a2){_0x49d455[_0xf100('0x1c')](0x194);}return _0x4723a2;};}function handleError(_0x1dd0b9,_0x2e769e){_0x2e769e=_0x2e769e||0x1f4;return function(_0x526f8f){logger['error'](_0x526f8f['stack']);if(_0x526f8f['name']){delete _0x526f8f['name'];}_0x1dd0b9[_0xf100('0x1d')](_0x2e769e)['send'](_0x526f8f);};}exports[_0xf100('0x2a')]=function(_0x42b3b1,_0x3a48ab){var _0x12fa58={},_0xa399ab={},_0x39aa8d={'count':0x0,'rows':[]};var _0xe0af42=_['map'](db[_0xf100('0x2b')]['rawAttributes'],function(_0x17faa4){return{'name':_0x17faa4[_0xf100('0x2c')],'type':_0x17faa4['type'][_0xf100('0x2d')]};});_0xa399ab['model']=_[_0xf100('0x2e')](_0xe0af42,_0xf100('0x2f'));_0xa399ab[_0xf100('0x30')]=_[_0xf100('0x31')](_0x42b3b1[_0xf100('0x30')]);_0xa399ab[_0xf100('0x32')]=_[_0xf100('0x33')](_0xa399ab[_0xf100('0x34')],_0xa399ab[_0xf100('0x30')]);_0x12fa58[_0xf100('0x35')]=_[_0xf100('0x33')](_0xa399ab['model'],qs['fields'](_0x42b3b1['query'][_0xf100('0x36')]));_0x12fa58['attributes']=_0x12fa58[_0xf100('0x35')][_0xf100('0x37')]?_0x12fa58['attributes']:_0xa399ab['model'];if(!_0x42b3b1[_0xf100('0x30')][_0xf100('0x38')](_0xf100('0x39'))){_0x12fa58['limit']=qs[_0xf100('0x20')](_0x42b3b1['query'][_0xf100('0x20')]);_0x12fa58['offset']=qs['offset'](_0x42b3b1['query'][_0xf100('0x23')]);}_0x12fa58[_0xf100('0x3a')]=qs[_0xf100('0x3b')](_0x42b3b1[_0xf100('0x30')]['sort']);_0x12fa58['where']=qs[_0xf100('0x32')](_[_0xf100('0x3c')](_0x42b3b1[_0xf100('0x30')],_0xa399ab['filters']),_0xe0af42);if(_0x42b3b1[_0xf100('0x30')][_0xf100('0x3d')]){_0x12fa58[_0xf100('0x3e')]=_[_0xf100('0x3f')](_0x12fa58[_0xf100('0x3e')],{'$or':_[_0xf100('0x2e')](_0xe0af42,function(_0x445405){if(_0x445405[_0xf100('0x40')]!==_0xf100('0x41')){var _0x53fa89={};_0x53fa89[_0x445405[_0xf100('0x2f')]]={'$like':'%'+_0x42b3b1[_0xf100('0x30')][_0xf100('0x3d')]+'%'};return _0x53fa89;}})});}_0x12fa58=_['merge']({},_0x12fa58,_0x42b3b1[_0xf100('0x42')]);var _0x3b9442={'where':_0x12fa58[_0xf100('0x3e')]};return db[_0xf100('0x2b')][_0xf100('0x22')](_0x3b9442)[_0xf100('0x29')](function(_0x20b7d6){_0x39aa8d[_0xf100('0x22')]=_0x20b7d6;if(_0x42b3b1[_0xf100('0x30')]['includeAll']){_0x12fa58[_0xf100('0x43')]=[{'all':!![]}];}return db[_0xf100('0x2b')]['findAll'](_0x12fa58);})[_0xf100('0x29')](function(_0x18d0ff){_0x39aa8d['rows']=_0x18d0ff;return _0x39aa8d;})[_0xf100('0x29')](respondWithFilteredResult(_0x3a48ab,_0x12fa58))['catch'](handleError(_0x3a48ab,null));};exports[_0xf100('0x44')]=function(_0x1fa229,_0x399937){var _0x3666aa={'raw':![],'where':{'id':_0x1fa229[_0xf100('0x45')]['id']}},_0x414931={};_0x414931[_0xf100('0x34')]=_[_0xf100('0x31')](db[_0xf100('0x2b')][_0xf100('0x46')]);_0x414931[_0xf100('0x30')]=_[_0xf100('0x31')](_0x1fa229[_0xf100('0x30')]);_0x414931[_0xf100('0x32')]=_[_0xf100('0x33')](_0x414931[_0xf100('0x34')],_0x414931[_0xf100('0x30')]);_0x3666aa[_0xf100('0x35')]=_['intersection'](_0x414931['model'],qs['fields'](_0x1fa229[_0xf100('0x30')][_0xf100('0x36')]));_0x3666aa['attributes']=_0x3666aa['attributes'][_0xf100('0x37')]?_0x3666aa[_0xf100('0x35')]:_0x414931[_0xf100('0x34')];if(_0x1fa229[_0xf100('0x30')]['includeAll']){_0x3666aa[_0xf100('0x43')]=[{'all':!![]}];}_0x3666aa=_['merge']({},_0x3666aa,_0x1fa229[_0xf100('0x42')]);return db[_0xf100('0x2b')][_0xf100('0x47')](_0x3666aa)[_0xf100('0x29')](handleEntityNotFound(_0x399937,null))[_0xf100('0x29')](respondWithResult(_0x399937,null))['catch'](handleError(_0x399937,null));};exports[_0xf100('0x48')]=function(_0x571de0,_0x275b6f){return db[_0xf100('0x2b')][_0xf100('0x48')](_0x571de0[_0xf100('0x49')],{})[_0xf100('0x29')](respondWithResult(_0x275b6f,0xc9))[_0xf100('0x4a')](handleError(_0x275b6f,null));};exports[_0xf100('0x28')]=function(_0x3f5b47,_0x880b62){if(_0x3f5b47[_0xf100('0x49')]['id']){delete _0x3f5b47[_0xf100('0x49')]['id'];}return db[_0xf100('0x2b')][_0xf100('0x47')]({'where':{'id':_0x3f5b47[_0xf100('0x45')]['id']}})[_0xf100('0x29')](handleEntityNotFound(_0x880b62,null))[_0xf100('0x29')](saveUpdates(_0x3f5b47[_0xf100('0x49')],null))[_0xf100('0x29')](respondWithResult(_0x880b62,null))[_0xf100('0x4a')](handleError(_0x880b62,null));};exports[_0xf100('0x4b')]=function(_0x22c0cd,_0x173d4a){return db[_0xf100('0x2b')][_0xf100('0x47')]({'where':{'id':_0x22c0cd[_0xf100('0x45')]['id']}})[_0xf100('0x29')](handleEntityNotFound(_0x173d4a,null))[_0xf100('0x29')](removeEntity(_0x173d4a,null))[_0xf100('0x4a')](handleError(_0x173d4a,null));};exports[_0xf100('0x4c')]=function(_0x1d037a,_0x11542c,_0x4bcfda){var _0x1cdd68={};var _0x2196ab={};var _0x429560;var _0x3ab1b3;return db[_0xf100('0x2b')][_0xf100('0x4d')]({'where':{'id':_0x1d037a[_0xf100('0x45')]['id']}})[_0xf100('0x29')](handleEntityNotFound(_0x11542c,null))[_0xf100('0x29')](function(_0x36aaa3){if(_0x36aaa3){_0x429560=_0x36aaa3;_0x2196ab[_0xf100('0x34')]=_[_0xf100('0x31')](db[_0xf100('0x4e')]['rawAttributes']);_0x2196ab[_0xf100('0x30')]=_[_0xf100('0x31')](_0x1d037a['query']);_0x2196ab[_0xf100('0x32')]=_[_0xf100('0x33')](_0x2196ab[_0xf100('0x34')],_0x2196ab[_0xf100('0x30')]);_0x1cdd68[_0xf100('0x35')]=_[_0xf100('0x33')](_0x2196ab[_0xf100('0x34')],qs[_0xf100('0x36')](_0x1d037a[_0xf100('0x30')][_0xf100('0x36')]));_0x1cdd68[_0xf100('0x35')]=_0x1cdd68[_0xf100('0x35')][_0xf100('0x37')]?_0x1cdd68[_0xf100('0x35')]:_0x2196ab[_0xf100('0x34')];_0x1cdd68[_0xf100('0x3a')]=qs[_0xf100('0x3b')](_0x1d037a[_0xf100('0x30')][_0xf100('0x3b')]);_0x1cdd68['where']=qs[_0xf100('0x32')](_[_0xf100('0x3c')](_0x1d037a[_0xf100('0x30')],_0x2196ab[_0xf100('0x32')]));if(_0x1d037a[_0xf100('0x30')][_0xf100('0x3d')]){_0x1cdd68[_0xf100('0x3e')]=_[_0xf100('0x3f')](_0x1cdd68['where'],{'$or':_[_0xf100('0x2e')](_0x1cdd68[_0xf100('0x35')],function(_0x1a0a8c){var _0x51c8fe={};_0x51c8fe[_0x1a0a8c]={'$like':'%'+_0x1d037a['query']['filter']+'%'};return _0x51c8fe;})});}_0x1cdd68=_['merge']({},_0x1cdd68,_0x1d037a[_0xf100('0x42')]);return _0x429560[_0xf100('0x4c')](_0x1cdd68);}})[_0xf100('0x29')](function(_0x5b319b){if(_0x5b319b){_0x3ab1b3=_0x5b319b['length'];if(!_0x1d037a[_0xf100('0x30')][_0xf100('0x38')](_0xf100('0x39'))){_0x1cdd68['limit']=qs['limit'](_0x1d037a['query']['limit']);_0x1cdd68[_0xf100('0x23')]=qs[_0xf100('0x23')](_0x1d037a[_0xf100('0x30')]['offset']);}return _0x429560[_0xf100('0x4c')](_0x1cdd68);}})[_0xf100('0x29')](function(_0x169e02){if(_0x169e02){return _0x169e02?{'count':_0x3ab1b3,'rows':_0x169e02}:null;}})[_0xf100('0x29')](respondWithResult(_0x11542c,null))['catch'](handleError(_0x11542c,null));};exports[_0xf100('0x4f')]=function(_0x468602,_0x1f8170,_0x4a35f3){if(_0x468602['body']['id']){delete _0x468602['body']['id'];}return db[_0xf100('0x2b')]['findOne']({'where':{'id':_0x468602[_0xf100('0x45')]['id']}})[_0xf100('0x29')](handleEntityNotFound(_0x1f8170,null))['then'](function(_0x3b70ad){if(_0x3b70ad){_0x468602[_0xf100('0x49')][_0xf100('0x50')]=_0x3b70ad['id'];_0x468602[_0xf100('0x49')]['Subjects']=integrations[_0xf100('0x51')](_0x468602[_0xf100('0x49')][_0xf100('0x52')],_0x468602[_0xf100('0x49')]['type']);_0x468602[_0xf100('0x49')][_0xf100('0x53')]=integrations[_0xf100('0x54')](_0x468602['body'][_0xf100('0x52')],_0x468602['body'][_0xf100('0x40')]);return db[_0xf100('0x4e')]['create'](_0x468602['body'],{'include':[{'model':db[_0xf100('0x55')],'as':'Subjects'},{'model':db[_0xf100('0x55')],'as':_0xf100('0x53')}]});}return null;})[_0xf100('0x29')](respondWithResult(_0x1f8170,null))[_0xf100('0x4a')](handleError(_0x1f8170,null));};var md5=require(_0xf100('0x56'));exports[_0xf100('0x57')]=function(_0x10e241,_0x5941d1,_0x1dc22d){var _0x2fa00d=null;var _0x116937=null;var _0x436c52=null;var _0x592996=null;var _0x4be943='';return db[_0xf100('0x2b')]['findOne']({'where':{'id':_0x10e241[_0xf100('0x45')]['id']},'attributes':['id',_0xf100('0x2f'),_0xf100('0x58'),'description',_0xf100('0x59'),'remoteUri','serverUrl',_0xf100('0x5a')]})['then'](handleEntityNotFound(_0x5941d1,null))[_0xf100('0x29')](function(_0x134719){if(_0x134719){_0x2fa00d=_0x134719['username'];_0x116937=_0x134719[_0xf100('0x5a')];_0x436c52=_0x134719['moduleName'];_0x4be943=_0x134719[_0xf100('0x5b')];var _0xdebb5e=_0x4be943[_0xf100('0x5c')](-0x1);if(_0xdebb5e==='/'){_0x4be943=_0x4be943['substring'](0x0,_0x4be943[_0xf100('0x5d')](_0xdebb5e));}_0x592996=util[_0xf100('0x5e')](_0xf100('0x5f'),_0x4be943);var _0x2b0296={'method':_0xf100('0x60'),'uri':_0x592996,'qs':{'operation':_0xf100('0x61'),'username':_0x134719[_0xf100('0x58')]},'json':!![]};return rp(_0x2b0296);}})[_0xf100('0x29')](function(_0x4b4c08){if(_0x4b4c08[_0xf100('0x62')]){var _0xec78e0={'method':'POST','uri':_0x592996,'form':{'operation':_0xf100('0x63'),'username':_0x2fa00d,'accessKey':md5(_0x4b4c08[_0xf100('0x64')][_0xf100('0x65')]+_0x116937)},'json':!![]};return rp(_0xec78e0);}})[_0xf100('0x29')](function(_0x10692a){if(_0x10692a[_0xf100('0x62')]){var _0xbddbd7={'method':_0xf100('0x60'),'uri':_0x592996,'qs':{'operation':_0xf100('0x66'),'username':_0x2fa00d,'sessionName':_0x10692a[_0xf100('0x64')][_0xf100('0x67')],'elementType':_0x436c52},'json':!![]};return rp(_0xbddbd7);}})[_0xf100('0x29')](function(_0x304276){if(_0x304276['success']){var _0x8c9c13=[_0xf100('0x68'),'reference',_0xf100('0x69')];_[_0xf100('0x6a')](_0x304276[_0xf100('0x64')][_0xf100('0x36')],function(_0x132cfd){return _0x8c9c13[_0xf100('0x6b')](_0x132cfd['type'][_0xf100('0x2f')]);});_[_0xf100('0x6a')](_0x304276[_0xf100('0x64')][_0xf100('0x36')],function(_0x2c5ca1){return _0x2c5ca1[_0xf100('0x6c')]===_0xf100('0x6d');});return{'count':_0x304276['result'][_0xf100('0x36')][_0xf100('0x37')],'rows':_[_0xf100('0x2e')](_0x304276[_0xf100('0x64')][_0xf100('0x36')],function(_0x1c26a0){return{'id':_0x1c26a0[_0xf100('0x2f')],'name':_0x1c26a0[_0xf100('0x6e')],'custom':_[_0xf100('0x6f')](_0x1c26a0['name'],_0xf100('0x70'))?!![]:![],'options':_0x1c26a0[_0xf100('0x40')][_0xf100('0x2f')]===_0xf100('0x71')&&_0x1c26a0[_0xf100('0x40')][_0xf100('0x72')][_0xf100('0x37')]>0x0?_['map'](_0x1c26a0['type']['picklistValues'],function(_0x1ad76e){return{'name':_0x1ad76e[_0xf100('0x6e')],'value':_0x1ad76e[_0xf100('0x73')]};}):[]};})};}})[_0xf100('0x29')](respondWithResult(_0x5941d1,null))[_0xf100('0x4a')](function(_0x425684){console[_0xf100('0x74')]('vTiger\x20error:\x20'+_0x425684);var _0xbeed3=_0x10e241[_0xf100('0x30')][_0xf100('0x75')]?0x1f4:_0x425684[_0xf100('0x76')]||0x1f4;logger[_0xf100('0x77')](_0xf100('0x78'),_0xf100('0x57'),_0xbeed3,JSON[_0xf100('0x79')](_0x425684));delete _0x425684['name'];if(_0xbeed3===0x191){_0xbeed3=0x190;}_0x5941d1[_0xf100('0x1d')](_0xbeed3)['send'](_0x10e241[_0xf100('0x30')][_0xf100('0x75')]?{'message':_0xf100('0x7a'),'statusCode':_0x425684['statusCode']}:_0x425684);});};