6087aa5e70a50dfa441e07eb099abf0e02bdbb19
[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 _0x6117=['value','log','vTiger\x20error:\x20','test','stringify','statusCode','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','destroy','then','end','error','name','send','index','rawAttributes','fieldName','key','model','map','query','keys','intersection','fields','attributes','nolimit','order','sort','filters','pick','merge','where','type','VIRTUAL','filter','options','VtigerAccount','include','findAll','rows','params','includeAll','create','body','update','find','catch','findOne','VtigerConfiguration','length','getConfigurations','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','VtigerField','md5','getFields','username','description','moduleName','remoteUri','serverUrl','accessKey','slice','format','GET','getchallenge','success','POST','login','result','token','sessionName','autogenerated','reference','owner','remove','editable','false','startsWith','cf_','picklist','picklistValues','label'];(function(_0x2763f2,_0x416af8){var _0x3ef471=function(_0x288aa2){while(--_0x288aa2){_0x2763f2['push'](_0x2763f2['shift']());}};_0x3ef471(++_0x416af8);}(_0x6117,0x171));var _0x7611=function(_0xc00c6f,_0x1eda6e){_0xc00c6f=_0xc00c6f-0x0;var _0x31a222=_0x6117[_0xc00c6f];return _0x31a222;};'use strict';var emlformat=require(_0x7611('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7611('0x1'));var jsonpatch=require(_0x7611('0x2'));var rp=require(_0x7611('0x3'));var moment=require(_0x7611('0x4'));var BPromise=require(_0x7611('0x5'));var Mustache=require(_0x7611('0x6'));var util=require(_0x7611('0x7'));var path=require('path');var sox=require(_0x7611('0x8'));var csv=require(_0x7611('0x9'));var ejs=require(_0x7611('0xa'));var fs=require('fs');var fs_extra=require(_0x7611('0xb'));var _=require('lodash');var squel=require(_0x7611('0xc'));var crypto=require('crypto');var jsforce=require(_0x7611('0xd'));var deskjs=require(_0x7611('0xe'));var toCsv=require('to-csv');var querystring=require(_0x7611('0xf'));var Papa=require('papaparse');var Redis=require(_0x7611('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x7611('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7611('0x12'));var logger=require(_0x7611('0x13'))('api');var utils=require(_0x7611('0x14'));var config=require(_0x7611('0x15'));var licenseUtil=require(_0x7611('0x16'));var db=require(_0x7611('0x17'))['db'];var integrations=require(_0x7611('0x18'));function respondWithStatusCode(_0x666ec5,_0x1bc77f){_0x1bc77f=_0x1bc77f||0xcc;return function(_0x722205){if(_0x722205){return _0x666ec5['sendStatus'](_0x1bc77f);}return _0x666ec5[_0x7611('0x19')](_0x1bc77f)['end']();};}function respondWithResult(_0x151251,_0x3c6332){_0x3c6332=_0x3c6332||0xc8;return function(_0x460eca){if(_0x460eca){return _0x151251[_0x7611('0x19')](_0x3c6332)[_0x7611('0x1a')](_0x460eca);}};}function respondWithFilteredResult(_0x11649a,_0x1764d2){return function(_0x9cda39){if(_0x9cda39){var _0x5c5d65=typeof _0x1764d2[_0x7611('0x1b')]===_0x7611('0x1c')&&typeof _0x1764d2[_0x7611('0x1d')]===_0x7611('0x1c');var _0xca92d0=_0x9cda39['count'];var _0x2d49c3=_0x5c5d65?0x0:_0x1764d2[_0x7611('0x1b')];var _0x7e8948=_0x5c5d65?_0x9cda39[_0x7611('0x1e')]:_0x1764d2[_0x7611('0x1b')]+_0x1764d2[_0x7611('0x1d')];var _0xbd89a7;if(_0x7e8948>=_0xca92d0){_0x7e8948=_0xca92d0;_0xbd89a7=0xc8;}else{_0xbd89a7=0xce;}_0x11649a[_0x7611('0x19')](_0xbd89a7);return _0x11649a[_0x7611('0x1f')](_0x7611('0x20'),_0x2d49c3+'-'+_0x7e8948+'/'+_0xca92d0)['json'](_0x9cda39);}return null;};}function patchUpdates(_0x16c546){return function(_0x2366c6){try{jsonpatch[_0x7611('0x21')](_0x2366c6,_0x16c546,!![]);}catch(_0x4ce80c){return BPromise[_0x7611('0x22')](_0x4ce80c);}return _0x2366c6['save']();};}function saveUpdates(_0x3f1c9d,_0x3174c9){return function(_0x5c8878){if(_0x5c8878){return _0x5c8878['update'](_0x3f1c9d)['then'](function(_0x576441){return _0x576441;});}return null;};}function removeEntity(_0x567d05,_0x4e4454){return function(_0x3b80cf){if(_0x3b80cf){return _0x3b80cf[_0x7611('0x23')]()[_0x7611('0x24')](function(){_0x567d05[_0x7611('0x19')](0xcc)[_0x7611('0x25')]();});}};}function handleEntityNotFound(_0x22ce22,_0x3e1364){return function(_0x3eb9fe){if(!_0x3eb9fe){_0x22ce22['sendStatus'](0x194);}return _0x3eb9fe;};}function handleError(_0x17827d,_0x3e5071){_0x3e5071=_0x3e5071||0x1f4;return function(_0x2fca56){logger[_0x7611('0x26')](_0x2fca56['stack']);if(_0x2fca56[_0x7611('0x27')]){delete _0x2fca56[_0x7611('0x27')];}_0x17827d[_0x7611('0x19')](_0x3e5071)[_0x7611('0x28')](_0x2fca56);};}exports[_0x7611('0x29')]=function(_0xc5cd14,_0x21c395){var _0x4538c8={},_0x5cb699={},_0x172989={'count':0x0,'rows':[]};var _0x18f687=_['map'](db['VtigerAccount'][_0x7611('0x2a')],function(_0x15b267){return{'name':_0x15b267[_0x7611('0x2b')],'type':_0x15b267['type'][_0x7611('0x2c')]};});_0x5cb699[_0x7611('0x2d')]=_[_0x7611('0x2e')](_0x18f687,_0x7611('0x27'));_0x5cb699[_0x7611('0x2f')]=_[_0x7611('0x30')](_0xc5cd14[_0x7611('0x2f')]);_0x5cb699['filters']=_[_0x7611('0x31')](_0x5cb699['model'],_0x5cb699['query']);_0x4538c8['attributes']=_[_0x7611('0x31')](_0x5cb699[_0x7611('0x2d')],qs[_0x7611('0x32')](_0xc5cd14[_0x7611('0x2f')][_0x7611('0x32')]));_0x4538c8['attributes']=_0x4538c8[_0x7611('0x33')]['length']?_0x4538c8['attributes']:_0x5cb699[_0x7611('0x2d')];if(!_0xc5cd14[_0x7611('0x2f')]['hasOwnProperty'](_0x7611('0x34'))){_0x4538c8[_0x7611('0x1d')]=qs['limit'](_0xc5cd14[_0x7611('0x2f')]['limit']);_0x4538c8[_0x7611('0x1b')]=qs[_0x7611('0x1b')](_0xc5cd14[_0x7611('0x2f')][_0x7611('0x1b')]);}_0x4538c8[_0x7611('0x35')]=qs[_0x7611('0x36')](_0xc5cd14['query'][_0x7611('0x36')]);_0x4538c8['where']=qs[_0x7611('0x37')](_[_0x7611('0x38')](_0xc5cd14['query'],_0x5cb699['filters']),_0x18f687);if(_0xc5cd14[_0x7611('0x2f')]['filter']){_0x4538c8['where']=_[_0x7611('0x39')](_0x4538c8[_0x7611('0x3a')],{'$or':_[_0x7611('0x2e')](_0x18f687,function(_0x35ebe2){if(_0x35ebe2[_0x7611('0x3b')]!==_0x7611('0x3c')){var _0x280c93={};_0x280c93[_0x35ebe2[_0x7611('0x27')]]={'$like':'%'+_0xc5cd14['query'][_0x7611('0x3d')]+'%'};return _0x280c93;}})});}_0x4538c8=_['merge']({},_0x4538c8,_0xc5cd14[_0x7611('0x3e')]);var _0x5206af={'where':_0x4538c8[_0x7611('0x3a')]};return db[_0x7611('0x3f')]['count'](_0x5206af)[_0x7611('0x24')](function(_0x55e6b7){_0x172989[_0x7611('0x1e')]=_0x55e6b7;if(_0xc5cd14[_0x7611('0x2f')]['includeAll']){_0x4538c8[_0x7611('0x40')]=[{'all':!![]}];}return db['VtigerAccount'][_0x7611('0x41')](_0x4538c8);})['then'](function(_0x341f86){_0x172989[_0x7611('0x42')]=_0x341f86;return _0x172989;})[_0x7611('0x24')](respondWithFilteredResult(_0x21c395,_0x4538c8))['catch'](handleError(_0x21c395,null));};exports['show']=function(_0x3e37a9,_0x2ec210){var _0x1436eb={'raw':![],'where':{'id':_0x3e37a9[_0x7611('0x43')]['id']}},_0x152ec4={};_0x152ec4['model']=_[_0x7611('0x30')](db['VtigerAccount'][_0x7611('0x2a')]);_0x152ec4[_0x7611('0x2f')]=_[_0x7611('0x30')](_0x3e37a9[_0x7611('0x2f')]);_0x152ec4[_0x7611('0x37')]=_['intersection'](_0x152ec4[_0x7611('0x2d')],_0x152ec4['query']);_0x1436eb[_0x7611('0x33')]=_[_0x7611('0x31')](_0x152ec4[_0x7611('0x2d')],qs['fields'](_0x3e37a9[_0x7611('0x2f')][_0x7611('0x32')]));_0x1436eb[_0x7611('0x33')]=_0x1436eb['attributes']['length']?_0x1436eb[_0x7611('0x33')]:_0x152ec4['model'];if(_0x3e37a9[_0x7611('0x2f')][_0x7611('0x44')]){_0x1436eb[_0x7611('0x40')]=[{'all':!![]}];}_0x1436eb=_[_0x7611('0x39')]({},_0x1436eb,_0x3e37a9['options']);return db[_0x7611('0x3f')]['find'](_0x1436eb)[_0x7611('0x24')](handleEntityNotFound(_0x2ec210,null))[_0x7611('0x24')](respondWithResult(_0x2ec210,null))['catch'](handleError(_0x2ec210,null));};exports[_0x7611('0x45')]=function(_0x106569,_0x5dd702){return db[_0x7611('0x3f')][_0x7611('0x45')](_0x106569[_0x7611('0x46')],{})[_0x7611('0x24')](respondWithResult(_0x5dd702,0xc9))['catch'](handleError(_0x5dd702,null));};exports[_0x7611('0x47')]=function(_0x20919e,_0x5e1247){if(_0x20919e[_0x7611('0x46')]['id']){delete _0x20919e['body']['id'];}return db['VtigerAccount'][_0x7611('0x48')]({'where':{'id':_0x20919e['params']['id']}})['then'](handleEntityNotFound(_0x5e1247,null))[_0x7611('0x24')](saveUpdates(_0x20919e[_0x7611('0x46')],null))[_0x7611('0x24')](respondWithResult(_0x5e1247,null))[_0x7611('0x49')](handleError(_0x5e1247,null));};exports['destroy']=function(_0x55b996,_0x29cd37){return db[_0x7611('0x3f')]['find']({'where':{'id':_0x55b996[_0x7611('0x43')]['id']}})[_0x7611('0x24')](handleEntityNotFound(_0x29cd37,null))[_0x7611('0x24')](removeEntity(_0x29cd37,null))[_0x7611('0x49')](handleError(_0x29cd37,null));};exports['getConfigurations']=function(_0x35ac06,_0x5464f1,_0x26967f){var _0x35c445={};var _0x5f0f7d={};var _0x43c0d0;var _0x2e1a23;return db[_0x7611('0x3f')][_0x7611('0x4a')]({'where':{'id':_0x35ac06[_0x7611('0x43')]['id']}})[_0x7611('0x24')](handleEntityNotFound(_0x5464f1,null))[_0x7611('0x24')](function(_0x257156){if(_0x257156){_0x43c0d0=_0x257156;_0x5f0f7d[_0x7611('0x2d')]=_['keys'](db[_0x7611('0x4b')][_0x7611('0x2a')]);_0x5f0f7d[_0x7611('0x2f')]=_[_0x7611('0x30')](_0x35ac06['query']);_0x5f0f7d[_0x7611('0x37')]=_['intersection'](_0x5f0f7d['model'],_0x5f0f7d[_0x7611('0x2f')]);_0x35c445['attributes']=_[_0x7611('0x31')](_0x5f0f7d[_0x7611('0x2d')],qs[_0x7611('0x32')](_0x35ac06[_0x7611('0x2f')]['fields']));_0x35c445['attributes']=_0x35c445[_0x7611('0x33')][_0x7611('0x4c')]?_0x35c445[_0x7611('0x33')]:_0x5f0f7d[_0x7611('0x2d')];_0x35c445['order']=qs[_0x7611('0x36')](_0x35ac06[_0x7611('0x2f')][_0x7611('0x36')]);_0x35c445['where']=qs[_0x7611('0x37')](_['pick'](_0x35ac06[_0x7611('0x2f')],_0x5f0f7d[_0x7611('0x37')]));if(_0x35ac06['query']['filter']){_0x35c445[_0x7611('0x3a')]=_['merge'](_0x35c445[_0x7611('0x3a')],{'$or':_[_0x7611('0x2e')](_0x35c445['attributes'],function(_0xa73b7f){var _0x49f8b3={};_0x49f8b3[_0xa73b7f]={'$like':'%'+_0x35ac06['query'][_0x7611('0x3d')]+'%'};return _0x49f8b3;})});}_0x35c445=_[_0x7611('0x39')]({},_0x35c445,_0x35ac06[_0x7611('0x3e')]);return _0x43c0d0[_0x7611('0x4d')](_0x35c445);}})[_0x7611('0x24')](function(_0x255975){if(_0x255975){_0x2e1a23=_0x255975[_0x7611('0x4c')];if(!_0x35ac06[_0x7611('0x2f')][_0x7611('0x4e')](_0x7611('0x34'))){_0x35c445[_0x7611('0x1d')]=qs[_0x7611('0x1d')](_0x35ac06[_0x7611('0x2f')][_0x7611('0x1d')]);_0x35c445[_0x7611('0x1b')]=qs['offset'](_0x35ac06[_0x7611('0x2f')][_0x7611('0x1b')]);}return _0x43c0d0['getConfigurations'](_0x35c445);}})[_0x7611('0x24')](function(_0x7e79c6){if(_0x7e79c6){return _0x7e79c6?{'count':_0x2e1a23,'rows':_0x7e79c6}:null;}})['then'](respondWithResult(_0x5464f1,null))[_0x7611('0x49')](handleError(_0x5464f1,null));};exports[_0x7611('0x4f')]=function(_0x27b455,_0x4d7880,_0x4ab19a){if(_0x27b455[_0x7611('0x46')]['id']){delete _0x27b455[_0x7611('0x46')]['id'];}return db[_0x7611('0x3f')][_0x7611('0x4a')]({'where':{'id':_0x27b455[_0x7611('0x43')]['id']}})[_0x7611('0x24')](handleEntityNotFound(_0x4d7880,null))[_0x7611('0x24')](function(_0xdf3e3e){if(_0xdf3e3e){_0x27b455[_0x7611('0x46')][_0x7611('0x50')]=_0xdf3e3e['id'];_0x27b455[_0x7611('0x46')][_0x7611('0x51')]=integrations[_0x7611('0x52')](_0x27b455['body'][_0x7611('0x53')],_0x27b455[_0x7611('0x46')][_0x7611('0x3b')]);_0x27b455[_0x7611('0x46')][_0x7611('0x54')]=integrations['getDescriptions'](_0x27b455['body'][_0x7611('0x53')],_0x27b455['body'][_0x7611('0x3b')]);return db[_0x7611('0x4b')][_0x7611('0x45')](_0x27b455['body'],{'include':[{'model':db['VtigerField'],'as':'Subjects'},{'model':db[_0x7611('0x55')],'as':_0x7611('0x54')}]});}return null;})[_0x7611('0x24')](respondWithResult(_0x4d7880,null))['catch'](handleError(_0x4d7880,null));};var md5=require(_0x7611('0x56'));exports[_0x7611('0x57')]=function(_0x23d5ef,_0xeaf2b8,_0x2bbff9){var _0x1cefe1=null;var _0x27456a=null;var _0x537e6d=null;var _0x219513=null;var _0x597bb5='';return db[_0x7611('0x3f')][_0x7611('0x4a')]({'where':{'id':_0x23d5ef[_0x7611('0x43')]['id']},'attributes':['id','name',_0x7611('0x58'),_0x7611('0x59'),_0x7611('0x5a'),_0x7611('0x5b'),_0x7611('0x5c'),_0x7611('0x5d')]})[_0x7611('0x24')](handleEntityNotFound(_0xeaf2b8,null))['then'](function(_0x446233){if(_0x446233){_0x1cefe1=_0x446233[_0x7611('0x58')];_0x27456a=_0x446233['accessKey'];_0x537e6d=_0x446233['moduleName'];_0x597bb5=_0x446233[_0x7611('0x5b')];var _0x74b392=_0x597bb5[_0x7611('0x5e')](-0x1);if(_0x74b392==='/'){_0x597bb5=_0x597bb5['substring'](0x0,_0x597bb5['lastIndexOf'](_0x74b392));}_0x219513=util[_0x7611('0x5f')]('%s/webservice.php',_0x597bb5);var _0x21570d={'method':_0x7611('0x60'),'uri':_0x219513,'qs':{'operation':_0x7611('0x61'),'username':_0x446233[_0x7611('0x58')]},'json':!![]};return rp(_0x21570d);}})[_0x7611('0x24')](function(_0x2b0e61){if(_0x2b0e61[_0x7611('0x62')]){var _0x4ea7da={'method':_0x7611('0x63'),'uri':_0x219513,'form':{'operation':_0x7611('0x64'),'username':_0x1cefe1,'accessKey':md5(_0x2b0e61[_0x7611('0x65')][_0x7611('0x66')]+_0x27456a)},'json':!![]};return rp(_0x4ea7da);}})[_0x7611('0x24')](function(_0x2b0e7f){if(_0x2b0e7f[_0x7611('0x62')]){var _0x498f7e={'method':_0x7611('0x60'),'uri':_0x219513,'qs':{'operation':'describe','username':_0x1cefe1,'sessionName':_0x2b0e7f[_0x7611('0x65')][_0x7611('0x67')],'elementType':_0x537e6d},'json':!![]};return rp(_0x498f7e);}})['then'](function(_0x193291){if(_0x193291[_0x7611('0x62')]){var _0x1a7411=[_0x7611('0x68'),_0x7611('0x69'),_0x7611('0x6a')];_[_0x7611('0x6b')](_0x193291[_0x7611('0x65')]['fields'],function(_0x82bc32){return _0x1a7411['includes'](_0x82bc32[_0x7611('0x3b')][_0x7611('0x27')]);});_['remove'](_0x193291[_0x7611('0x65')][_0x7611('0x32')],function(_0x544e20){return _0x544e20[_0x7611('0x6c')]===_0x7611('0x6d');});return{'count':_0x193291[_0x7611('0x65')]['fields'][_0x7611('0x4c')],'rows':_['map'](_0x193291[_0x7611('0x65')][_0x7611('0x32')],function(_0x2f28ae){return{'id':_0x2f28ae[_0x7611('0x27')],'name':_0x2f28ae['label'],'custom':_[_0x7611('0x6e')](_0x2f28ae['name'],_0x7611('0x6f'))?!![]:![],'options':_0x2f28ae[_0x7611('0x3b')][_0x7611('0x27')]===_0x7611('0x70')&&_0x2f28ae[_0x7611('0x3b')][_0x7611('0x71')][_0x7611('0x4c')]>0x0?_[_0x7611('0x2e')](_0x2f28ae['type'][_0x7611('0x71')],function(_0x469b95){return{'name':_0x469b95[_0x7611('0x72')],'value':_0x469b95[_0x7611('0x73')]};}):[]};})};}})[_0x7611('0x24')](respondWithResult(_0xeaf2b8,null))['catch'](function(_0x423b30){console[_0x7611('0x74')](_0x7611('0x75')+_0x423b30);var _0xde6e32=_0x23d5ef[_0x7611('0x2f')][_0x7611('0x76')]?0x1f4:_0x423b30['statusCode']||0x1f4;logger[_0x7611('0x26')]('getFields,\x20%s,\x20%s,\x20%s',_0x7611('0x57'),_0xde6e32,JSON[_0x7611('0x77')](_0x423b30));delete _0x423b30['name'];if(_0xde6e32===0x191){_0xde6e32=0x190;}_0xeaf2b8[_0x7611('0x19')](_0xde6e32)[_0x7611('0x28')](_0x23d5ef['query'][_0x7611('0x76')]?{'message':'Wrong\x20credentials','statusCode':_0x423b30[_0x7611('0x78')]}:_0x423b30);});};