3fca9b615dfcf8456c570c29e42622a428752773
[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 _0xadd5=['include','findAll','rows','catch','show','params','keys','options','find','create','body','destroy','getConfigurations','findOne','VtigerConfiguration','order','pick','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','VtigerField','getFields','username','description','moduleName','remoteUri','serverUrl','accessKey','slice','substring','format','%s/webservice.php','GET','POST','login','result','success','sessionName','autogenerated','reference','owner','remove','includes','editable','false','label','cf_','picklistValues','value','log','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','fs-extra','lodash','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','save','update','then','error','stack','name','index','VtigerAccount','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','VIRTUAL','merge','includeAll'];(function(_0x56c24a,_0x1af9af){var _0x3e5e46=function(_0xb1a2a1){while(--_0xb1a2a1){_0x56c24a['push'](_0x56c24a['shift']());}};_0x3e5e46(++_0x1af9af);}(_0xadd5,0x19f));var _0x5add=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xadd5[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x5add('0x0'));var rimraf=require(_0x5add('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5add('0x2'));var rp=require(_0x5add('0x3'));var moment=require(_0x5add('0x4'));var BPromise=require(_0x5add('0x5'));var Mustache=require('mustache');var util=require(_0x5add('0x6'));var path=require(_0x5add('0x7'));var sox=require(_0x5add('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5add('0x9'));var _=require(_0x5add('0xa'));var squel=require('squel');var crypto=require(_0x5add('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x5add('0xc'));var toCsv=require(_0x5add('0xd'));var querystring=require(_0x5add('0xe'));var Papa=require(_0x5add('0xf'));var Redis=require(_0x5add('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x5add('0x11'));var as=require(_0x5add('0x12'));var hardwareService=require(_0x5add('0x13'));var logger=require(_0x5add('0x14'))('api');var utils=require(_0x5add('0x15'));var config=require(_0x5add('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x5add('0x17'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x5ce518,_0x3743f1){_0x3743f1=_0x3743f1||0xcc;return function(_0x2fcc93){if(_0x2fcc93){return _0x5ce518[_0x5add('0x18')](_0x3743f1);}return _0x5ce518[_0x5add('0x19')](_0x3743f1)[_0x5add('0x1a')]();};}function respondWithResult(_0x1e8e8c,_0x511af5){_0x511af5=_0x511af5||0xc8;return function(_0x451c53){if(_0x451c53){return _0x1e8e8c['status'](_0x511af5)[_0x5add('0x1b')](_0x451c53);}};}function respondWithFilteredResult(_0x5138ef,_0x30dc5c){return function(_0x4fdaf4){if(_0x4fdaf4){var _0x918ba3=typeof _0x30dc5c[_0x5add('0x1c')]==='undefined'&&typeof _0x30dc5c[_0x5add('0x1d')]===_0x5add('0x1e');var _0x4b4ae2=_0x4fdaf4[_0x5add('0x1f')];var _0x382464=_0x918ba3?0x0:_0x30dc5c[_0x5add('0x1c')];var _0x1d899d=_0x918ba3?_0x4fdaf4[_0x5add('0x1f')]:_0x30dc5c[_0x5add('0x1c')]+_0x30dc5c['limit'];var _0x374e83;if(_0x1d899d>=_0x4b4ae2){_0x1d899d=_0x4b4ae2;_0x374e83=0xc8;}else{_0x374e83=0xce;}_0x5138ef[_0x5add('0x19')](_0x374e83);return _0x5138ef[_0x5add('0x20')]('Content-Range',_0x382464+'-'+_0x1d899d+'/'+_0x4b4ae2)['json'](_0x4fdaf4);}return null;};}function patchUpdates(_0x1ff492){return function(_0x1d9674){try{jsonpatch['apply'](_0x1d9674,_0x1ff492,!![]);}catch(_0x1ba64f){return BPromise['reject'](_0x1ba64f);}return _0x1d9674[_0x5add('0x21')]();};}function saveUpdates(_0x30278e,_0x3643ec){return function(_0x4e7b2f){if(_0x4e7b2f){return _0x4e7b2f[_0x5add('0x22')](_0x30278e)[_0x5add('0x23')](function(_0x29d86a){return _0x29d86a;});}return null;};}function removeEntity(_0x1ec232,_0x5c23db){return function(_0x4cac53){if(_0x4cac53){return _0x4cac53['destroy']()[_0x5add('0x23')](function(){_0x1ec232[_0x5add('0x19')](0xcc)[_0x5add('0x1a')]();});}};}function handleEntityNotFound(_0xf24402,_0x3add87){return function(_0x245fe8){if(!_0x245fe8){_0xf24402[_0x5add('0x18')](0x194);}return _0x245fe8;};}function handleError(_0x4f8c8f,_0x5d04eb){_0x5d04eb=_0x5d04eb||0x1f4;return function(_0x4a1320){logger[_0x5add('0x24')](_0x4a1320[_0x5add('0x25')]);if(_0x4a1320[_0x5add('0x26')]){delete _0x4a1320[_0x5add('0x26')];}_0x4f8c8f[_0x5add('0x19')](_0x5d04eb)['send'](_0x4a1320);};}exports[_0x5add('0x27')]=function(_0x1c54ea,_0x48490b){var _0x2c1651={},_0x54259d={},_0x1aa3ff={'count':0x0,'rows':[]};var _0x30c3d4=_['map'](db[_0x5add('0x28')][_0x5add('0x29')],function(_0x109e85){return{'name':_0x109e85[_0x5add('0x2a')],'type':_0x109e85[_0x5add('0x2b')][_0x5add('0x2c')]};});_0x54259d[_0x5add('0x2d')]=_[_0x5add('0x2e')](_0x30c3d4,'name');_0x54259d[_0x5add('0x2f')]=_['keys'](_0x1c54ea['query']);_0x54259d[_0x5add('0x30')]=_[_0x5add('0x31')](_0x54259d[_0x5add('0x2d')],_0x54259d['query']);_0x2c1651[_0x5add('0x32')]=_[_0x5add('0x31')](_0x54259d[_0x5add('0x2d')],qs[_0x5add('0x33')](_0x1c54ea[_0x5add('0x2f')][_0x5add('0x33')]));_0x2c1651[_0x5add('0x32')]=_0x2c1651[_0x5add('0x32')][_0x5add('0x34')]?_0x2c1651[_0x5add('0x32')]:_0x54259d[_0x5add('0x2d')];if(!_0x1c54ea[_0x5add('0x2f')][_0x5add('0x35')](_0x5add('0x36'))){_0x2c1651[_0x5add('0x1d')]=qs[_0x5add('0x1d')](_0x1c54ea[_0x5add('0x2f')]['limit']);_0x2c1651[_0x5add('0x1c')]=qs['offset'](_0x1c54ea['query']['offset']);}_0x2c1651['order']=qs['sort'](_0x1c54ea[_0x5add('0x2f')][_0x5add('0x37')]);_0x2c1651[_0x5add('0x38')]=qs[_0x5add('0x30')](_['pick'](_0x1c54ea[_0x5add('0x2f')],_0x54259d[_0x5add('0x30')]),_0x30c3d4);if(_0x1c54ea[_0x5add('0x2f')][_0x5add('0x39')]){_0x2c1651[_0x5add('0x38')]=_['merge'](_0x2c1651[_0x5add('0x38')],{'$or':_['map'](_0x30c3d4,function(_0x37869e){if(_0x37869e[_0x5add('0x2b')]!==_0x5add('0x3a')){var _0x2d446a={};_0x2d446a[_0x37869e['name']]={'$like':'%'+_0x1c54ea[_0x5add('0x2f')]['filter']+'%'};return _0x2d446a;}})});}_0x2c1651=_[_0x5add('0x3b')]({},_0x2c1651,_0x1c54ea['options']);var _0x433f6d={'where':_0x2c1651[_0x5add('0x38')]};return db[_0x5add('0x28')][_0x5add('0x1f')](_0x433f6d)[_0x5add('0x23')](function(_0x20d3c2){_0x1aa3ff[_0x5add('0x1f')]=_0x20d3c2;if(_0x1c54ea[_0x5add('0x2f')][_0x5add('0x3c')]){_0x2c1651[_0x5add('0x3d')]=[{'all':!![]}];}return db[_0x5add('0x28')][_0x5add('0x3e')](_0x2c1651);})[_0x5add('0x23')](function(_0x290231){_0x1aa3ff[_0x5add('0x3f')]=_0x290231;return _0x1aa3ff;})[_0x5add('0x23')](respondWithFilteredResult(_0x48490b,_0x2c1651))[_0x5add('0x40')](handleError(_0x48490b,null));};exports[_0x5add('0x41')]=function(_0x167baf,_0x296f88){var _0x31456f={'raw':![],'where':{'id':_0x167baf[_0x5add('0x42')]['id']}},_0x57b0e3={};_0x57b0e3[_0x5add('0x2d')]=_[_0x5add('0x43')](db[_0x5add('0x28')][_0x5add('0x29')]);_0x57b0e3[_0x5add('0x2f')]=_[_0x5add('0x43')](_0x167baf[_0x5add('0x2f')]);_0x57b0e3[_0x5add('0x30')]=_[_0x5add('0x31')](_0x57b0e3[_0x5add('0x2d')],_0x57b0e3[_0x5add('0x2f')]);_0x31456f[_0x5add('0x32')]=_['intersection'](_0x57b0e3[_0x5add('0x2d')],qs['fields'](_0x167baf[_0x5add('0x2f')]['fields']));_0x31456f['attributes']=_0x31456f[_0x5add('0x32')][_0x5add('0x34')]?_0x31456f[_0x5add('0x32')]:_0x57b0e3[_0x5add('0x2d')];if(_0x167baf[_0x5add('0x2f')][_0x5add('0x3c')]){_0x31456f[_0x5add('0x3d')]=[{'all':!![]}];}_0x31456f=_[_0x5add('0x3b')]({},_0x31456f,_0x167baf[_0x5add('0x44')]);return db[_0x5add('0x28')][_0x5add('0x45')](_0x31456f)[_0x5add('0x23')](handleEntityNotFound(_0x296f88,null))[_0x5add('0x23')](respondWithResult(_0x296f88,null))[_0x5add('0x40')](handleError(_0x296f88,null));};exports[_0x5add('0x46')]=function(_0x5b418b,_0x3a95f6){return db[_0x5add('0x28')]['create'](_0x5b418b[_0x5add('0x47')],{})['then'](respondWithResult(_0x3a95f6,0xc9))[_0x5add('0x40')](handleError(_0x3a95f6,null));};exports['update']=function(_0x5ed0cb,_0x2cb69c){if(_0x5ed0cb[_0x5add('0x47')]['id']){delete _0x5ed0cb[_0x5add('0x47')]['id'];}return db[_0x5add('0x28')][_0x5add('0x45')]({'where':{'id':_0x5ed0cb[_0x5add('0x42')]['id']}})['then'](handleEntityNotFound(_0x2cb69c,null))['then'](saveUpdates(_0x5ed0cb[_0x5add('0x47')],null))['then'](respondWithResult(_0x2cb69c,null))[_0x5add('0x40')](handleError(_0x2cb69c,null));};exports[_0x5add('0x48')]=function(_0x5d8abb,_0x53c6b5){return db[_0x5add('0x28')][_0x5add('0x45')]({'where':{'id':_0x5d8abb[_0x5add('0x42')]['id']}})[_0x5add('0x23')](handleEntityNotFound(_0x53c6b5,null))[_0x5add('0x23')](removeEntity(_0x53c6b5,null))['catch'](handleError(_0x53c6b5,null));};exports[_0x5add('0x49')]=function(_0x294899,_0x2f168e,_0x4ddc48){var _0x5e415e={};var _0x50f441={};var _0x191cd6;var _0x45055c;return db[_0x5add('0x28')][_0x5add('0x4a')]({'where':{'id':_0x294899[_0x5add('0x42')]['id']}})[_0x5add('0x23')](handleEntityNotFound(_0x2f168e,null))['then'](function(_0x1195b3){if(_0x1195b3){_0x191cd6=_0x1195b3;_0x50f441[_0x5add('0x2d')]=_[_0x5add('0x43')](db[_0x5add('0x4b')][_0x5add('0x29')]);_0x50f441[_0x5add('0x2f')]=_['keys'](_0x294899[_0x5add('0x2f')]);_0x50f441[_0x5add('0x30')]=_[_0x5add('0x31')](_0x50f441[_0x5add('0x2d')],_0x50f441['query']);_0x5e415e[_0x5add('0x32')]=_[_0x5add('0x31')](_0x50f441[_0x5add('0x2d')],qs[_0x5add('0x33')](_0x294899['query'][_0x5add('0x33')]));_0x5e415e[_0x5add('0x32')]=_0x5e415e[_0x5add('0x32')]['length']?_0x5e415e[_0x5add('0x32')]:_0x50f441[_0x5add('0x2d')];_0x5e415e[_0x5add('0x4c')]=qs[_0x5add('0x37')](_0x294899['query'][_0x5add('0x37')]);_0x5e415e[_0x5add('0x38')]=qs[_0x5add('0x30')](_[_0x5add('0x4d')](_0x294899[_0x5add('0x2f')],_0x50f441['filters']));if(_0x294899[_0x5add('0x2f')][_0x5add('0x39')]){_0x5e415e[_0x5add('0x38')]=_[_0x5add('0x3b')](_0x5e415e[_0x5add('0x38')],{'$or':_[_0x5add('0x2e')](_0x5e415e[_0x5add('0x32')],function(_0x1a9103){var _0x2c1a4e={};_0x2c1a4e[_0x1a9103]={'$like':'%'+_0x294899[_0x5add('0x2f')]['filter']+'%'};return _0x2c1a4e;})});}_0x5e415e=_['merge']({},_0x5e415e,_0x294899[_0x5add('0x44')]);return _0x191cd6['getConfigurations'](_0x5e415e);}})[_0x5add('0x23')](function(_0x1f6dec){if(_0x1f6dec){_0x45055c=_0x1f6dec['length'];if(!_0x294899[_0x5add('0x2f')]['hasOwnProperty']('nolimit')){_0x5e415e[_0x5add('0x1d')]=qs['limit'](_0x294899['query']['limit']);_0x5e415e[_0x5add('0x1c')]=qs[_0x5add('0x1c')](_0x294899[_0x5add('0x2f')][_0x5add('0x1c')]);}return _0x191cd6[_0x5add('0x49')](_0x5e415e);}})[_0x5add('0x23')](function(_0x5fa3aa){if(_0x5fa3aa){return _0x5fa3aa?{'count':_0x45055c,'rows':_0x5fa3aa}:null;}})['then'](respondWithResult(_0x2f168e,null))[_0x5add('0x40')](handleError(_0x2f168e,null));};exports[_0x5add('0x4e')]=function(_0x1f4f8b,_0x6a1779,_0x5c1657){if(_0x1f4f8b[_0x5add('0x47')]['id']){delete _0x1f4f8b['body']['id'];}return db[_0x5add('0x28')][_0x5add('0x4a')]({'where':{'id':_0x1f4f8b[_0x5add('0x42')]['id']}})['then'](handleEntityNotFound(_0x6a1779,null))[_0x5add('0x23')](function(_0x3faa68){if(_0x3faa68){_0x1f4f8b[_0x5add('0x47')][_0x5add('0x4f')]=_0x3faa68['id'];_0x1f4f8b[_0x5add('0x47')][_0x5add('0x50')]=integrations[_0x5add('0x51')](_0x1f4f8b[_0x5add('0x47')][_0x5add('0x52')],_0x1f4f8b['body']['type']);_0x1f4f8b[_0x5add('0x47')][_0x5add('0x53')]=integrations[_0x5add('0x54')](_0x1f4f8b['body'][_0x5add('0x52')],_0x1f4f8b['body'][_0x5add('0x2b')]);return db['VtigerConfiguration']['create'](_0x1f4f8b[_0x5add('0x47')],{'include':[{'model':db['VtigerField'],'as':_0x5add('0x50')},{'model':db[_0x5add('0x55')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x6a1779,null))['catch'](handleError(_0x6a1779,null));};var md5=require('md5');exports[_0x5add('0x56')]=function(_0x520c50,_0x525a90,_0x5e7fd6){var _0x14fccb=null;var _0x4aea40=null;var _0xb384a=null;var _0x9312d3=null;var _0x592e86='';return db['VtigerAccount'][_0x5add('0x4a')]({'where':{'id':_0x520c50[_0x5add('0x42')]['id']},'attributes':['id','name',_0x5add('0x57'),_0x5add('0x58'),_0x5add('0x59'),_0x5add('0x5a'),_0x5add('0x5b'),_0x5add('0x5c')]})[_0x5add('0x23')](handleEntityNotFound(_0x525a90,null))['then'](function(_0x518d4b){if(_0x518d4b){_0x14fccb=_0x518d4b[_0x5add('0x57')];_0x4aea40=_0x518d4b[_0x5add('0x5c')];_0xb384a=_0x518d4b['moduleName'];_0x592e86=_0x518d4b[_0x5add('0x5a')];var _0x385e25=_0x592e86[_0x5add('0x5d')](-0x1);if(_0x385e25==='/'){_0x592e86=_0x592e86[_0x5add('0x5e')](0x0,_0x592e86['lastIndexOf'](_0x385e25));}_0x9312d3=util[_0x5add('0x5f')](_0x5add('0x60'),_0x592e86);var _0x5d12b7={'method':_0x5add('0x61'),'uri':_0x9312d3,'qs':{'operation':'getchallenge','username':_0x518d4b[_0x5add('0x57')]},'json':!![]};return rp(_0x5d12b7);}})['then'](function(_0x19725d){if(_0x19725d['success']){var _0x3087aa={'method':_0x5add('0x62'),'uri':_0x9312d3,'form':{'operation':_0x5add('0x63'),'username':_0x14fccb,'accessKey':md5(_0x19725d[_0x5add('0x64')]['token']+_0x4aea40)},'json':!![]};return rp(_0x3087aa);}})[_0x5add('0x23')](function(_0xc91688){if(_0xc91688[_0x5add('0x65')]){var _0x4e71ef={'method':'GET','uri':_0x9312d3,'qs':{'operation':'describe','username':_0x14fccb,'sessionName':_0xc91688[_0x5add('0x64')][_0x5add('0x66')],'elementType':_0xb384a},'json':!![]};return rp(_0x4e71ef);}})[_0x5add('0x23')](function(_0x4ca634){if(_0x4ca634[_0x5add('0x65')]){var _0x6da9a9=[_0x5add('0x67'),_0x5add('0x68'),_0x5add('0x69')];_[_0x5add('0x6a')](_0x4ca634[_0x5add('0x64')][_0x5add('0x33')],function(_0x51e110){return _0x6da9a9[_0x5add('0x6b')](_0x51e110[_0x5add('0x2b')][_0x5add('0x26')]);});_['remove'](_0x4ca634[_0x5add('0x64')][_0x5add('0x33')],function(_0x41ba62){return _0x41ba62[_0x5add('0x6c')]===_0x5add('0x6d');});return{'count':_0x4ca634[_0x5add('0x64')][_0x5add('0x33')][_0x5add('0x34')],'rows':_['map'](_0x4ca634['result']['fields'],function(_0x55a05b){return{'id':_0x55a05b[_0x5add('0x26')],'name':_0x55a05b[_0x5add('0x6e')],'custom':_['startsWith'](_0x55a05b[_0x5add('0x26')],_0x5add('0x6f'))?!![]:![],'options':_0x55a05b[_0x5add('0x2b')]['name']==='picklist'&&_0x55a05b[_0x5add('0x2b')]['picklistValues'][_0x5add('0x34')]>0x0?_[_0x5add('0x2e')](_0x55a05b[_0x5add('0x2b')][_0x5add('0x70')],function(_0xe4a890){return{'name':_0xe4a890[_0x5add('0x6e')],'value':_0xe4a890[_0x5add('0x71')]};}):[]};})};}})[_0x5add('0x23')](respondWithResult(_0x525a90,null))[_0x5add('0x40')](function(_0x16d312){console[_0x5add('0x72')]('vTiger\x20error:\x20'+_0x16d312);var _0x555140=_0x520c50[_0x5add('0x2f')][_0x5add('0x73')]?0x1f4:_0x16d312[_0x5add('0x74')]||0x1f4;logger[_0x5add('0x24')](_0x5add('0x75'),'getFields',_0x555140,JSON['stringify'](_0x16d312));delete _0x16d312[_0x5add('0x26')];if(_0x555140===0x191){_0x555140=0x190;}_0x525a90[_0x5add('0x19')](_0x555140)['send'](_0x520c50['query'][_0x5add('0x73')]?{'message':_0x5add('0x76'),'statusCode':_0x16d312['statusCode']}:_0x16d312);});};