Built motion from commit 753c950e.|2.5.42
[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 _0xb835=['intersection','attributes','fields','length','nolimit','order','sort','pick','filter','where','VIRTUAL','VtigerAccount','includeAll','include','findAll','rows','show','params','keys','options','catch','create','body','find','destroy','getConfigurations','findOne','VtigerConfiguration','merge','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','getDescriptions','channel','Descriptions','md5','username','description','remoteUri','serverUrl','accessKey','moduleName','slice','substring','format','GET','getchallenge','success','POST','login','result','token','describe','reference','remove','includes','false','label','startsWith','picklistValues','value','log','test','statusCode','getFields','stringify','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','error','name','send','index','map','rawAttributes','type','model','query','filters'];(function(_0x8d2e63,_0x2eef65){var _0x32b030=function(_0x592689){while(--_0x592689){_0x8d2e63['push'](_0x8d2e63['shift']());}};_0x32b030(++_0x2eef65);}(_0xb835,0x132));var _0x5b83=function(_0x23130f,_0x57ebd1){_0x23130f=_0x23130f-0x0;var _0x58aa49=_0xb835[_0x23130f];return _0x58aa49;};'use strict';var emlformat=require(_0x5b83('0x0'));var rimraf=require(_0x5b83('0x1'));var zipdir=require(_0x5b83('0x2'));var jsonpatch=require(_0x5b83('0x3'));var rp=require(_0x5b83('0x4'));var moment=require(_0x5b83('0x5'));var BPromise=require(_0x5b83('0x6'));var Mustache=require(_0x5b83('0x7'));var util=require(_0x5b83('0x8'));var path=require(_0x5b83('0x9'));var sox=require(_0x5b83('0xa'));var csv=require(_0x5b83('0xb'));var ejs=require(_0x5b83('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5b83('0xd'));var squel=require(_0x5b83('0xe'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x5b83('0xf'));var toCsv=require('to-csv');var querystring=require(_0x5b83('0x10'));var Papa=require(_0x5b83('0x11'));var Redis=require(_0x5b83('0x12'));var authService=require(_0x5b83('0x13'));var qs=require(_0x5b83('0x14'));var as=require(_0x5b83('0x15'));var hardwareService=require(_0x5b83('0x16'));var logger=require('../../config/logger')(_0x5b83('0x17'));var utils=require(_0x5b83('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x5b83('0x19'));var db=require('../../mysqldb')['db'];var integrations=require(_0x5b83('0x1a'));function respondWithStatusCode(_0x4eeb6f,_0x25a7e0){_0x25a7e0=_0x25a7e0||0xcc;return function(_0x5957b9){if(_0x5957b9){return _0x4eeb6f[_0x5b83('0x1b')](_0x25a7e0);}return _0x4eeb6f[_0x5b83('0x1c')](_0x25a7e0)[_0x5b83('0x1d')]();};}function respondWithResult(_0x2714c7,_0x59a33b){_0x59a33b=_0x59a33b||0xc8;return function(_0x5a67e1){if(_0x5a67e1){return _0x2714c7[_0x5b83('0x1c')](_0x59a33b)[_0x5b83('0x1e')](_0x5a67e1);}};}function respondWithFilteredResult(_0x2e8957,_0x2f9c6e){return function(_0x48b9e5){if(_0x48b9e5){var _0x469d66=typeof _0x2f9c6e[_0x5b83('0x1f')]===_0x5b83('0x20')&&typeof _0x2f9c6e[_0x5b83('0x21')]==='undefined';var _0x2d6534=_0x48b9e5[_0x5b83('0x22')];var _0x4615c9=_0x469d66?0x0:_0x2f9c6e[_0x5b83('0x1f')];var _0x17f9e8=_0x469d66?_0x48b9e5[_0x5b83('0x22')]:_0x2f9c6e[_0x5b83('0x1f')]+_0x2f9c6e[_0x5b83('0x21')];var _0x184dbf;if(_0x17f9e8>=_0x2d6534){_0x17f9e8=_0x2d6534;_0x184dbf=0xc8;}else{_0x184dbf=0xce;}_0x2e8957[_0x5b83('0x1c')](_0x184dbf);return _0x2e8957[_0x5b83('0x23')](_0x5b83('0x24'),_0x4615c9+'-'+_0x17f9e8+'/'+_0x2d6534)[_0x5b83('0x1e')](_0x48b9e5);}return null;};}function patchUpdates(_0x140e16){return function(_0x266df4){try{jsonpatch[_0x5b83('0x25')](_0x266df4,_0x140e16,!![]);}catch(_0x4952a2){return BPromise[_0x5b83('0x26')](_0x4952a2);}return _0x266df4['save']();};}function saveUpdates(_0x5b12da,_0x1b7f3d){return function(_0x1eb779){if(_0x1eb779){return _0x1eb779[_0x5b83('0x27')](_0x5b12da)[_0x5b83('0x28')](function(_0x31c3e4){return _0x31c3e4;});}return null;};}function removeEntity(_0x4c1faf,_0x1e869d){return function(_0x56c1a6){if(_0x56c1a6){return _0x56c1a6['destroy']()[_0x5b83('0x28')](function(){_0x4c1faf[_0x5b83('0x1c')](0xcc)[_0x5b83('0x1d')]();});}};}function handleEntityNotFound(_0x25cc76,_0x5f4942){return function(_0x3a2feb){if(!_0x3a2feb){_0x25cc76[_0x5b83('0x1b')](0x194);}return _0x3a2feb;};}function handleError(_0x3b26a3,_0x3f2599){_0x3f2599=_0x3f2599||0x1f4;return function(_0x33564e){logger[_0x5b83('0x29')](_0x33564e['stack']);if(_0x33564e[_0x5b83('0x2a')]){delete _0x33564e['name'];}_0x3b26a3['status'](_0x3f2599)[_0x5b83('0x2b')](_0x33564e);};}exports[_0x5b83('0x2c')]=function(_0x123b25,_0x1dab7b){var _0xf1904d={},_0xdaff2b={},_0x2e9c8c={'count':0x0,'rows':[]};var _0x386a2f=_[_0x5b83('0x2d')](db['VtigerAccount'][_0x5b83('0x2e')],function(_0x3ec9a9){return{'name':_0x3ec9a9['fieldName'],'type':_0x3ec9a9[_0x5b83('0x2f')]['key']};});_0xdaff2b[_0x5b83('0x30')]=_[_0x5b83('0x2d')](_0x386a2f,_0x5b83('0x2a'));_0xdaff2b['query']=_['keys'](_0x123b25[_0x5b83('0x31')]);_0xdaff2b[_0x5b83('0x32')]=_[_0x5b83('0x33')](_0xdaff2b[_0x5b83('0x30')],_0xdaff2b[_0x5b83('0x31')]);_0xf1904d[_0x5b83('0x34')]=_[_0x5b83('0x33')](_0xdaff2b[_0x5b83('0x30')],qs[_0x5b83('0x35')](_0x123b25[_0x5b83('0x31')][_0x5b83('0x35')]));_0xf1904d['attributes']=_0xf1904d['attributes'][_0x5b83('0x36')]?_0xf1904d[_0x5b83('0x34')]:_0xdaff2b['model'];if(!_0x123b25[_0x5b83('0x31')]['hasOwnProperty'](_0x5b83('0x37'))){_0xf1904d[_0x5b83('0x21')]=qs[_0x5b83('0x21')](_0x123b25['query'][_0x5b83('0x21')]);_0xf1904d['offset']=qs[_0x5b83('0x1f')](_0x123b25[_0x5b83('0x31')][_0x5b83('0x1f')]);}_0xf1904d[_0x5b83('0x38')]=qs[_0x5b83('0x39')](_0x123b25[_0x5b83('0x31')]['sort']);_0xf1904d['where']=qs[_0x5b83('0x32')](_[_0x5b83('0x3a')](_0x123b25[_0x5b83('0x31')],_0xdaff2b['filters']),_0x386a2f);if(_0x123b25[_0x5b83('0x31')][_0x5b83('0x3b')]){_0xf1904d[_0x5b83('0x3c')]=_['merge'](_0xf1904d[_0x5b83('0x3c')],{'$or':_[_0x5b83('0x2d')](_0x386a2f,function(_0xa9881c){if(_0xa9881c['type']!==_0x5b83('0x3d')){var _0x17dc58={};_0x17dc58[_0xa9881c[_0x5b83('0x2a')]]={'$like':'%'+_0x123b25[_0x5b83('0x31')][_0x5b83('0x3b')]+'%'};return _0x17dc58;}})});}_0xf1904d=_['merge']({},_0xf1904d,_0x123b25['options']);var _0x43784e={'where':_0xf1904d[_0x5b83('0x3c')]};return db[_0x5b83('0x3e')]['count'](_0x43784e)['then'](function(_0x597cf3){_0x2e9c8c[_0x5b83('0x22')]=_0x597cf3;if(_0x123b25[_0x5b83('0x31')][_0x5b83('0x3f')]){_0xf1904d[_0x5b83('0x40')]=[{'all':!![]}];}return db[_0x5b83('0x3e')][_0x5b83('0x41')](_0xf1904d);})[_0x5b83('0x28')](function(_0x3e77a2){_0x2e9c8c[_0x5b83('0x42')]=_0x3e77a2;return _0x2e9c8c;})[_0x5b83('0x28')](respondWithFilteredResult(_0x1dab7b,_0xf1904d))['catch'](handleError(_0x1dab7b,null));};exports[_0x5b83('0x43')]=function(_0x4e69f7,_0x12c097){var _0x4a0225={'raw':![],'where':{'id':_0x4e69f7[_0x5b83('0x44')]['id']}},_0x24639f={};_0x24639f[_0x5b83('0x30')]=_[_0x5b83('0x45')](db[_0x5b83('0x3e')][_0x5b83('0x2e')]);_0x24639f['query']=_[_0x5b83('0x45')](_0x4e69f7['query']);_0x24639f[_0x5b83('0x32')]=_[_0x5b83('0x33')](_0x24639f[_0x5b83('0x30')],_0x24639f[_0x5b83('0x31')]);_0x4a0225['attributes']=_[_0x5b83('0x33')](_0x24639f[_0x5b83('0x30')],qs[_0x5b83('0x35')](_0x4e69f7[_0x5b83('0x31')][_0x5b83('0x35')]));_0x4a0225[_0x5b83('0x34')]=_0x4a0225['attributes'][_0x5b83('0x36')]?_0x4a0225[_0x5b83('0x34')]:_0x24639f['model'];if(_0x4e69f7['query'][_0x5b83('0x3f')]){_0x4a0225[_0x5b83('0x40')]=[{'all':!![]}];}_0x4a0225=_['merge']({},_0x4a0225,_0x4e69f7[_0x5b83('0x46')]);return db[_0x5b83('0x3e')]['find'](_0x4a0225)[_0x5b83('0x28')](handleEntityNotFound(_0x12c097,null))['then'](respondWithResult(_0x12c097,null))[_0x5b83('0x47')](handleError(_0x12c097,null));};exports[_0x5b83('0x48')]=function(_0x111199,_0x2610e5){return db[_0x5b83('0x3e')][_0x5b83('0x48')](_0x111199[_0x5b83('0x49')],{})[_0x5b83('0x28')](respondWithResult(_0x2610e5,0xc9))['catch'](handleError(_0x2610e5,null));};exports[_0x5b83('0x27')]=function(_0x100b3f,_0x5ce461){if(_0x100b3f[_0x5b83('0x49')]['id']){delete _0x100b3f[_0x5b83('0x49')]['id'];}return db[_0x5b83('0x3e')][_0x5b83('0x4a')]({'where':{'id':_0x100b3f['params']['id']}})[_0x5b83('0x28')](handleEntityNotFound(_0x5ce461,null))[_0x5b83('0x28')](saveUpdates(_0x100b3f[_0x5b83('0x49')],null))[_0x5b83('0x28')](respondWithResult(_0x5ce461,null))[_0x5b83('0x47')](handleError(_0x5ce461,null));};exports[_0x5b83('0x4b')]=function(_0x546d30,_0x447786){return db[_0x5b83('0x3e')][_0x5b83('0x4a')]({'where':{'id':_0x546d30['params']['id']}})['then'](handleEntityNotFound(_0x447786,null))[_0x5b83('0x28')](removeEntity(_0x447786,null))['catch'](handleError(_0x447786,null));};exports[_0x5b83('0x4c')]=function(_0x3a0afb,_0x234479,_0x4bfe59){var _0x869df={};var _0x368636={};var _0x4d0fb6;var _0x65d03c;return db[_0x5b83('0x3e')][_0x5b83('0x4d')]({'where':{'id':_0x3a0afb['params']['id']}})[_0x5b83('0x28')](handleEntityNotFound(_0x234479,null))['then'](function(_0x5cfa35){if(_0x5cfa35){_0x4d0fb6=_0x5cfa35;_0x368636[_0x5b83('0x30')]=_[_0x5b83('0x45')](db[_0x5b83('0x4e')][_0x5b83('0x2e')]);_0x368636[_0x5b83('0x31')]=_[_0x5b83('0x45')](_0x3a0afb[_0x5b83('0x31')]);_0x368636[_0x5b83('0x32')]=_['intersection'](_0x368636[_0x5b83('0x30')],_0x368636[_0x5b83('0x31')]);_0x869df[_0x5b83('0x34')]=_[_0x5b83('0x33')](_0x368636[_0x5b83('0x30')],qs[_0x5b83('0x35')](_0x3a0afb['query']['fields']));_0x869df[_0x5b83('0x34')]=_0x869df[_0x5b83('0x34')][_0x5b83('0x36')]?_0x869df[_0x5b83('0x34')]:_0x368636['model'];_0x869df['order']=qs[_0x5b83('0x39')](_0x3a0afb[_0x5b83('0x31')][_0x5b83('0x39')]);_0x869df['where']=qs[_0x5b83('0x32')](_[_0x5b83('0x3a')](_0x3a0afb[_0x5b83('0x31')],_0x368636['filters']));if(_0x3a0afb[_0x5b83('0x31')][_0x5b83('0x3b')]){_0x869df[_0x5b83('0x3c')]=_[_0x5b83('0x4f')](_0x869df[_0x5b83('0x3c')],{'$or':_['map'](_0x869df[_0x5b83('0x34')],function(_0x12dbd){var _0x299a13={};_0x299a13[_0x12dbd]={'$like':'%'+_0x3a0afb[_0x5b83('0x31')][_0x5b83('0x3b')]+'%'};return _0x299a13;})});}_0x869df=_[_0x5b83('0x4f')]({},_0x869df,_0x3a0afb['options']);return _0x4d0fb6[_0x5b83('0x4c')](_0x869df);}})[_0x5b83('0x28')](function(_0x2b7619){if(_0x2b7619){_0x65d03c=_0x2b7619[_0x5b83('0x36')];if(!_0x3a0afb[_0x5b83('0x31')][_0x5b83('0x50')]('nolimit')){_0x869df['limit']=qs[_0x5b83('0x21')](_0x3a0afb[_0x5b83('0x31')]['limit']);_0x869df[_0x5b83('0x1f')]=qs['offset'](_0x3a0afb[_0x5b83('0x31')]['offset']);}return _0x4d0fb6[_0x5b83('0x4c')](_0x869df);}})[_0x5b83('0x28')](function(_0x7687bb){if(_0x7687bb){return _0x7687bb?{'count':_0x65d03c,'rows':_0x7687bb}:null;}})[_0x5b83('0x28')](respondWithResult(_0x234479,null))[_0x5b83('0x47')](handleError(_0x234479,null));};exports[_0x5b83('0x51')]=function(_0x379160,_0x465358,_0x1fe98f){if(_0x379160['body']['id']){delete _0x379160[_0x5b83('0x49')]['id'];}return db[_0x5b83('0x3e')][_0x5b83('0x4d')]({'where':{'id':_0x379160[_0x5b83('0x44')]['id']}})['then'](handleEntityNotFound(_0x465358,null))[_0x5b83('0x28')](function(_0x32f1d6){if(_0x32f1d6){_0x379160[_0x5b83('0x49')][_0x5b83('0x52')]=_0x32f1d6['id'];_0x379160[_0x5b83('0x49')][_0x5b83('0x53')]=integrations[_0x5b83('0x54')](_0x379160['body']['channel'],_0x379160[_0x5b83('0x49')][_0x5b83('0x2f')]);_0x379160[_0x5b83('0x49')]['Descriptions']=integrations[_0x5b83('0x55')](_0x379160['body'][_0x5b83('0x56')],_0x379160[_0x5b83('0x49')][_0x5b83('0x2f')]);return db[_0x5b83('0x4e')]['create'](_0x379160[_0x5b83('0x49')],{'include':[{'model':db['VtigerField'],'as':_0x5b83('0x53')},{'model':db['VtigerField'],'as':_0x5b83('0x57')}]});}return null;})[_0x5b83('0x28')](respondWithResult(_0x465358,null))[_0x5b83('0x47')](handleError(_0x465358,null));};var md5=require(_0x5b83('0x58'));exports['getFields']=function(_0x26ce2a,_0x49790e,_0x4788d0){var _0x380171=null;var _0x3353d7=null;var _0x73359e=null;var _0x56b289=null;var _0x5910d0='';return db[_0x5b83('0x3e')][_0x5b83('0x4d')]({'where':{'id':_0x26ce2a[_0x5b83('0x44')]['id']},'attributes':['id',_0x5b83('0x2a'),_0x5b83('0x59'),_0x5b83('0x5a'),'moduleName',_0x5b83('0x5b'),_0x5b83('0x5c'),_0x5b83('0x5d')]})[_0x5b83('0x28')](handleEntityNotFound(_0x49790e,null))[_0x5b83('0x28')](function(_0x35d1da){if(_0x35d1da){_0x380171=_0x35d1da['username'];_0x3353d7=_0x35d1da[_0x5b83('0x5d')];_0x73359e=_0x35d1da[_0x5b83('0x5e')];_0x5910d0=_0x35d1da['remoteUri'];var _0x510959=_0x5910d0[_0x5b83('0x5f')](-0x1);if(_0x510959==='/'){_0x5910d0=_0x5910d0[_0x5b83('0x60')](0x0,_0x5910d0['lastIndexOf'](_0x510959));}_0x56b289=util[_0x5b83('0x61')]('%s/webservice.php',_0x5910d0);var _0x4fcc2b={'method':_0x5b83('0x62'),'uri':_0x56b289,'qs':{'operation':_0x5b83('0x63'),'username':_0x35d1da[_0x5b83('0x59')]},'json':!![]};return rp(_0x4fcc2b);}})[_0x5b83('0x28')](function(_0x41f34f){if(_0x41f34f[_0x5b83('0x64')]){var _0x3c82a={'method':_0x5b83('0x65'),'uri':_0x56b289,'form':{'operation':_0x5b83('0x66'),'username':_0x380171,'accessKey':md5(_0x41f34f[_0x5b83('0x67')][_0x5b83('0x68')]+_0x3353d7)},'json':!![]};return rp(_0x3c82a);}})[_0x5b83('0x28')](function(_0x36fb8a){if(_0x36fb8a[_0x5b83('0x64')]){var _0x3c3953={'method':_0x5b83('0x62'),'uri':_0x56b289,'qs':{'operation':_0x5b83('0x69'),'username':_0x380171,'sessionName':_0x36fb8a[_0x5b83('0x67')]['sessionName'],'elementType':_0x73359e},'json':!![]};return rp(_0x3c3953);}})['then'](function(_0x18f21c){if(_0x18f21c[_0x5b83('0x64')]){var _0x5283ac=['autogenerated',_0x5b83('0x6a'),'owner'];_[_0x5b83('0x6b')](_0x18f21c['result'][_0x5b83('0x35')],function(_0x3f1392){return _0x5283ac[_0x5b83('0x6c')](_0x3f1392[_0x5b83('0x2f')]['name']);});_['remove'](_0x18f21c[_0x5b83('0x67')][_0x5b83('0x35')],function(_0x21432b){return _0x21432b['editable']===_0x5b83('0x6d');});return{'count':_0x18f21c[_0x5b83('0x67')][_0x5b83('0x35')][_0x5b83('0x36')],'rows':_[_0x5b83('0x2d')](_0x18f21c['result']['fields'],function(_0x33042f){return{'id':_0x33042f['name'],'name':_0x33042f[_0x5b83('0x6e')],'custom':_[_0x5b83('0x6f')](_0x33042f[_0x5b83('0x2a')],'cf_')?!![]:![],'options':_0x33042f[_0x5b83('0x2f')][_0x5b83('0x2a')]==='picklist'&&_0x33042f[_0x5b83('0x2f')][_0x5b83('0x70')][_0x5b83('0x36')]>0x0?_['map'](_0x33042f[_0x5b83('0x2f')][_0x5b83('0x70')],function(_0x173224){return{'name':_0x173224[_0x5b83('0x6e')],'value':_0x173224[_0x5b83('0x71')]};}):[]};})};}})[_0x5b83('0x28')](respondWithResult(_0x49790e,null))[_0x5b83('0x47')](function(_0x1ff033){console[_0x5b83('0x72')]('vTiger\x20error:\x20'+_0x1ff033);var _0x40369c=_0x26ce2a[_0x5b83('0x31')][_0x5b83('0x73')]?0x1f4:_0x1ff033[_0x5b83('0x74')]||0x1f4;logger[_0x5b83('0x29')]('getFields,\x20%s,\x20%s,\x20%s',_0x5b83('0x75'),_0x40369c,JSON[_0x5b83('0x76')](_0x1ff033));delete _0x1ff033[_0x5b83('0x2a')];if(_0x40369c===0x191){_0x40369c=0x190;}_0x49790e[_0x5b83('0x1c')](_0x40369c)[_0x5b83('0x2b')](_0x26ce2a['query']['test']?{'message':'Wrong\x20credentials','statusCode':_0x1ff033['statusCode']}:_0x1ff033);});};