0f27fc6a34539699552479b9ca1f2ab78323499a
[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 _0x7c4e=['type','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','merge','filter','options','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','update','getConfigurations','findOne','VtigerConfiguration','rawAttributes','nolimit','addConfiguration','AccountId','getSubjects','channel','Descriptions','getDescriptions','VtigerField','md5','moduleName','remoteUri','serverUrl','username','accessKey','slice','substring','lastIndexOf','format','%s/webservice.php','GET','getchallenge','success','POST','login','result','describe','reference','owner','includes','remove','editable','false','cf_','picklist','picklistValues','label','value','log','statusCode','getFields','stringify','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','VtigerAccount','fieldName'];(function(_0x5c7921,_0x49b9fa){var _0x263a40=function(_0x38a3bc){while(--_0x38a3bc){_0x5c7921['push'](_0x5c7921['shift']());}};_0x263a40(++_0x49b9fa);}(_0x7c4e,0x1be));var _0xe7c4=function(_0x2dd429,_0x1e5d4e){_0x2dd429=_0x2dd429-0x0;var _0x386787=_0x7c4e[_0x2dd429];return _0x386787;};'use strict';var emlformat=require(_0xe7c4('0x0'));var rimraf=require(_0xe7c4('0x1'));var zipdir=require(_0xe7c4('0x2'));var jsonpatch=require(_0xe7c4('0x3'));var rp=require(_0xe7c4('0x4'));var moment=require('moment');var BPromise=require(_0xe7c4('0x5'));var Mustache=require(_0xe7c4('0x6'));var util=require(_0xe7c4('0x7'));var path=require(_0xe7c4('0x8'));var sox=require('sox');var csv=require(_0xe7c4('0x9'));var ejs=require(_0xe7c4('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe7c4('0xb'));var squel=require(_0xe7c4('0xc'));var crypto=require(_0xe7c4('0xd'));var jsforce=require(_0xe7c4('0xe'));var deskjs=require(_0xe7c4('0xf'));var toCsv=require(_0xe7c4('0x9'));var querystring=require(_0xe7c4('0x10'));var Papa=require(_0xe7c4('0x11'));var Redis=require('ioredis');var authService=require(_0xe7c4('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe7c4('0x13'));var logger=require(_0xe7c4('0x14'))(_0xe7c4('0x15'));var utils=require(_0xe7c4('0x16'));var config=require(_0xe7c4('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xe7c4('0x18'))['db'];var integrations=require(_0xe7c4('0x19'));function respondWithStatusCode(_0x4bd7a4,_0x230a92){_0x230a92=_0x230a92||0xcc;return function(_0x9db25){if(_0x9db25){return _0x4bd7a4['sendStatus'](_0x230a92);}return _0x4bd7a4[_0xe7c4('0x1a')](_0x230a92)[_0xe7c4('0x1b')]();};}function respondWithResult(_0x4ac12f,_0x344a03){_0x344a03=_0x344a03||0xc8;return function(_0x35f661){if(_0x35f661){return _0x4ac12f['status'](_0x344a03)[_0xe7c4('0x1c')](_0x35f661);}};}function respondWithFilteredResult(_0x156bc9,_0x455bbb){return function(_0x17641b){if(_0x17641b){var _0x4fcf2c=typeof _0x455bbb['offset']===_0xe7c4('0x1d')&&typeof _0x455bbb[_0xe7c4('0x1e')]===_0xe7c4('0x1d');var _0x1436b4=_0x17641b[_0xe7c4('0x1f')];var _0x34589e=_0x4fcf2c?0x0:_0x455bbb['offset'];var _0x4b549e=_0x4fcf2c?_0x17641b[_0xe7c4('0x1f')]:_0x455bbb[_0xe7c4('0x20')]+_0x455bbb['limit'];var _0x47011f;if(_0x4b549e>=_0x1436b4){_0x4b549e=_0x1436b4;_0x47011f=0xc8;}else{_0x47011f=0xce;}_0x156bc9['status'](_0x47011f);return _0x156bc9[_0xe7c4('0x21')](_0xe7c4('0x22'),_0x34589e+'-'+_0x4b549e+'/'+_0x1436b4)[_0xe7c4('0x1c')](_0x17641b);}return null;};}function patchUpdates(_0xde6d5f){return function(_0x2f9952){try{jsonpatch[_0xe7c4('0x23')](_0x2f9952,_0xde6d5f,!![]);}catch(_0x14942b){return BPromise[_0xe7c4('0x24')](_0x14942b);}return _0x2f9952[_0xe7c4('0x25')]();};}function saveUpdates(_0x58f994,_0x17e0ac){return function(_0x1cbe5c){if(_0x1cbe5c){return _0x1cbe5c['update'](_0x58f994)[_0xe7c4('0x26')](function(_0x4b3718){return _0x4b3718;});}return null;};}function removeEntity(_0x2ec680,_0x213118){return function(_0x25e286){if(_0x25e286){return _0x25e286[_0xe7c4('0x27')]()[_0xe7c4('0x26')](function(){_0x2ec680[_0xe7c4('0x1a')](0xcc)[_0xe7c4('0x1b')]();});}};}function handleEntityNotFound(_0x424bda,_0x1762d2){return function(_0x4fdb59){if(!_0x4fdb59){_0x424bda['sendStatus'](0x194);}return _0x4fdb59;};}function handleError(_0x966fa,_0x4280f1){_0x4280f1=_0x4280f1||0x1f4;return function(_0x55dd54){logger[_0xe7c4('0x28')](_0x55dd54[_0xe7c4('0x29')]);if(_0x55dd54['name']){delete _0x55dd54[_0xe7c4('0x2a')];}_0x966fa['status'](_0x4280f1)[_0xe7c4('0x2b')](_0x55dd54);};}exports['index']=function(_0x214999,_0x56964e){var _0x303b65={},_0x54ef51={},_0x23fda7={'count':0x0,'rows':[]};var _0x5d0a44=_['map'](db[_0xe7c4('0x2c')]['rawAttributes'],function(_0xc84555){return{'name':_0xc84555[_0xe7c4('0x2d')],'type':_0xc84555[_0xe7c4('0x2e')][_0xe7c4('0x2f')]};});_0x54ef51[_0xe7c4('0x30')]=_[_0xe7c4('0x31')](_0x5d0a44,_0xe7c4('0x2a'));_0x54ef51[_0xe7c4('0x32')]=_[_0xe7c4('0x33')](_0x214999[_0xe7c4('0x32')]);_0x54ef51[_0xe7c4('0x34')]=_[_0xe7c4('0x35')](_0x54ef51['model'],_0x54ef51[_0xe7c4('0x32')]);_0x303b65[_0xe7c4('0x36')]=_['intersection'](_0x54ef51[_0xe7c4('0x30')],qs[_0xe7c4('0x37')](_0x214999['query'][_0xe7c4('0x37')]));_0x303b65[_0xe7c4('0x36')]=_0x303b65[_0xe7c4('0x36')]['length']?_0x303b65[_0xe7c4('0x36')]:_0x54ef51['model'];if(!_0x214999[_0xe7c4('0x32')][_0xe7c4('0x38')]('nolimit')){_0x303b65[_0xe7c4('0x1e')]=qs['limit'](_0x214999[_0xe7c4('0x32')]['limit']);_0x303b65[_0xe7c4('0x20')]=qs[_0xe7c4('0x20')](_0x214999[_0xe7c4('0x32')][_0xe7c4('0x20')]);}_0x303b65[_0xe7c4('0x39')]=qs['sort'](_0x214999[_0xe7c4('0x32')][_0xe7c4('0x3a')]);_0x303b65[_0xe7c4('0x3b')]=qs[_0xe7c4('0x34')](_[_0xe7c4('0x3c')](_0x214999[_0xe7c4('0x32')],_0x54ef51[_0xe7c4('0x34')]),_0x5d0a44);if(_0x214999[_0xe7c4('0x32')]['filter']){_0x303b65[_0xe7c4('0x3b')]=_[_0xe7c4('0x3d')](_0x303b65[_0xe7c4('0x3b')],{'$or':_['map'](_0x5d0a44,function(_0x20acbf){if(_0x20acbf['type']!=='VIRTUAL'){var _0x3c74bc={};_0x3c74bc[_0x20acbf[_0xe7c4('0x2a')]]={'$like':'%'+_0x214999[_0xe7c4('0x32')][_0xe7c4('0x3e')]+'%'};return _0x3c74bc;}})});}_0x303b65=_[_0xe7c4('0x3d')]({},_0x303b65,_0x214999[_0xe7c4('0x3f')]);var _0xcb0e2c={'where':_0x303b65['where']};return db[_0xe7c4('0x2c')][_0xe7c4('0x1f')](_0xcb0e2c)[_0xe7c4('0x26')](function(_0x3b8b86){_0x23fda7[_0xe7c4('0x1f')]=_0x3b8b86;if(_0x214999[_0xe7c4('0x32')][_0xe7c4('0x40')]){_0x303b65[_0xe7c4('0x41')]=[{'all':!![]}];}return db[_0xe7c4('0x2c')][_0xe7c4('0x42')](_0x303b65);})[_0xe7c4('0x26')](function(_0x94e457){_0x23fda7[_0xe7c4('0x43')]=_0x94e457;return _0x23fda7;})[_0xe7c4('0x26')](respondWithFilteredResult(_0x56964e,_0x303b65))[_0xe7c4('0x44')](handleError(_0x56964e,null));};exports[_0xe7c4('0x45')]=function(_0xbd32d,_0xd17e14){var _0x5a1fee={'raw':![],'where':{'id':_0xbd32d[_0xe7c4('0x46')]['id']}},_0x1cdcb8={};_0x1cdcb8[_0xe7c4('0x30')]=_['keys'](db[_0xe7c4('0x2c')]['rawAttributes']);_0x1cdcb8[_0xe7c4('0x32')]=_[_0xe7c4('0x33')](_0xbd32d[_0xe7c4('0x32')]);_0x1cdcb8[_0xe7c4('0x34')]=_[_0xe7c4('0x35')](_0x1cdcb8[_0xe7c4('0x30')],_0x1cdcb8[_0xe7c4('0x32')]);_0x5a1fee[_0xe7c4('0x36')]=_[_0xe7c4('0x35')](_0x1cdcb8['model'],qs['fields'](_0xbd32d[_0xe7c4('0x32')][_0xe7c4('0x37')]));_0x5a1fee[_0xe7c4('0x36')]=_0x5a1fee['attributes'][_0xe7c4('0x47')]?_0x5a1fee[_0xe7c4('0x36')]:_0x1cdcb8[_0xe7c4('0x30')];if(_0xbd32d[_0xe7c4('0x32')][_0xe7c4('0x40')]){_0x5a1fee['include']=[{'all':!![]}];}_0x5a1fee=_['merge']({},_0x5a1fee,_0xbd32d[_0xe7c4('0x3f')]);return db[_0xe7c4('0x2c')][_0xe7c4('0x48')](_0x5a1fee)[_0xe7c4('0x26')](handleEntityNotFound(_0xd17e14,null))[_0xe7c4('0x26')](respondWithResult(_0xd17e14,null))['catch'](handleError(_0xd17e14,null));};exports[_0xe7c4('0x49')]=function(_0x33d924,_0x5ce963){return db[_0xe7c4('0x2c')][_0xe7c4('0x49')](_0x33d924[_0xe7c4('0x4a')],{})['then'](respondWithResult(_0x5ce963,0xc9))[_0xe7c4('0x44')](handleError(_0x5ce963,null));};exports[_0xe7c4('0x4b')]=function(_0x32a96d,_0xa34320){if(_0x32a96d[_0xe7c4('0x4a')]['id']){delete _0x32a96d[_0xe7c4('0x4a')]['id'];}return db[_0xe7c4('0x2c')][_0xe7c4('0x48')]({'where':{'id':_0x32a96d['params']['id']}})[_0xe7c4('0x26')](handleEntityNotFound(_0xa34320,null))['then'](saveUpdates(_0x32a96d[_0xe7c4('0x4a')],null))[_0xe7c4('0x26')](respondWithResult(_0xa34320,null))[_0xe7c4('0x44')](handleError(_0xa34320,null));};exports['destroy']=function(_0x52c541,_0x166d86){return db[_0xe7c4('0x2c')][_0xe7c4('0x48')]({'where':{'id':_0x52c541['params']['id']}})[_0xe7c4('0x26')](handleEntityNotFound(_0x166d86,null))[_0xe7c4('0x26')](removeEntity(_0x166d86,null))[_0xe7c4('0x44')](handleError(_0x166d86,null));};exports[_0xe7c4('0x4c')]=function(_0x3cd8e8,_0x3359d5,_0x10ca53){var _0x30c54b={};var _0x2613ab={};var _0x13cf8b;var _0x115b31;return db[_0xe7c4('0x2c')][_0xe7c4('0x4d')]({'where':{'id':_0x3cd8e8['params']['id']}})[_0xe7c4('0x26')](handleEntityNotFound(_0x3359d5,null))['then'](function(_0x22783a){if(_0x22783a){_0x13cf8b=_0x22783a;_0x2613ab[_0xe7c4('0x30')]=_[_0xe7c4('0x33')](db[_0xe7c4('0x4e')][_0xe7c4('0x4f')]);_0x2613ab[_0xe7c4('0x32')]=_['keys'](_0x3cd8e8[_0xe7c4('0x32')]);_0x2613ab['filters']=_[_0xe7c4('0x35')](_0x2613ab[_0xe7c4('0x30')],_0x2613ab[_0xe7c4('0x32')]);_0x30c54b[_0xe7c4('0x36')]=_[_0xe7c4('0x35')](_0x2613ab[_0xe7c4('0x30')],qs[_0xe7c4('0x37')](_0x3cd8e8[_0xe7c4('0x32')][_0xe7c4('0x37')]));_0x30c54b[_0xe7c4('0x36')]=_0x30c54b[_0xe7c4('0x36')][_0xe7c4('0x47')]?_0x30c54b[_0xe7c4('0x36')]:_0x2613ab[_0xe7c4('0x30')];_0x30c54b[_0xe7c4('0x39')]=qs[_0xe7c4('0x3a')](_0x3cd8e8[_0xe7c4('0x32')][_0xe7c4('0x3a')]);_0x30c54b[_0xe7c4('0x3b')]=qs[_0xe7c4('0x34')](_['pick'](_0x3cd8e8['query'],_0x2613ab[_0xe7c4('0x34')]));if(_0x3cd8e8['query'][_0xe7c4('0x3e')]){_0x30c54b['where']=_[_0xe7c4('0x3d')](_0x30c54b[_0xe7c4('0x3b')],{'$or':_[_0xe7c4('0x31')](_0x30c54b[_0xe7c4('0x36')],function(_0x56a5be){var _0x5599c5={};_0x5599c5[_0x56a5be]={'$like':'%'+_0x3cd8e8[_0xe7c4('0x32')][_0xe7c4('0x3e')]+'%'};return _0x5599c5;})});}_0x30c54b=_[_0xe7c4('0x3d')]({},_0x30c54b,_0x3cd8e8[_0xe7c4('0x3f')]);return _0x13cf8b[_0xe7c4('0x4c')](_0x30c54b);}})[_0xe7c4('0x26')](function(_0x3cc666){if(_0x3cc666){_0x115b31=_0x3cc666[_0xe7c4('0x47')];if(!_0x3cd8e8[_0xe7c4('0x32')]['hasOwnProperty'](_0xe7c4('0x50'))){_0x30c54b['limit']=qs[_0xe7c4('0x1e')](_0x3cd8e8[_0xe7c4('0x32')]['limit']);_0x30c54b['offset']=qs[_0xe7c4('0x20')](_0x3cd8e8[_0xe7c4('0x32')][_0xe7c4('0x20')]);}return _0x13cf8b['getConfigurations'](_0x30c54b);}})[_0xe7c4('0x26')](function(_0x499378){if(_0x499378){return _0x499378?{'count':_0x115b31,'rows':_0x499378}:null;}})[_0xe7c4('0x26')](respondWithResult(_0x3359d5,null))[_0xe7c4('0x44')](handleError(_0x3359d5,null));};exports[_0xe7c4('0x51')]=function(_0x44690c,_0x30243e,_0x30fcdc){if(_0x44690c[_0xe7c4('0x4a')]['id']){delete _0x44690c[_0xe7c4('0x4a')]['id'];}return db[_0xe7c4('0x2c')][_0xe7c4('0x4d')]({'where':{'id':_0x44690c[_0xe7c4('0x46')]['id']}})[_0xe7c4('0x26')](handleEntityNotFound(_0x30243e,null))[_0xe7c4('0x26')](function(_0x20f7a6){if(_0x20f7a6){_0x44690c[_0xe7c4('0x4a')][_0xe7c4('0x52')]=_0x20f7a6['id'];_0x44690c[_0xe7c4('0x4a')]['Subjects']=integrations[_0xe7c4('0x53')](_0x44690c[_0xe7c4('0x4a')][_0xe7c4('0x54')],_0x44690c[_0xe7c4('0x4a')][_0xe7c4('0x2e')]);_0x44690c[_0xe7c4('0x4a')][_0xe7c4('0x55')]=integrations[_0xe7c4('0x56')](_0x44690c[_0xe7c4('0x4a')]['channel'],_0x44690c[_0xe7c4('0x4a')]['type']);return db[_0xe7c4('0x4e')]['create'](_0x44690c[_0xe7c4('0x4a')],{'include':[{'model':db['VtigerField'],'as':'Subjects'},{'model':db[_0xe7c4('0x57')],'as':_0xe7c4('0x55')}]});}return null;})[_0xe7c4('0x26')](respondWithResult(_0x30243e,null))[_0xe7c4('0x44')](handleError(_0x30243e,null));};var md5=require(_0xe7c4('0x58'));exports['getFields']=function(_0x290ab2,_0x54a00b,_0x15b133){var _0x313e3b=null;var _0x2c0a5f=null;var _0x5b1f86=null;var _0x58cffd=null;var _0x4bbd91='';return db['VtigerAccount'][_0xe7c4('0x4d')]({'where':{'id':_0x290ab2[_0xe7c4('0x46')]['id']},'attributes':['id',_0xe7c4('0x2a'),'username','description',_0xe7c4('0x59'),_0xe7c4('0x5a'),_0xe7c4('0x5b'),'accessKey']})['then'](handleEntityNotFound(_0x54a00b,null))[_0xe7c4('0x26')](function(_0x3eb4c4){if(_0x3eb4c4){_0x313e3b=_0x3eb4c4[_0xe7c4('0x5c')];_0x2c0a5f=_0x3eb4c4[_0xe7c4('0x5d')];_0x5b1f86=_0x3eb4c4[_0xe7c4('0x59')];_0x4bbd91=_0x3eb4c4[_0xe7c4('0x5a')];var _0xd23f7a=_0x4bbd91[_0xe7c4('0x5e')](-0x1);if(_0xd23f7a==='/'){_0x4bbd91=_0x4bbd91[_0xe7c4('0x5f')](0x0,_0x4bbd91[_0xe7c4('0x60')](_0xd23f7a));}_0x58cffd=util[_0xe7c4('0x61')](_0xe7c4('0x62'),_0x4bbd91);var _0x248a44={'method':_0xe7c4('0x63'),'uri':_0x58cffd,'qs':{'operation':_0xe7c4('0x64'),'username':_0x3eb4c4['username']},'json':!![]};return rp(_0x248a44);}})[_0xe7c4('0x26')](function(_0x34eca8){if(_0x34eca8[_0xe7c4('0x65')]){var _0x1f607e={'method':_0xe7c4('0x66'),'uri':_0x58cffd,'form':{'operation':_0xe7c4('0x67'),'username':_0x313e3b,'accessKey':md5(_0x34eca8[_0xe7c4('0x68')]['token']+_0x2c0a5f)},'json':!![]};return rp(_0x1f607e);}})[_0xe7c4('0x26')](function(_0x20a5fb){if(_0x20a5fb['success']){var _0x2881dd={'method':_0xe7c4('0x63'),'uri':_0x58cffd,'qs':{'operation':_0xe7c4('0x69'),'username':_0x313e3b,'sessionName':_0x20a5fb['result']['sessionName'],'elementType':_0x5b1f86},'json':!![]};return rp(_0x2881dd);}})[_0xe7c4('0x26')](function(_0x518246){if(_0x518246['success']){var _0x542410=['autogenerated',_0xe7c4('0x6a'),_0xe7c4('0x6b')];_['remove'](_0x518246['result']['fields'],function(_0x1b33ac){return _0x542410[_0xe7c4('0x6c')](_0x1b33ac['type'][_0xe7c4('0x2a')]);});_[_0xe7c4('0x6d')](_0x518246['result'][_0xe7c4('0x37')],function(_0x5287e6){return _0x5287e6[_0xe7c4('0x6e')]===_0xe7c4('0x6f');});return{'count':_0x518246[_0xe7c4('0x68')]['fields'][_0xe7c4('0x47')],'rows':_['map'](_0x518246[_0xe7c4('0x68')][_0xe7c4('0x37')],function(_0x2f5c26){return{'id':_0x2f5c26['name'],'name':_0x2f5c26['label'],'custom':_['startsWith'](_0x2f5c26[_0xe7c4('0x2a')],_0xe7c4('0x70'))?!![]:![],'options':_0x2f5c26[_0xe7c4('0x2e')][_0xe7c4('0x2a')]===_0xe7c4('0x71')&&_0x2f5c26[_0xe7c4('0x2e')][_0xe7c4('0x72')]['length']>0x0?_[_0xe7c4('0x31')](_0x2f5c26[_0xe7c4('0x2e')][_0xe7c4('0x72')],function(_0x304ab0){return{'name':_0x304ab0[_0xe7c4('0x73')],'value':_0x304ab0[_0xe7c4('0x74')]};}):[]};})};}})['then'](respondWithResult(_0x54a00b,null))['catch'](function(_0x32f1ce){console[_0xe7c4('0x75')]('vTiger\x20error:\x20'+_0x32f1ce);var _0x5b6dea=_0x290ab2[_0xe7c4('0x32')]['test']?0x1f4:_0x32f1ce[_0xe7c4('0x76')]||0x1f4;logger[_0xe7c4('0x28')]('getFields,\x20%s,\x20%s,\x20%s',_0xe7c4('0x77'),_0x5b6dea,JSON[_0xe7c4('0x78')](_0x32f1ce));delete _0x32f1ce[_0xe7c4('0x2a')];if(_0x5b6dea===0x191){_0x5b6dea=0x190;}_0x54a00b[_0xe7c4('0x1a')](_0x5b6dea)[_0xe7c4('0x2b')](_0x290ab2[_0xe7c4('0x32')][_0xe7c4('0x79')]?{'message':_0xe7c4('0x7a'),'statusCode':_0x32f1ce[_0xe7c4('0x76')]}:_0x32f1ce);});};