24eb941b0cfadb09a0b17f0ee571bd2196922dd5
[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 _0x736f=['statusCode','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','end','json','offset','undefined','count','limit','status','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','VtigerAccount','rawAttributes','fieldName','key','model','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','type','VIRTUAL','filter','merge','options','include','findAll','catch','show','keys','find','create','body','params','findOne','VtigerConfiguration','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','VtigerField','getFields','username','remoteUri','accessKey','substring','lastIndexOf','GET','getchallenge','success','POST','login','result','token','describe','autogenerated','reference','remove','includes','editable','false','label','startsWith','cf_','picklistValues','test','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials'];(function(_0x126558,_0x143c9a){var _0x1f6d14=function(_0x2b0eea){while(--_0x2b0eea){_0x126558['push'](_0x126558['shift']());}};_0x1f6d14(++_0x143c9a);}(_0x736f,0xed));var _0xf736=function(_0xfae941,_0x31dc68){_0xfae941=_0xfae941-0x0;var _0xd21834=_0x736f[_0xfae941];return _0xd21834;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xf736('0x0'));var jsonpatch=require(_0xf736('0x1'));var rp=require(_0xf736('0x2'));var moment=require(_0xf736('0x3'));var BPromise=require(_0xf736('0x4'));var Mustache=require('mustache');var util=require(_0xf736('0x5'));var path=require(_0xf736('0x6'));var sox=require(_0xf736('0x7'));var csv=require('to-csv');var ejs=require(_0xf736('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf736('0x9'));var squel=require('squel');var crypto=require(_0xf736('0xa'));var jsforce=require(_0xf736('0xb'));var deskjs=require(_0xf736('0xc'));var toCsv=require(_0xf736('0xd'));var querystring=require('querystring');var Papa=require(_0xf736('0xe'));var Redis=require(_0xf736('0xf'));var authService=require(_0xf736('0x10'));var qs=require(_0xf736('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf736('0x12'));var logger=require(_0xf736('0x13'))(_0xf736('0x14'));var utils=require(_0xf736('0x15'));var config=require(_0xf736('0x16'));var licenseUtil=require(_0xf736('0x17'));var db=require(_0xf736('0x18'))['db'];var integrations=require(_0xf736('0x19'));function respondWithStatusCode(_0x4e3dd4,_0x435079){_0x435079=_0x435079||0xcc;return function(_0x4ed611){if(_0x4ed611){return _0x4e3dd4['sendStatus'](_0x435079);}return _0x4e3dd4['status'](_0x435079)[_0xf736('0x1a')]();};}function respondWithResult(_0x5324d8,_0x45b252){_0x45b252=_0x45b252||0xc8;return function(_0x2e2dce){if(_0x2e2dce){return _0x5324d8['status'](_0x45b252)[_0xf736('0x1b')](_0x2e2dce);}};}function respondWithFilteredResult(_0x3b422e,_0x646c02){return function(_0x309105){if(_0x309105){var _0x32d215=typeof _0x646c02[_0xf736('0x1c')]===_0xf736('0x1d')&&typeof _0x646c02['limit']===_0xf736('0x1d');var _0x44358d=_0x309105[_0xf736('0x1e')];var _0x16fc91=_0x32d215?0x0:_0x646c02[_0xf736('0x1c')];var _0x409558=_0x32d215?_0x309105['count']:_0x646c02[_0xf736('0x1c')]+_0x646c02[_0xf736('0x1f')];var _0x588db4;if(_0x409558>=_0x44358d){_0x409558=_0x44358d;_0x588db4=0xc8;}else{_0x588db4=0xce;}_0x3b422e[_0xf736('0x20')](_0x588db4);return _0x3b422e[_0xf736('0x21')](_0xf736('0x22'),_0x16fc91+'-'+_0x409558+'/'+_0x44358d)[_0xf736('0x1b')](_0x309105);}return null;};}function patchUpdates(_0x24698a){return function(_0x5dea4e){try{jsonpatch[_0xf736('0x23')](_0x5dea4e,_0x24698a,!![]);}catch(_0x35d82c){return BPromise[_0xf736('0x24')](_0x35d82c);}return _0x5dea4e[_0xf736('0x25')]();};}function saveUpdates(_0x2348d2,_0x30a2d8){return function(_0x405a62){if(_0x405a62){return _0x405a62[_0xf736('0x26')](_0x2348d2)[_0xf736('0x27')](function(_0x4f997f){return _0x4f997f;});}return null;};}function removeEntity(_0xc78285,_0x281672){return function(_0x120e9e){if(_0x120e9e){return _0x120e9e[_0xf736('0x28')]()[_0xf736('0x27')](function(){_0xc78285[_0xf736('0x20')](0xcc)[_0xf736('0x1a')]();});}};}function handleEntityNotFound(_0xbff798,_0x293c40){return function(_0x2d5ffa){if(!_0x2d5ffa){_0xbff798['sendStatus'](0x194);}return _0x2d5ffa;};}function handleError(_0x12883f,_0x513971){_0x513971=_0x513971||0x1f4;return function(_0x211f20){logger[_0xf736('0x29')](_0x211f20[_0xf736('0x2a')]);if(_0x211f20[_0xf736('0x2b')]){delete _0x211f20[_0xf736('0x2b')];}_0x12883f[_0xf736('0x20')](_0x513971)[_0xf736('0x2c')](_0x211f20);};}exports[_0xf736('0x2d')]=function(_0x3decb9,_0x2cb04c){var _0xd576a0={},_0x41de95={},_0x7fe9d1={'count':0x0,'rows':[]};var _0x2c72c9=_[_0xf736('0x2e')](db[_0xf736('0x2f')][_0xf736('0x30')],function(_0x2ff7eb){return{'name':_0x2ff7eb[_0xf736('0x31')],'type':_0x2ff7eb['type'][_0xf736('0x32')]};});_0x41de95[_0xf736('0x33')]=_[_0xf736('0x2e')](_0x2c72c9,'name');_0x41de95[_0xf736('0x34')]=_['keys'](_0x3decb9[_0xf736('0x34')]);_0x41de95['filters']=_[_0xf736('0x35')](_0x41de95[_0xf736('0x33')],_0x41de95[_0xf736('0x34')]);_0xd576a0['attributes']=_[_0xf736('0x35')](_0x41de95[_0xf736('0x33')],qs[_0xf736('0x36')](_0x3decb9[_0xf736('0x34')]['fields']));_0xd576a0[_0xf736('0x37')]=_0xd576a0[_0xf736('0x37')][_0xf736('0x38')]?_0xd576a0[_0xf736('0x37')]:_0x41de95['model'];if(!_0x3decb9[_0xf736('0x34')][_0xf736('0x39')](_0xf736('0x3a'))){_0xd576a0[_0xf736('0x1f')]=qs[_0xf736('0x1f')](_0x3decb9[_0xf736('0x34')]['limit']);_0xd576a0['offset']=qs['offset'](_0x3decb9['query'][_0xf736('0x1c')]);}_0xd576a0[_0xf736('0x3b')]=qs[_0xf736('0x3c')](_0x3decb9[_0xf736('0x34')][_0xf736('0x3c')]);_0xd576a0[_0xf736('0x3d')]=qs['filters'](_[_0xf736('0x3e')](_0x3decb9[_0xf736('0x34')],_0x41de95[_0xf736('0x3f')]),_0x2c72c9);if(_0x3decb9[_0xf736('0x34')]['filter']){_0xd576a0['where']=_['merge'](_0xd576a0[_0xf736('0x3d')],{'$or':_[_0xf736('0x2e')](_0x2c72c9,function(_0x215fe3){if(_0x215fe3[_0xf736('0x40')]!==_0xf736('0x41')){var _0x3f536d={};_0x3f536d[_0x215fe3[_0xf736('0x2b')]]={'$like':'%'+_0x3decb9[_0xf736('0x34')][_0xf736('0x42')]+'%'};return _0x3f536d;}})});}_0xd576a0=_[_0xf736('0x43')]({},_0xd576a0,_0x3decb9[_0xf736('0x44')]);var _0x357b84={'where':_0xd576a0[_0xf736('0x3d')]};return db[_0xf736('0x2f')]['count'](_0x357b84)[_0xf736('0x27')](function(_0x1025cb){_0x7fe9d1[_0xf736('0x1e')]=_0x1025cb;if(_0x3decb9[_0xf736('0x34')]['includeAll']){_0xd576a0[_0xf736('0x45')]=[{'all':!![]}];}return db[_0xf736('0x2f')][_0xf736('0x46')](_0xd576a0);})[_0xf736('0x27')](function(_0x1bf2ba){_0x7fe9d1['rows']=_0x1bf2ba;return _0x7fe9d1;})[_0xf736('0x27')](respondWithFilteredResult(_0x2cb04c,_0xd576a0))[_0xf736('0x47')](handleError(_0x2cb04c,null));};exports[_0xf736('0x48')]=function(_0xa0d33f,_0x537577){var _0x50b357={'raw':![],'where':{'id':_0xa0d33f['params']['id']}},_0x1ca05f={};_0x1ca05f[_0xf736('0x33')]=_[_0xf736('0x49')](db[_0xf736('0x2f')][_0xf736('0x30')]);_0x1ca05f[_0xf736('0x34')]=_[_0xf736('0x49')](_0xa0d33f['query']);_0x1ca05f[_0xf736('0x3f')]=_[_0xf736('0x35')](_0x1ca05f[_0xf736('0x33')],_0x1ca05f[_0xf736('0x34')]);_0x50b357[_0xf736('0x37')]=_[_0xf736('0x35')](_0x1ca05f['model'],qs[_0xf736('0x36')](_0xa0d33f[_0xf736('0x34')]['fields']));_0x50b357[_0xf736('0x37')]=_0x50b357[_0xf736('0x37')][_0xf736('0x38')]?_0x50b357[_0xf736('0x37')]:_0x1ca05f[_0xf736('0x33')];if(_0xa0d33f[_0xf736('0x34')]['includeAll']){_0x50b357[_0xf736('0x45')]=[{'all':!![]}];}_0x50b357=_['merge']({},_0x50b357,_0xa0d33f['options']);return db[_0xf736('0x2f')][_0xf736('0x4a')](_0x50b357)[_0xf736('0x27')](handleEntityNotFound(_0x537577,null))[_0xf736('0x27')](respondWithResult(_0x537577,null))[_0xf736('0x47')](handleError(_0x537577,null));};exports[_0xf736('0x4b')]=function(_0x38e8e4,_0x19cf8f){return db['VtigerAccount'][_0xf736('0x4b')](_0x38e8e4[_0xf736('0x4c')],{})[_0xf736('0x27')](respondWithResult(_0x19cf8f,0xc9))[_0xf736('0x47')](handleError(_0x19cf8f,null));};exports[_0xf736('0x26')]=function(_0x382f52,_0x1ab3b3){if(_0x382f52['body']['id']){delete _0x382f52[_0xf736('0x4c')]['id'];}return db[_0xf736('0x2f')]['find']({'where':{'id':_0x382f52[_0xf736('0x4d')]['id']}})[_0xf736('0x27')](handleEntityNotFound(_0x1ab3b3,null))[_0xf736('0x27')](saveUpdates(_0x382f52[_0xf736('0x4c')],null))[_0xf736('0x27')](respondWithResult(_0x1ab3b3,null))[_0xf736('0x47')](handleError(_0x1ab3b3,null));};exports[_0xf736('0x28')]=function(_0x5627cc,_0x196b55){return db['VtigerAccount'][_0xf736('0x4a')]({'where':{'id':_0x5627cc['params']['id']}})[_0xf736('0x27')](handleEntityNotFound(_0x196b55,null))['then'](removeEntity(_0x196b55,null))[_0xf736('0x47')](handleError(_0x196b55,null));};exports['getConfigurations']=function(_0x3f70ae,_0x568223,_0x41ebc8){var _0x357aa0={};var _0x52a63e={};var _0x42a58f;var _0x46ace5;return db[_0xf736('0x2f')][_0xf736('0x4e')]({'where':{'id':_0x3f70ae[_0xf736('0x4d')]['id']}})[_0xf736('0x27')](handleEntityNotFound(_0x568223,null))['then'](function(_0x4b6bff){if(_0x4b6bff){_0x42a58f=_0x4b6bff;_0x52a63e[_0xf736('0x33')]=_[_0xf736('0x49')](db[_0xf736('0x4f')][_0xf736('0x30')]);_0x52a63e[_0xf736('0x34')]=_[_0xf736('0x49')](_0x3f70ae[_0xf736('0x34')]);_0x52a63e[_0xf736('0x3f')]=_[_0xf736('0x35')](_0x52a63e[_0xf736('0x33')],_0x52a63e['query']);_0x357aa0[_0xf736('0x37')]=_[_0xf736('0x35')](_0x52a63e[_0xf736('0x33')],qs[_0xf736('0x36')](_0x3f70ae[_0xf736('0x34')][_0xf736('0x36')]));_0x357aa0[_0xf736('0x37')]=_0x357aa0[_0xf736('0x37')][_0xf736('0x38')]?_0x357aa0[_0xf736('0x37')]:_0x52a63e[_0xf736('0x33')];_0x357aa0[_0xf736('0x3b')]=qs[_0xf736('0x3c')](_0x3f70ae[_0xf736('0x34')][_0xf736('0x3c')]);_0x357aa0[_0xf736('0x3d')]=qs[_0xf736('0x3f')](_[_0xf736('0x3e')](_0x3f70ae[_0xf736('0x34')],_0x52a63e['filters']));if(_0x3f70ae[_0xf736('0x34')][_0xf736('0x42')]){_0x357aa0[_0xf736('0x3d')]=_[_0xf736('0x43')](_0x357aa0[_0xf736('0x3d')],{'$or':_[_0xf736('0x2e')](_0x357aa0['attributes'],function(_0x31c692){var _0x9b3fad={};_0x9b3fad[_0x31c692]={'$like':'%'+_0x3f70ae[_0xf736('0x34')][_0xf736('0x42')]+'%'};return _0x9b3fad;})});}_0x357aa0=_[_0xf736('0x43')]({},_0x357aa0,_0x3f70ae[_0xf736('0x44')]);return _0x42a58f[_0xf736('0x50')](_0x357aa0);}})[_0xf736('0x27')](function(_0x4c1e1f){if(_0x4c1e1f){_0x46ace5=_0x4c1e1f['length'];if(!_0x3f70ae[_0xf736('0x34')][_0xf736('0x39')](_0xf736('0x3a'))){_0x357aa0['limit']=qs[_0xf736('0x1f')](_0x3f70ae['query'][_0xf736('0x1f')]);_0x357aa0[_0xf736('0x1c')]=qs['offset'](_0x3f70ae[_0xf736('0x34')][_0xf736('0x1c')]);}return _0x42a58f[_0xf736('0x50')](_0x357aa0);}})[_0xf736('0x27')](function(_0x2647bb){if(_0x2647bb){return _0x2647bb?{'count':_0x46ace5,'rows':_0x2647bb}:null;}})[_0xf736('0x27')](respondWithResult(_0x568223,null))[_0xf736('0x47')](handleError(_0x568223,null));};exports[_0xf736('0x51')]=function(_0x52779e,_0x11d0cd,_0x1fb1ce){if(_0x52779e[_0xf736('0x4c')]['id']){delete _0x52779e[_0xf736('0x4c')]['id'];}return db[_0xf736('0x2f')][_0xf736('0x4e')]({'where':{'id':_0x52779e[_0xf736('0x4d')]['id']}})[_0xf736('0x27')](handleEntityNotFound(_0x11d0cd,null))[_0xf736('0x27')](function(_0x27bb2a){if(_0x27bb2a){_0x52779e[_0xf736('0x4c')][_0xf736('0x52')]=_0x27bb2a['id'];_0x52779e['body'][_0xf736('0x53')]=integrations[_0xf736('0x54')](_0x52779e[_0xf736('0x4c')][_0xf736('0x55')],_0x52779e[_0xf736('0x4c')]['type']);_0x52779e[_0xf736('0x4c')][_0xf736('0x56')]=integrations[_0xf736('0x57')](_0x52779e[_0xf736('0x4c')]['channel'],_0x52779e[_0xf736('0x4c')][_0xf736('0x40')]);return db[_0xf736('0x4f')][_0xf736('0x4b')](_0x52779e['body'],{'include':[{'model':db['VtigerField'],'as':_0xf736('0x53')},{'model':db[_0xf736('0x58')],'as':_0xf736('0x56')}]});}return null;})[_0xf736('0x27')](respondWithResult(_0x11d0cd,null))['catch'](handleError(_0x11d0cd,null));};var md5=require('md5');exports[_0xf736('0x59')]=function(_0x74ce67,_0x1d6b93,_0x32b7af){var _0x39d405=null;var _0x2bbec1=null;var _0xe27a20=null;var _0x55d2ca=null;var _0x3d78a1='';return db[_0xf736('0x2f')][_0xf736('0x4e')]({'where':{'id':_0x74ce67['params']['id']},'attributes':['id','name',_0xf736('0x5a'),'description','moduleName',_0xf736('0x5b'),'serverUrl','accessKey']})[_0xf736('0x27')](handleEntityNotFound(_0x1d6b93,null))[_0xf736('0x27')](function(_0x89963d){if(_0x89963d){_0x39d405=_0x89963d[_0xf736('0x5a')];_0x2bbec1=_0x89963d[_0xf736('0x5c')];_0xe27a20=_0x89963d['moduleName'];_0x3d78a1=_0x89963d[_0xf736('0x5b')];var _0x3cdfa9=_0x3d78a1['slice'](-0x1);if(_0x3cdfa9==='/'){_0x3d78a1=_0x3d78a1[_0xf736('0x5d')](0x0,_0x3d78a1[_0xf736('0x5e')](_0x3cdfa9));}_0x55d2ca=util['format']('%s/webservice.php',_0x3d78a1);var _0x467df0={'method':_0xf736('0x5f'),'uri':_0x55d2ca,'qs':{'operation':_0xf736('0x60'),'username':_0x89963d[_0xf736('0x5a')]},'json':!![]};return rp(_0x467df0);}})['then'](function(_0x3b85ae){if(_0x3b85ae[_0xf736('0x61')]){var _0xa36fc4={'method':_0xf736('0x62'),'uri':_0x55d2ca,'form':{'operation':_0xf736('0x63'),'username':_0x39d405,'accessKey':md5(_0x3b85ae[_0xf736('0x64')][_0xf736('0x65')]+_0x2bbec1)},'json':!![]};return rp(_0xa36fc4);}})[_0xf736('0x27')](function(_0x2d5b01){if(_0x2d5b01[_0xf736('0x61')]){var _0x52fee5={'method':_0xf736('0x5f'),'uri':_0x55d2ca,'qs':{'operation':_0xf736('0x66'),'username':_0x39d405,'sessionName':_0x2d5b01['result']['sessionName'],'elementType':_0xe27a20},'json':!![]};return rp(_0x52fee5);}})['then'](function(_0x3ce212){if(_0x3ce212[_0xf736('0x61')]){var _0xaf0ab6=[_0xf736('0x67'),_0xf736('0x68'),'owner'];_[_0xf736('0x69')](_0x3ce212[_0xf736('0x64')][_0xf736('0x36')],function(_0x14d93a){return _0xaf0ab6[_0xf736('0x6a')](_0x14d93a[_0xf736('0x40')][_0xf736('0x2b')]);});_[_0xf736('0x69')](_0x3ce212[_0xf736('0x64')]['fields'],function(_0x16ebc6){return _0x16ebc6[_0xf736('0x6b')]===_0xf736('0x6c');});return{'count':_0x3ce212['result'][_0xf736('0x36')][_0xf736('0x38')],'rows':_[_0xf736('0x2e')](_0x3ce212[_0xf736('0x64')][_0xf736('0x36')],function(_0x472ff1){return{'id':_0x472ff1[_0xf736('0x2b')],'name':_0x472ff1[_0xf736('0x6d')],'custom':_[_0xf736('0x6e')](_0x472ff1[_0xf736('0x2b')],_0xf736('0x6f'))?!![]:![],'options':_0x472ff1[_0xf736('0x40')][_0xf736('0x2b')]==='picklist'&&_0x472ff1[_0xf736('0x40')][_0xf736('0x70')][_0xf736('0x38')]>0x0?_['map'](_0x472ff1[_0xf736('0x40')][_0xf736('0x70')],function(_0x2672ef){return{'name':_0x2672ef[_0xf736('0x6d')],'value':_0x2672ef['value']};}):[]};})};}})[_0xf736('0x27')](respondWithResult(_0x1d6b93,null))[_0xf736('0x47')](function(_0x55b49d){console['log']('vTiger\x20error:\x20'+_0x55b49d);var _0xd19e53=_0x74ce67['query'][_0xf736('0x71')]?0x1f4:_0x55b49d['statusCode']||0x1f4;logger[_0xf736('0x29')](_0xf736('0x72'),_0xf736('0x59'),_0xd19e53,JSON[_0xf736('0x73')](_0x55b49d));delete _0x55b49d[_0xf736('0x2b')];if(_0xd19e53===0x191){_0xd19e53=0x190;}_0x1d6b93[_0xf736('0x20')](_0xd19e53)[_0xf736('0x2c')](_0x74ce67['query'][_0xf736('0x71')]?{'message':_0xf736('0x74'),'statusCode':_0x55b49d[_0xf736('0x75')]}:_0x55b49d);});};