1e1c9615acf2703b774ca493240a720bbb14b751
[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 _0x9ad0=['remove','includes','editable','false','result','label','picklist','picklistValues','value','vTiger\x20error:\x20','test','stringify','send','statusCode','eml-format','fast-json-patch','request-promise','bluebird','util','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','Content-Range','update','then','destroy','end','error','name','index','map','VtigerAccount','rawAttributes','fieldName','key','model','query','intersection','fields','length','attributes','nolimit','sort','where','filters','pick','merge','type','VIRTUAL','filter','includeAll','findAll','show','params','keys','include','options','find','create','body','catch','getConfigurations','findOne','order','hasOwnProperty','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','VtigerConfiguration','VtigerField','md5','getFields','moduleName','remoteUri','serverUrl','accessKey','username','slice','substring','lastIndexOf','format','%s/webservice.php','getchallenge','success','POST','login','token','GET','describe','sessionName','autogenerated'];(function(_0x4d1101,_0x415b12){var _0x4fe135=function(_0x2266c1){while(--_0x2266c1){_0x4d1101['push'](_0x4d1101['shift']());}};_0x4fe135(++_0x415b12);}(_0x9ad0,0xf0));var _0x09ad=function(_0x1e1a42,_0x2b3c46){_0x1e1a42=_0x1e1a42-0x0;var _0x43d5de=_0x9ad0[_0x1e1a42];return _0x43d5de;};'use strict';var emlformat=require(_0x09ad('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x09ad('0x1'));var rp=require(_0x09ad('0x2'));var moment=require('moment');var BPromise=require(_0x09ad('0x3'));var Mustache=require('mustache');var util=require(_0x09ad('0x4'));var path=require('path');var sox=require(_0x09ad('0x5'));var csv=require(_0x09ad('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x09ad('0x7'));var squel=require(_0x09ad('0x8'));var crypto=require('crypto');var jsforce=require(_0x09ad('0x9'));var deskjs=require(_0x09ad('0xa'));var toCsv=require('to-csv');var querystring=require(_0x09ad('0xb'));var Papa=require(_0x09ad('0xc'));var Redis=require(_0x09ad('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x09ad('0xe'));var logger=require(_0x09ad('0xf'))(_0x09ad('0x10'));var utils=require(_0x09ad('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x09ad('0x12'));var db=require(_0x09ad('0x13'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x59cf0f,_0xdc9be8){_0xdc9be8=_0xdc9be8||0xcc;return function(_0x41b011){if(_0x41b011){return _0x59cf0f[_0x09ad('0x14')](_0xdc9be8);}return _0x59cf0f[_0x09ad('0x15')](_0xdc9be8)['end']();};}function respondWithResult(_0x50049d,_0x3da0e0){_0x3da0e0=_0x3da0e0||0xc8;return function(_0x57c7fd){if(_0x57c7fd){return _0x50049d['status'](_0x3da0e0)[_0x09ad('0x16')](_0x57c7fd);}};}function respondWithFilteredResult(_0x1a6234,_0x1a0121){return function(_0x397da9){if(_0x397da9){var _0x5a8ac3=typeof _0x1a0121[_0x09ad('0x17')]==='undefined'&&typeof _0x1a0121['limit']===_0x09ad('0x18');var _0xb8b2c5=_0x397da9[_0x09ad('0x19')];var _0x42e0a2=_0x5a8ac3?0x0:_0x1a0121['offset'];var _0x288f75=_0x5a8ac3?_0x397da9['count']:_0x1a0121[_0x09ad('0x17')]+_0x1a0121[_0x09ad('0x1a')];var _0x24707f;if(_0x288f75>=_0xb8b2c5){_0x288f75=_0xb8b2c5;_0x24707f=0xc8;}else{_0x24707f=0xce;}_0x1a6234[_0x09ad('0x15')](_0x24707f);return _0x1a6234['set'](_0x09ad('0x1b'),_0x42e0a2+'-'+_0x288f75+'/'+_0xb8b2c5)['json'](_0x397da9);}return null;};}function patchUpdates(_0xd7bc8d){return function(_0x3d6dbb){try{jsonpatch['apply'](_0x3d6dbb,_0xd7bc8d,!![]);}catch(_0x18f24c){return BPromise['reject'](_0x18f24c);}return _0x3d6dbb['save']();};}function saveUpdates(_0x25f3d6,_0x3ca44f){return function(_0x38161f){if(_0x38161f){return _0x38161f[_0x09ad('0x1c')](_0x25f3d6)[_0x09ad('0x1d')](function(_0x2554d1){return _0x2554d1;});}return null;};}function removeEntity(_0x207853,_0x383068){return function(_0x44b2cd){if(_0x44b2cd){return _0x44b2cd[_0x09ad('0x1e')]()[_0x09ad('0x1d')](function(){_0x207853[_0x09ad('0x15')](0xcc)[_0x09ad('0x1f')]();});}};}function handleEntityNotFound(_0x2898d2,_0x53f316){return function(_0x550ae0){if(!_0x550ae0){_0x2898d2['sendStatus'](0x194);}return _0x550ae0;};}function handleError(_0x431b7d,_0xd2b6a4){_0xd2b6a4=_0xd2b6a4||0x1f4;return function(_0x27b6fd){logger[_0x09ad('0x20')](_0x27b6fd['stack']);if(_0x27b6fd[_0x09ad('0x21')]){delete _0x27b6fd[_0x09ad('0x21')];}_0x431b7d[_0x09ad('0x15')](_0xd2b6a4)['send'](_0x27b6fd);};}exports[_0x09ad('0x22')]=function(_0x112373,_0x545cf8){var _0x1a8ee8={},_0x29c885={},_0x355ec7={'count':0x0,'rows':[]};var _0x529487=_[_0x09ad('0x23')](db[_0x09ad('0x24')][_0x09ad('0x25')],function(_0x211def){return{'name':_0x211def[_0x09ad('0x26')],'type':_0x211def['type'][_0x09ad('0x27')]};});_0x29c885[_0x09ad('0x28')]=_[_0x09ad('0x23')](_0x529487,_0x09ad('0x21'));_0x29c885[_0x09ad('0x29')]=_['keys'](_0x112373['query']);_0x29c885['filters']=_[_0x09ad('0x2a')](_0x29c885[_0x09ad('0x28')],_0x29c885[_0x09ad('0x29')]);_0x1a8ee8['attributes']=_['intersection'](_0x29c885['model'],qs[_0x09ad('0x2b')](_0x112373[_0x09ad('0x29')][_0x09ad('0x2b')]));_0x1a8ee8['attributes']=_0x1a8ee8['attributes'][_0x09ad('0x2c')]?_0x1a8ee8[_0x09ad('0x2d')]:_0x29c885[_0x09ad('0x28')];if(!_0x112373[_0x09ad('0x29')]['hasOwnProperty'](_0x09ad('0x2e'))){_0x1a8ee8[_0x09ad('0x1a')]=qs[_0x09ad('0x1a')](_0x112373[_0x09ad('0x29')][_0x09ad('0x1a')]);_0x1a8ee8['offset']=qs[_0x09ad('0x17')](_0x112373['query'][_0x09ad('0x17')]);}_0x1a8ee8['order']=qs[_0x09ad('0x2f')](_0x112373[_0x09ad('0x29')][_0x09ad('0x2f')]);_0x1a8ee8[_0x09ad('0x30')]=qs[_0x09ad('0x31')](_[_0x09ad('0x32')](_0x112373['query'],_0x29c885[_0x09ad('0x31')]),_0x529487);if(_0x112373[_0x09ad('0x29')]['filter']){_0x1a8ee8[_0x09ad('0x30')]=_[_0x09ad('0x33')](_0x1a8ee8[_0x09ad('0x30')],{'$or':_[_0x09ad('0x23')](_0x529487,function(_0x27f983){if(_0x27f983[_0x09ad('0x34')]!==_0x09ad('0x35')){var _0x472cee={};_0x472cee[_0x27f983[_0x09ad('0x21')]]={'$like':'%'+_0x112373['query'][_0x09ad('0x36')]+'%'};return _0x472cee;}})});}_0x1a8ee8=_['merge']({},_0x1a8ee8,_0x112373['options']);var _0x443ded={'where':_0x1a8ee8[_0x09ad('0x30')]};return db[_0x09ad('0x24')][_0x09ad('0x19')](_0x443ded)[_0x09ad('0x1d')](function(_0x222583){_0x355ec7['count']=_0x222583;if(_0x112373['query'][_0x09ad('0x37')]){_0x1a8ee8['include']=[{'all':!![]}];}return db[_0x09ad('0x24')][_0x09ad('0x38')](_0x1a8ee8);})[_0x09ad('0x1d')](function(_0x4ee80f){_0x355ec7['rows']=_0x4ee80f;return _0x355ec7;})[_0x09ad('0x1d')](respondWithFilteredResult(_0x545cf8,_0x1a8ee8))['catch'](handleError(_0x545cf8,null));};exports[_0x09ad('0x39')]=function(_0x96f0e8,_0x2c6cb7){var _0x2558cb={'raw':![],'where':{'id':_0x96f0e8[_0x09ad('0x3a')]['id']}},_0x28ec4f={};_0x28ec4f['model']=_[_0x09ad('0x3b')](db['VtigerAccount'][_0x09ad('0x25')]);_0x28ec4f['query']=_['keys'](_0x96f0e8['query']);_0x28ec4f[_0x09ad('0x31')]=_[_0x09ad('0x2a')](_0x28ec4f[_0x09ad('0x28')],_0x28ec4f[_0x09ad('0x29')]);_0x2558cb['attributes']=_[_0x09ad('0x2a')](_0x28ec4f[_0x09ad('0x28')],qs['fields'](_0x96f0e8[_0x09ad('0x29')][_0x09ad('0x2b')]));_0x2558cb[_0x09ad('0x2d')]=_0x2558cb[_0x09ad('0x2d')][_0x09ad('0x2c')]?_0x2558cb[_0x09ad('0x2d')]:_0x28ec4f['model'];if(_0x96f0e8[_0x09ad('0x29')][_0x09ad('0x37')]){_0x2558cb[_0x09ad('0x3c')]=[{'all':!![]}];}_0x2558cb=_[_0x09ad('0x33')]({},_0x2558cb,_0x96f0e8[_0x09ad('0x3d')]);return db[_0x09ad('0x24')][_0x09ad('0x3e')](_0x2558cb)[_0x09ad('0x1d')](handleEntityNotFound(_0x2c6cb7,null))[_0x09ad('0x1d')](respondWithResult(_0x2c6cb7,null))['catch'](handleError(_0x2c6cb7,null));};exports[_0x09ad('0x3f')]=function(_0x586076,_0x6c7ea5){return db[_0x09ad('0x24')][_0x09ad('0x3f')](_0x586076[_0x09ad('0x40')],{})[_0x09ad('0x1d')](respondWithResult(_0x6c7ea5,0xc9))[_0x09ad('0x41')](handleError(_0x6c7ea5,null));};exports['update']=function(_0x219d16,_0x55d0c2){if(_0x219d16['body']['id']){delete _0x219d16[_0x09ad('0x40')]['id'];}return db['VtigerAccount'][_0x09ad('0x3e')]({'where':{'id':_0x219d16[_0x09ad('0x3a')]['id']}})[_0x09ad('0x1d')](handleEntityNotFound(_0x55d0c2,null))[_0x09ad('0x1d')](saveUpdates(_0x219d16[_0x09ad('0x40')],null))[_0x09ad('0x1d')](respondWithResult(_0x55d0c2,null))['catch'](handleError(_0x55d0c2,null));};exports[_0x09ad('0x1e')]=function(_0x299428,_0x5444dd){return db[_0x09ad('0x24')][_0x09ad('0x3e')]({'where':{'id':_0x299428[_0x09ad('0x3a')]['id']}})[_0x09ad('0x1d')](handleEntityNotFound(_0x5444dd,null))[_0x09ad('0x1d')](removeEntity(_0x5444dd,null))[_0x09ad('0x41')](handleError(_0x5444dd,null));};exports[_0x09ad('0x42')]=function(_0x464b9b,_0x404a3f,_0x212c15){var _0x14f297={};var _0x425a5c={};var _0x4465b1;var _0x2bb807;return db[_0x09ad('0x24')][_0x09ad('0x43')]({'where':{'id':_0x464b9b['params']['id']}})[_0x09ad('0x1d')](handleEntityNotFound(_0x404a3f,null))[_0x09ad('0x1d')](function(_0x1d496d){if(_0x1d496d){_0x4465b1=_0x1d496d;_0x425a5c[_0x09ad('0x28')]=_[_0x09ad('0x3b')](db['VtigerConfiguration'][_0x09ad('0x25')]);_0x425a5c[_0x09ad('0x29')]=_[_0x09ad('0x3b')](_0x464b9b[_0x09ad('0x29')]);_0x425a5c[_0x09ad('0x31')]=_[_0x09ad('0x2a')](_0x425a5c[_0x09ad('0x28')],_0x425a5c[_0x09ad('0x29')]);_0x14f297[_0x09ad('0x2d')]=_[_0x09ad('0x2a')](_0x425a5c[_0x09ad('0x28')],qs['fields'](_0x464b9b['query']['fields']));_0x14f297['attributes']=_0x14f297[_0x09ad('0x2d')][_0x09ad('0x2c')]?_0x14f297[_0x09ad('0x2d')]:_0x425a5c['model'];_0x14f297[_0x09ad('0x44')]=qs[_0x09ad('0x2f')](_0x464b9b[_0x09ad('0x29')]['sort']);_0x14f297[_0x09ad('0x30')]=qs[_0x09ad('0x31')](_[_0x09ad('0x32')](_0x464b9b['query'],_0x425a5c[_0x09ad('0x31')]));if(_0x464b9b[_0x09ad('0x29')][_0x09ad('0x36')]){_0x14f297[_0x09ad('0x30')]=_[_0x09ad('0x33')](_0x14f297[_0x09ad('0x30')],{'$or':_[_0x09ad('0x23')](_0x14f297[_0x09ad('0x2d')],function(_0x27f7c2){var _0x21f0de={};_0x21f0de[_0x27f7c2]={'$like':'%'+_0x464b9b[_0x09ad('0x29')]['filter']+'%'};return _0x21f0de;})});}_0x14f297=_['merge']({},_0x14f297,_0x464b9b[_0x09ad('0x3d')]);return _0x4465b1[_0x09ad('0x42')](_0x14f297);}})[_0x09ad('0x1d')](function(_0x16f40a){if(_0x16f40a){_0x2bb807=_0x16f40a[_0x09ad('0x2c')];if(!_0x464b9b[_0x09ad('0x29')][_0x09ad('0x45')](_0x09ad('0x2e'))){_0x14f297['limit']=qs[_0x09ad('0x1a')](_0x464b9b['query'][_0x09ad('0x1a')]);_0x14f297[_0x09ad('0x17')]=qs['offset'](_0x464b9b['query'][_0x09ad('0x17')]);}return _0x4465b1['getConfigurations'](_0x14f297);}})[_0x09ad('0x1d')](function(_0x2fe6bb){if(_0x2fe6bb){return _0x2fe6bb?{'count':_0x2bb807,'rows':_0x2fe6bb}:null;}})[_0x09ad('0x1d')](respondWithResult(_0x404a3f,null))[_0x09ad('0x41')](handleError(_0x404a3f,null));};exports[_0x09ad('0x46')]=function(_0x5b1817,_0x366d2f,_0x3b8282){if(_0x5b1817['body']['id']){delete _0x5b1817[_0x09ad('0x40')]['id'];}return db[_0x09ad('0x24')][_0x09ad('0x43')]({'where':{'id':_0x5b1817[_0x09ad('0x3a')]['id']}})[_0x09ad('0x1d')](handleEntityNotFound(_0x366d2f,null))[_0x09ad('0x1d')](function(_0x567e76){if(_0x567e76){_0x5b1817[_0x09ad('0x40')]['AccountId']=_0x567e76['id'];_0x5b1817[_0x09ad('0x40')][_0x09ad('0x47')]=integrations[_0x09ad('0x48')](_0x5b1817[_0x09ad('0x40')][_0x09ad('0x49')],_0x5b1817[_0x09ad('0x40')]['type']);_0x5b1817[_0x09ad('0x40')][_0x09ad('0x4a')]=integrations[_0x09ad('0x4b')](_0x5b1817[_0x09ad('0x40')][_0x09ad('0x49')],_0x5b1817[_0x09ad('0x40')][_0x09ad('0x34')]);return db[_0x09ad('0x4c')][_0x09ad('0x3f')](_0x5b1817[_0x09ad('0x40')],{'include':[{'model':db[_0x09ad('0x4d')],'as':_0x09ad('0x47')},{'model':db[_0x09ad('0x4d')],'as':_0x09ad('0x4a')}]});}return null;})['then'](respondWithResult(_0x366d2f,null))['catch'](handleError(_0x366d2f,null));};var md5=require(_0x09ad('0x4e'));exports[_0x09ad('0x4f')]=function(_0x4f057b,_0x225b6d,_0x2ccec4){var _0x278cdc=null;var _0x48c7f9=null;var _0x375f9f=null;var _0x31c683=null;var _0x1aba16='';return db[_0x09ad('0x24')][_0x09ad('0x43')]({'where':{'id':_0x4f057b[_0x09ad('0x3a')]['id']},'attributes':['id',_0x09ad('0x21'),'username','description',_0x09ad('0x50'),_0x09ad('0x51'),_0x09ad('0x52'),_0x09ad('0x53')]})[_0x09ad('0x1d')](handleEntityNotFound(_0x225b6d,null))[_0x09ad('0x1d')](function(_0x21088a){if(_0x21088a){_0x278cdc=_0x21088a[_0x09ad('0x54')];_0x48c7f9=_0x21088a[_0x09ad('0x53')];_0x375f9f=_0x21088a[_0x09ad('0x50')];_0x1aba16=_0x21088a[_0x09ad('0x51')];var _0xed273a=_0x1aba16[_0x09ad('0x55')](-0x1);if(_0xed273a==='/'){_0x1aba16=_0x1aba16[_0x09ad('0x56')](0x0,_0x1aba16[_0x09ad('0x57')](_0xed273a));}_0x31c683=util[_0x09ad('0x58')](_0x09ad('0x59'),_0x1aba16);var _0x331b36={'method':'GET','uri':_0x31c683,'qs':{'operation':_0x09ad('0x5a'),'username':_0x21088a[_0x09ad('0x54')]},'json':!![]};return rp(_0x331b36);}})['then'](function(_0x41bc28){if(_0x41bc28[_0x09ad('0x5b')]){var _0x107b07={'method':_0x09ad('0x5c'),'uri':_0x31c683,'form':{'operation':_0x09ad('0x5d'),'username':_0x278cdc,'accessKey':md5(_0x41bc28['result'][_0x09ad('0x5e')]+_0x48c7f9)},'json':!![]};return rp(_0x107b07);}})['then'](function(_0x450fc6){if(_0x450fc6[_0x09ad('0x5b')]){var _0x1b3697={'method':_0x09ad('0x5f'),'uri':_0x31c683,'qs':{'operation':_0x09ad('0x60'),'username':_0x278cdc,'sessionName':_0x450fc6['result'][_0x09ad('0x61')],'elementType':_0x375f9f},'json':!![]};return rp(_0x1b3697);}})[_0x09ad('0x1d')](function(_0x4d6445){if(_0x4d6445['success']){var _0x4f9838=[_0x09ad('0x62'),'reference','owner'];_[_0x09ad('0x63')](_0x4d6445['result'][_0x09ad('0x2b')],function(_0x295d4d){return _0x4f9838[_0x09ad('0x64')](_0x295d4d[_0x09ad('0x34')][_0x09ad('0x21')]);});_[_0x09ad('0x63')](_0x4d6445['result'][_0x09ad('0x2b')],function(_0x22e3ee){return _0x22e3ee[_0x09ad('0x65')]===_0x09ad('0x66');});return{'count':_0x4d6445[_0x09ad('0x67')][_0x09ad('0x2b')]['length'],'rows':_[_0x09ad('0x23')](_0x4d6445[_0x09ad('0x67')]['fields'],function(_0x25518c){return{'id':_0x25518c[_0x09ad('0x21')],'name':_0x25518c[_0x09ad('0x68')],'custom':_['startsWith'](_0x25518c['name'],'cf_')?!![]:![],'options':_0x25518c['type'][_0x09ad('0x21')]===_0x09ad('0x69')&&_0x25518c['type'][_0x09ad('0x6a')][_0x09ad('0x2c')]>0x0?_[_0x09ad('0x23')](_0x25518c[_0x09ad('0x34')][_0x09ad('0x6a')],function(_0x179e13){return{'name':_0x179e13['label'],'value':_0x179e13[_0x09ad('0x6b')]};}):[]};})};}})['then'](respondWithResult(_0x225b6d,null))[_0x09ad('0x41')](function(_0x37c773){console['log'](_0x09ad('0x6c')+_0x37c773);var _0x5a2b84=_0x4f057b['query'][_0x09ad('0x6d')]?0x1f4:_0x37c773['statusCode']||0x1f4;logger[_0x09ad('0x20')]('getFields,\x20%s,\x20%s,\x20%s',_0x09ad('0x4f'),_0x5a2b84,JSON[_0x09ad('0x6e')](_0x37c773));delete _0x37c773[_0x09ad('0x21')];if(_0x5a2b84===0x191){_0x5a2b84=0x190;}_0x225b6d[_0x09ad('0x15')](_0x5a2b84)[_0x09ad('0x6f')](_0x4f057b[_0x09ad('0x29')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x37c773[_0x09ad('0x70')]}:_0x37c773);});};