3a59c63e2847539f81b3f57439f29c925125c41e
[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 _0x7d72=['channel','Descriptions','getDescriptions','VtigerConfiguration','VtigerField','md5','getFields','username','description','moduleName','serverUrl','accessKey','remoteUri','slice','substring','lastIndexOf','%s/webservice.php','GET','getchallenge','success','POST','login','result','token','describe','sessionName','autogenerated','owner','remove','includes','editable','false','label','startsWith','cf_','picklist','picklistValues','value','log','vTiger\x20error:\x20','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','rimraf','zip-dir','fast-json-patch','moment','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','undefined','limit','count','set','apply','reject','save','destroy','error','stack','name','index','map','VtigerAccount','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','then','include','findAll','rows','catch','show','includeAll','find','create','update','body','params','getConfigurations','findOne','addConfiguration','AccountId','Subjects','getSubjects'];(function(_0x383688,_0x3f1458){var _0x150102=function(_0xe88740){while(--_0xe88740){_0x383688['push'](_0x383688['shift']());}};_0x150102(++_0x3f1458);}(_0x7d72,0xa8));var _0x27d7=function(_0x277848,_0x204ca1){_0x277848=_0x277848-0x0;var _0x1c4dc4=_0x7d72[_0x277848];return _0x1c4dc4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x27d7('0x0'));var zipdir=require(_0x27d7('0x1'));var jsonpatch=require(_0x27d7('0x2'));var rp=require('request-promise');var moment=require(_0x27d7('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x27d7('0x4'));var path=require(_0x27d7('0x5'));var sox=require(_0x27d7('0x6'));var csv=require(_0x27d7('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x27d7('0x8'));var squel=require(_0x27d7('0x9'));var crypto=require(_0x27d7('0xa'));var jsforce=require(_0x27d7('0xb'));var deskjs=require(_0x27d7('0xc'));var toCsv=require(_0x27d7('0x7'));var querystring=require('querystring');var Papa=require(_0x27d7('0xd'));var Redis=require(_0x27d7('0xe'));var authService=require(_0x27d7('0xf'));var qs=require(_0x27d7('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x27d7('0x11'));var logger=require('../../config/logger')(_0x27d7('0x12'));var utils=require(_0x27d7('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x27d7('0x14'));var db=require(_0x27d7('0x15'))['db'];var integrations=require(_0x27d7('0x16'));function respondWithStatusCode(_0x2b93fa,_0x3746f4){_0x3746f4=_0x3746f4||0xcc;return function(_0x25b71e){if(_0x25b71e){return _0x2b93fa['sendStatus'](_0x3746f4);}return _0x2b93fa[_0x27d7('0x17')](_0x3746f4)[_0x27d7('0x18')]();};}function respondWithResult(_0x1bf1a4,_0x33bfb7){_0x33bfb7=_0x33bfb7||0xc8;return function(_0x30a57b){if(_0x30a57b){return _0x1bf1a4[_0x27d7('0x17')](_0x33bfb7)[_0x27d7('0x19')](_0x30a57b);}};}function respondWithFilteredResult(_0x4be6ab,_0x321445){return function(_0x476647){if(_0x476647){var _0x2eaad2=typeof _0x321445[_0x27d7('0x1a')]===_0x27d7('0x1b')&&typeof _0x321445[_0x27d7('0x1c')]===_0x27d7('0x1b');var _0xf68391=_0x476647[_0x27d7('0x1d')];var _0x5340c0=_0x2eaad2?0x0:_0x321445['offset'];var _0x549684=_0x2eaad2?_0x476647[_0x27d7('0x1d')]:_0x321445[_0x27d7('0x1a')]+_0x321445[_0x27d7('0x1c')];var _0x3c7ddc;if(_0x549684>=_0xf68391){_0x549684=_0xf68391;_0x3c7ddc=0xc8;}else{_0x3c7ddc=0xce;}_0x4be6ab[_0x27d7('0x17')](_0x3c7ddc);return _0x4be6ab[_0x27d7('0x1e')]('Content-Range',_0x5340c0+'-'+_0x549684+'/'+_0xf68391)[_0x27d7('0x19')](_0x476647);}return null;};}function patchUpdates(_0x45bc4f){return function(_0x18e00e){try{jsonpatch[_0x27d7('0x1f')](_0x18e00e,_0x45bc4f,!![]);}catch(_0x43f04e){return BPromise[_0x27d7('0x20')](_0x43f04e);}return _0x18e00e[_0x27d7('0x21')]();};}function saveUpdates(_0x268ade,_0x5ec3ad){return function(_0x43f3ea){if(_0x43f3ea){return _0x43f3ea['update'](_0x268ade)['then'](function(_0x8a7d0b){return _0x8a7d0b;});}return null;};}function removeEntity(_0x100b50,_0x30700a){return function(_0x28ae0d){if(_0x28ae0d){return _0x28ae0d[_0x27d7('0x22')]()['then'](function(){_0x100b50['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1aa522,_0x4b7206){return function(_0x2b30e7){if(!_0x2b30e7){_0x1aa522['sendStatus'](0x194);}return _0x2b30e7;};}function handleError(_0x1e0e19,_0x4a07e9){_0x4a07e9=_0x4a07e9||0x1f4;return function(_0x2b6287){logger[_0x27d7('0x23')](_0x2b6287[_0x27d7('0x24')]);if(_0x2b6287[_0x27d7('0x25')]){delete _0x2b6287[_0x27d7('0x25')];}_0x1e0e19[_0x27d7('0x17')](_0x4a07e9)['send'](_0x2b6287);};}exports[_0x27d7('0x26')]=function(_0xbf144c,_0x5a0854){var _0x43dfda={},_0x3a2af9={},_0x4ea898={'count':0x0,'rows':[]};var _0x4f26b6=_[_0x27d7('0x27')](db[_0x27d7('0x28')][_0x27d7('0x29')],function(_0x5a3982){return{'name':_0x5a3982[_0x27d7('0x2a')],'type':_0x5a3982[_0x27d7('0x2b')][_0x27d7('0x2c')]};});_0x3a2af9[_0x27d7('0x2d')]=_[_0x27d7('0x27')](_0x4f26b6,'name');_0x3a2af9['query']=_[_0x27d7('0x2e')](_0xbf144c[_0x27d7('0x2f')]);_0x3a2af9[_0x27d7('0x30')]=_[_0x27d7('0x31')](_0x3a2af9['model'],_0x3a2af9[_0x27d7('0x2f')]);_0x43dfda['attributes']=_['intersection'](_0x3a2af9[_0x27d7('0x2d')],qs[_0x27d7('0x32')](_0xbf144c['query']['fields']));_0x43dfda['attributes']=_0x43dfda[_0x27d7('0x33')][_0x27d7('0x34')]?_0x43dfda[_0x27d7('0x33')]:_0x3a2af9[_0x27d7('0x2d')];if(!_0xbf144c[_0x27d7('0x2f')][_0x27d7('0x35')](_0x27d7('0x36'))){_0x43dfda[_0x27d7('0x1c')]=qs['limit'](_0xbf144c[_0x27d7('0x2f')][_0x27d7('0x1c')]);_0x43dfda[_0x27d7('0x1a')]=qs[_0x27d7('0x1a')](_0xbf144c['query'][_0x27d7('0x1a')]);}_0x43dfda[_0x27d7('0x37')]=qs[_0x27d7('0x38')](_0xbf144c[_0x27d7('0x2f')]['sort']);_0x43dfda[_0x27d7('0x39')]=qs[_0x27d7('0x30')](_['pick'](_0xbf144c[_0x27d7('0x2f')],_0x3a2af9['filters']),_0x4f26b6);if(_0xbf144c[_0x27d7('0x2f')][_0x27d7('0x3a')]){_0x43dfda[_0x27d7('0x39')]=_[_0x27d7('0x3b')](_0x43dfda['where'],{'$or':_[_0x27d7('0x27')](_0x4f26b6,function(_0x2ad0d9){if(_0x2ad0d9['type']!==_0x27d7('0x3c')){var _0xdac376={};_0xdac376[_0x2ad0d9[_0x27d7('0x25')]]={'$like':'%'+_0xbf144c[_0x27d7('0x2f')]['filter']+'%'};return _0xdac376;}})});}_0x43dfda=_[_0x27d7('0x3b')]({},_0x43dfda,_0xbf144c[_0x27d7('0x3d')]);var _0x26bd4f={'where':_0x43dfda['where']};return db[_0x27d7('0x28')][_0x27d7('0x1d')](_0x26bd4f)[_0x27d7('0x3e')](function(_0x2e2328){_0x4ea898['count']=_0x2e2328;if(_0xbf144c[_0x27d7('0x2f')]['includeAll']){_0x43dfda[_0x27d7('0x3f')]=[{'all':!![]}];}return db['VtigerAccount'][_0x27d7('0x40')](_0x43dfda);})[_0x27d7('0x3e')](function(_0x5235a5){_0x4ea898[_0x27d7('0x41')]=_0x5235a5;return _0x4ea898;})[_0x27d7('0x3e')](respondWithFilteredResult(_0x5a0854,_0x43dfda))[_0x27d7('0x42')](handleError(_0x5a0854,null));};exports[_0x27d7('0x43')]=function(_0x3bb290,_0x308fbe){var _0x33eeca={'raw':![],'where':{'id':_0x3bb290['params']['id']}},_0x213475={};_0x213475[_0x27d7('0x2d')]=_['keys'](db[_0x27d7('0x28')]['rawAttributes']);_0x213475['query']=_[_0x27d7('0x2e')](_0x3bb290['query']);_0x213475[_0x27d7('0x30')]=_[_0x27d7('0x31')](_0x213475['model'],_0x213475[_0x27d7('0x2f')]);_0x33eeca[_0x27d7('0x33')]=_[_0x27d7('0x31')](_0x213475[_0x27d7('0x2d')],qs[_0x27d7('0x32')](_0x3bb290[_0x27d7('0x2f')][_0x27d7('0x32')]));_0x33eeca[_0x27d7('0x33')]=_0x33eeca['attributes'][_0x27d7('0x34')]?_0x33eeca[_0x27d7('0x33')]:_0x213475[_0x27d7('0x2d')];if(_0x3bb290['query'][_0x27d7('0x44')]){_0x33eeca[_0x27d7('0x3f')]=[{'all':!![]}];}_0x33eeca=_[_0x27d7('0x3b')]({},_0x33eeca,_0x3bb290[_0x27d7('0x3d')]);return db[_0x27d7('0x28')][_0x27d7('0x45')](_0x33eeca)[_0x27d7('0x3e')](handleEntityNotFound(_0x308fbe,null))['then'](respondWithResult(_0x308fbe,null))[_0x27d7('0x42')](handleError(_0x308fbe,null));};exports[_0x27d7('0x46')]=function(_0x3c497f,_0x26dc60){return db[_0x27d7('0x28')][_0x27d7('0x46')](_0x3c497f['body'],{})['then'](respondWithResult(_0x26dc60,0xc9))[_0x27d7('0x42')](handleError(_0x26dc60,null));};exports[_0x27d7('0x47')]=function(_0x3bf365,_0x308cb5){if(_0x3bf365[_0x27d7('0x48')]['id']){delete _0x3bf365['body']['id'];}return db[_0x27d7('0x28')]['find']({'where':{'id':_0x3bf365[_0x27d7('0x49')]['id']}})[_0x27d7('0x3e')](handleEntityNotFound(_0x308cb5,null))[_0x27d7('0x3e')](saveUpdates(_0x3bf365[_0x27d7('0x48')],null))[_0x27d7('0x3e')](respondWithResult(_0x308cb5,null))[_0x27d7('0x42')](handleError(_0x308cb5,null));};exports['destroy']=function(_0x3c3608,_0x37ef4a){return db['VtigerAccount'][_0x27d7('0x45')]({'where':{'id':_0x3c3608[_0x27d7('0x49')]['id']}})['then'](handleEntityNotFound(_0x37ef4a,null))[_0x27d7('0x3e')](removeEntity(_0x37ef4a,null))[_0x27d7('0x42')](handleError(_0x37ef4a,null));};exports[_0x27d7('0x4a')]=function(_0x4521d1,_0x206c68,_0x2d400b){var _0xa44cd1={};var _0x41c9a4={};var _0x150a70;var _0x59cca3;return db[_0x27d7('0x28')][_0x27d7('0x4b')]({'where':{'id':_0x4521d1[_0x27d7('0x49')]['id']}})['then'](handleEntityNotFound(_0x206c68,null))[_0x27d7('0x3e')](function(_0x94a1d){if(_0x94a1d){_0x150a70=_0x94a1d;_0x41c9a4[_0x27d7('0x2d')]=_[_0x27d7('0x2e')](db['VtigerConfiguration']['rawAttributes']);_0x41c9a4[_0x27d7('0x2f')]=_[_0x27d7('0x2e')](_0x4521d1[_0x27d7('0x2f')]);_0x41c9a4['filters']=_[_0x27d7('0x31')](_0x41c9a4[_0x27d7('0x2d')],_0x41c9a4[_0x27d7('0x2f')]);_0xa44cd1[_0x27d7('0x33')]=_[_0x27d7('0x31')](_0x41c9a4[_0x27d7('0x2d')],qs[_0x27d7('0x32')](_0x4521d1['query'][_0x27d7('0x32')]));_0xa44cd1[_0x27d7('0x33')]=_0xa44cd1[_0x27d7('0x33')][_0x27d7('0x34')]?_0xa44cd1[_0x27d7('0x33')]:_0x41c9a4['model'];_0xa44cd1[_0x27d7('0x37')]=qs[_0x27d7('0x38')](_0x4521d1[_0x27d7('0x2f')][_0x27d7('0x38')]);_0xa44cd1[_0x27d7('0x39')]=qs[_0x27d7('0x30')](_['pick'](_0x4521d1[_0x27d7('0x2f')],_0x41c9a4[_0x27d7('0x30')]));if(_0x4521d1[_0x27d7('0x2f')][_0x27d7('0x3a')]){_0xa44cd1[_0x27d7('0x39')]=_[_0x27d7('0x3b')](_0xa44cd1[_0x27d7('0x39')],{'$or':_['map'](_0xa44cd1[_0x27d7('0x33')],function(_0x12ce04){var _0x5ec58b={};_0x5ec58b[_0x12ce04]={'$like':'%'+_0x4521d1[_0x27d7('0x2f')][_0x27d7('0x3a')]+'%'};return _0x5ec58b;})});}_0xa44cd1=_['merge']({},_0xa44cd1,_0x4521d1['options']);return _0x150a70[_0x27d7('0x4a')](_0xa44cd1);}})[_0x27d7('0x3e')](function(_0x4b5ef8){if(_0x4b5ef8){_0x59cca3=_0x4b5ef8[_0x27d7('0x34')];if(!_0x4521d1[_0x27d7('0x2f')]['hasOwnProperty'](_0x27d7('0x36'))){_0xa44cd1[_0x27d7('0x1c')]=qs[_0x27d7('0x1c')](_0x4521d1[_0x27d7('0x2f')]['limit']);_0xa44cd1[_0x27d7('0x1a')]=qs['offset'](_0x4521d1[_0x27d7('0x2f')][_0x27d7('0x1a')]);}return _0x150a70['getConfigurations'](_0xa44cd1);}})['then'](function(_0x3cbd42){if(_0x3cbd42){return _0x3cbd42?{'count':_0x59cca3,'rows':_0x3cbd42}:null;}})[_0x27d7('0x3e')](respondWithResult(_0x206c68,null))[_0x27d7('0x42')](handleError(_0x206c68,null));};exports[_0x27d7('0x4c')]=function(_0x405378,_0x5ca948,_0x2cc155){if(_0x405378['body']['id']){delete _0x405378[_0x27d7('0x48')]['id'];}return db[_0x27d7('0x28')][_0x27d7('0x4b')]({'where':{'id':_0x405378['params']['id']}})[_0x27d7('0x3e')](handleEntityNotFound(_0x5ca948,null))[_0x27d7('0x3e')](function(_0x1cf659){if(_0x1cf659){_0x405378[_0x27d7('0x48')][_0x27d7('0x4d')]=_0x1cf659['id'];_0x405378[_0x27d7('0x48')][_0x27d7('0x4e')]=integrations[_0x27d7('0x4f')](_0x405378[_0x27d7('0x48')][_0x27d7('0x50')],_0x405378[_0x27d7('0x48')][_0x27d7('0x2b')]);_0x405378[_0x27d7('0x48')][_0x27d7('0x51')]=integrations[_0x27d7('0x52')](_0x405378['body'][_0x27d7('0x50')],_0x405378[_0x27d7('0x48')][_0x27d7('0x2b')]);return db[_0x27d7('0x53')][_0x27d7('0x46')](_0x405378['body'],{'include':[{'model':db[_0x27d7('0x54')],'as':_0x27d7('0x4e')},{'model':db[_0x27d7('0x54')],'as':_0x27d7('0x51')}]});}return null;})[_0x27d7('0x3e')](respondWithResult(_0x5ca948,null))['catch'](handleError(_0x5ca948,null));};var md5=require(_0x27d7('0x55'));exports[_0x27d7('0x56')]=function(_0x5d5e2f,_0x54763b,_0x52df50){var _0x484478=null;var _0x552890=null;var _0x4e6c50=null;var _0xa07e7c=null;var _0x2b12bd='';return db['VtigerAccount'][_0x27d7('0x4b')]({'where':{'id':_0x5d5e2f['params']['id']},'attributes':['id',_0x27d7('0x25'),_0x27d7('0x57'),_0x27d7('0x58'),_0x27d7('0x59'),'remoteUri',_0x27d7('0x5a'),_0x27d7('0x5b')]})[_0x27d7('0x3e')](handleEntityNotFound(_0x54763b,null))[_0x27d7('0x3e')](function(_0x4f0a4f){if(_0x4f0a4f){_0x484478=_0x4f0a4f[_0x27d7('0x57')];_0x552890=_0x4f0a4f[_0x27d7('0x5b')];_0x4e6c50=_0x4f0a4f[_0x27d7('0x59')];_0x2b12bd=_0x4f0a4f[_0x27d7('0x5c')];var _0x5cbe09=_0x2b12bd[_0x27d7('0x5d')](-0x1);if(_0x5cbe09==='/'){_0x2b12bd=_0x2b12bd[_0x27d7('0x5e')](0x0,_0x2b12bd[_0x27d7('0x5f')](_0x5cbe09));}_0xa07e7c=util['format'](_0x27d7('0x60'),_0x2b12bd);var _0x21b16a={'method':_0x27d7('0x61'),'uri':_0xa07e7c,'qs':{'operation':_0x27d7('0x62'),'username':_0x4f0a4f[_0x27d7('0x57')]},'json':!![]};return rp(_0x21b16a);}})[_0x27d7('0x3e')](function(_0x1fc22a){if(_0x1fc22a[_0x27d7('0x63')]){var _0x5c8725={'method':_0x27d7('0x64'),'uri':_0xa07e7c,'form':{'operation':_0x27d7('0x65'),'username':_0x484478,'accessKey':md5(_0x1fc22a[_0x27d7('0x66')][_0x27d7('0x67')]+_0x552890)},'json':!![]};return rp(_0x5c8725);}})[_0x27d7('0x3e')](function(_0xdb2f9d){if(_0xdb2f9d[_0x27d7('0x63')]){var _0x20ec5c={'method':_0x27d7('0x61'),'uri':_0xa07e7c,'qs':{'operation':_0x27d7('0x68'),'username':_0x484478,'sessionName':_0xdb2f9d[_0x27d7('0x66')][_0x27d7('0x69')],'elementType':_0x4e6c50},'json':!![]};return rp(_0x20ec5c);}})['then'](function(_0x57483c){if(_0x57483c[_0x27d7('0x63')]){var _0x291d6b=[_0x27d7('0x6a'),'reference',_0x27d7('0x6b')];_[_0x27d7('0x6c')](_0x57483c[_0x27d7('0x66')][_0x27d7('0x32')],function(_0x1614cb){return _0x291d6b[_0x27d7('0x6d')](_0x1614cb[_0x27d7('0x2b')][_0x27d7('0x25')]);});_[_0x27d7('0x6c')](_0x57483c[_0x27d7('0x66')][_0x27d7('0x32')],function(_0x80186e){return _0x80186e[_0x27d7('0x6e')]===_0x27d7('0x6f');});return{'count':_0x57483c[_0x27d7('0x66')][_0x27d7('0x32')][_0x27d7('0x34')],'rows':_['map'](_0x57483c[_0x27d7('0x66')]['fields'],function(_0x38992e){return{'id':_0x38992e[_0x27d7('0x25')],'name':_0x38992e[_0x27d7('0x70')],'custom':_[_0x27d7('0x71')](_0x38992e[_0x27d7('0x25')],_0x27d7('0x72'))?!![]:![],'options':_0x38992e[_0x27d7('0x2b')][_0x27d7('0x25')]===_0x27d7('0x73')&&_0x38992e['type'][_0x27d7('0x74')]['length']>0x0?_[_0x27d7('0x27')](_0x38992e[_0x27d7('0x2b')]['picklistValues'],function(_0x690acb){return{'name':_0x690acb[_0x27d7('0x70')],'value':_0x690acb[_0x27d7('0x75')]};}):[]};})};}})[_0x27d7('0x3e')](respondWithResult(_0x54763b,null))['catch'](function(_0x92054a){console[_0x27d7('0x76')](_0x27d7('0x77')+_0x92054a);var _0x4fa947=_0x5d5e2f[_0x27d7('0x2f')][_0x27d7('0x78')]?0x1f4:_0x92054a[_0x27d7('0x79')]||0x1f4;logger[_0x27d7('0x23')](_0x27d7('0x7a'),'getFields',_0x4fa947,JSON['stringify'](_0x92054a));delete _0x92054a[_0x27d7('0x25')];if(_0x4fa947===0x191){_0x4fa947=0x190;}_0x54763b['status'](_0x4fa947)[_0x27d7('0x7b')](_0x5d5e2f[_0x27d7('0x2f')][_0x27d7('0x78')]?{'message':'Wrong\x20credentials','statusCode':_0x92054a[_0x27d7('0x79')]}:_0x92054a);});};