6a7a9d8418178e6822f9b49c613339cdd19e6adb
[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 _0x4b5b=['VtigerField','md5','getFields','username','description','moduleName','serverUrl','accessKey','slice','lastIndexOf','getchallenge','POST','login','result','token','success','GET','describe','reference','owner','remove','editable','false','label','startsWith','cf_','picklist','picklistValues','value','test','statusCode','stringify','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','then','destroy','error','name','send','index','map','VtigerAccount','rawAttributes','key','model','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','filter','where','merge','type','VIRTUAL','options','includeAll','include','rows','catch','show','params','keys','length','find','create','body','update','getConfigurations','findOne','pick','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','VtigerConfiguration'];(function(_0x28efdf,_0x6b7e5b){var _0x303aa3=function(_0x735502){while(--_0x735502){_0x28efdf['push'](_0x28efdf['shift']());}};_0x303aa3(++_0x6b7e5b);}(_0x4b5b,0x97));var _0xb4b5=function(_0x4c63a7,_0x5250b7){_0x4c63a7=_0x4c63a7-0x0;var _0x233dd1=_0x4b5b[_0x4c63a7];return _0x233dd1;};'use strict';var emlformat=require(_0xb4b5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb4b5('0x1'));var jsonpatch=require(_0xb4b5('0x2'));var rp=require(_0xb4b5('0x3'));var moment=require(_0xb4b5('0x4'));var BPromise=require(_0xb4b5('0x5'));var Mustache=require(_0xb4b5('0x6'));var util=require(_0xb4b5('0x7'));var path=require(_0xb4b5('0x8'));var sox=require(_0xb4b5('0x9'));var csv=require(_0xb4b5('0xa'));var ejs=require(_0xb4b5('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb4b5('0xc'));var squel=require(_0xb4b5('0xd'));var crypto=require(_0xb4b5('0xe'));var jsforce=require(_0xb4b5('0xf'));var deskjs=require(_0xb4b5('0x10'));var toCsv=require('to-csv');var querystring=require(_0xb4b5('0x11'));var Papa=require('papaparse');var Redis=require(_0xb4b5('0x12'));var authService=require(_0xb4b5('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xb4b5('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb4b5('0x15'))(_0xb4b5('0x16'));var utils=require('../../config/utils');var config=require(_0xb4b5('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xb4b5('0x18'))['db'];var integrations=require(_0xb4b5('0x19'));function respondWithStatusCode(_0x484aac,_0xe83e1){_0xe83e1=_0xe83e1||0xcc;return function(_0x2c2ba5){if(_0x2c2ba5){return _0x484aac[_0xb4b5('0x1a')](_0xe83e1);}return _0x484aac[_0xb4b5('0x1b')](_0xe83e1)[_0xb4b5('0x1c')]();};}function respondWithResult(_0x3f03cc,_0x2ae59a){_0x2ae59a=_0x2ae59a||0xc8;return function(_0x4f9c0c){if(_0x4f9c0c){return _0x3f03cc[_0xb4b5('0x1b')](_0x2ae59a)[_0xb4b5('0x1d')](_0x4f9c0c);}};}function respondWithFilteredResult(_0x2772aa,_0x57278d){return function(_0x7e00dd){if(_0x7e00dd){var _0x15ec39=typeof _0x57278d[_0xb4b5('0x1e')]===_0xb4b5('0x1f')&&typeof _0x57278d[_0xb4b5('0x20')]===_0xb4b5('0x1f');var _0x3bdbd8=_0x7e00dd[_0xb4b5('0x21')];var _0x17746e=_0x15ec39?0x0:_0x57278d[_0xb4b5('0x1e')];var _0x5a067f=_0x15ec39?_0x7e00dd['count']:_0x57278d[_0xb4b5('0x1e')]+_0x57278d[_0xb4b5('0x20')];var _0x462653;if(_0x5a067f>=_0x3bdbd8){_0x5a067f=_0x3bdbd8;_0x462653=0xc8;}else{_0x462653=0xce;}_0x2772aa[_0xb4b5('0x1b')](_0x462653);return _0x2772aa['set'](_0xb4b5('0x22'),_0x17746e+'-'+_0x5a067f+'/'+_0x3bdbd8)[_0xb4b5('0x1d')](_0x7e00dd);}return null;};}function patchUpdates(_0x4f805b){return function(_0x4d0c90){try{jsonpatch[_0xb4b5('0x23')](_0x4d0c90,_0x4f805b,!![]);}catch(_0x2e13f9){return BPromise[_0xb4b5('0x24')](_0x2e13f9);}return _0x4d0c90['save']();};}function saveUpdates(_0x29e4f9,_0x1dc7ff){return function(_0x473504){if(_0x473504){return _0x473504['update'](_0x29e4f9)[_0xb4b5('0x25')](function(_0x1ca36b){return _0x1ca36b;});}return null;};}function removeEntity(_0xb490af,_0x22b328){return function(_0x132459){if(_0x132459){return _0x132459[_0xb4b5('0x26')]()[_0xb4b5('0x25')](function(){_0xb490af[_0xb4b5('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe3a05a,_0x63b6d0){return function(_0x30a06a){if(!_0x30a06a){_0xe3a05a[_0xb4b5('0x1a')](0x194);}return _0x30a06a;};}function handleError(_0x28773a,_0x448aa8){_0x448aa8=_0x448aa8||0x1f4;return function(_0x4b8677){logger[_0xb4b5('0x27')](_0x4b8677['stack']);if(_0x4b8677[_0xb4b5('0x28')]){delete _0x4b8677['name'];}_0x28773a[_0xb4b5('0x1b')](_0x448aa8)[_0xb4b5('0x29')](_0x4b8677);};}exports[_0xb4b5('0x2a')]=function(_0x95f156,_0xf90ff){var _0x54fa03={},_0x5bc312={},_0x4a8007={'count':0x0,'rows':[]};var _0x5402a1=_[_0xb4b5('0x2b')](db[_0xb4b5('0x2c')][_0xb4b5('0x2d')],function(_0x58e475){return{'name':_0x58e475['fieldName'],'type':_0x58e475['type'][_0xb4b5('0x2e')]};});_0x5bc312[_0xb4b5('0x2f')]=_[_0xb4b5('0x2b')](_0x5402a1,_0xb4b5('0x28'));_0x5bc312[_0xb4b5('0x30')]=_['keys'](_0x95f156['query']);_0x5bc312[_0xb4b5('0x31')]=_[_0xb4b5('0x32')](_0x5bc312[_0xb4b5('0x2f')],_0x5bc312['query']);_0x54fa03['attributes']=_['intersection'](_0x5bc312[_0xb4b5('0x2f')],qs[_0xb4b5('0x33')](_0x95f156[_0xb4b5('0x30')][_0xb4b5('0x33')]));_0x54fa03['attributes']=_0x54fa03[_0xb4b5('0x34')]['length']?_0x54fa03[_0xb4b5('0x34')]:_0x5bc312[_0xb4b5('0x2f')];if(!_0x95f156['query'][_0xb4b5('0x35')](_0xb4b5('0x36'))){_0x54fa03['limit']=qs[_0xb4b5('0x20')](_0x95f156[_0xb4b5('0x30')][_0xb4b5('0x20')]);_0x54fa03[_0xb4b5('0x1e')]=qs[_0xb4b5('0x1e')](_0x95f156[_0xb4b5('0x30')][_0xb4b5('0x1e')]);}_0x54fa03[_0xb4b5('0x37')]=qs['sort'](_0x95f156[_0xb4b5('0x30')][_0xb4b5('0x38')]);_0x54fa03['where']=qs['filters'](_['pick'](_0x95f156['query'],_0x5bc312[_0xb4b5('0x31')]),_0x5402a1);if(_0x95f156[_0xb4b5('0x30')][_0xb4b5('0x39')]){_0x54fa03[_0xb4b5('0x3a')]=_[_0xb4b5('0x3b')](_0x54fa03[_0xb4b5('0x3a')],{'$or':_[_0xb4b5('0x2b')](_0x5402a1,function(_0x4db0ea){if(_0x4db0ea[_0xb4b5('0x3c')]!==_0xb4b5('0x3d')){var _0x402414={};_0x402414[_0x4db0ea[_0xb4b5('0x28')]]={'$like':'%'+_0x95f156[_0xb4b5('0x30')][_0xb4b5('0x39')]+'%'};return _0x402414;}})});}_0x54fa03=_[_0xb4b5('0x3b')]({},_0x54fa03,_0x95f156[_0xb4b5('0x3e')]);var _0x819d9={'where':_0x54fa03[_0xb4b5('0x3a')]};return db['VtigerAccount'][_0xb4b5('0x21')](_0x819d9)[_0xb4b5('0x25')](function(_0x188a84){_0x4a8007['count']=_0x188a84;if(_0x95f156[_0xb4b5('0x30')][_0xb4b5('0x3f')]){_0x54fa03[_0xb4b5('0x40')]=[{'all':!![]}];}return db[_0xb4b5('0x2c')]['findAll'](_0x54fa03);})[_0xb4b5('0x25')](function(_0x5c9589){_0x4a8007[_0xb4b5('0x41')]=_0x5c9589;return _0x4a8007;})[_0xb4b5('0x25')](respondWithFilteredResult(_0xf90ff,_0x54fa03))[_0xb4b5('0x42')](handleError(_0xf90ff,null));};exports[_0xb4b5('0x43')]=function(_0x6ca77e,_0x4e0585){var _0x3c4093={'raw':![],'where':{'id':_0x6ca77e[_0xb4b5('0x44')]['id']}},_0x321287={};_0x321287[_0xb4b5('0x2f')]=_[_0xb4b5('0x45')](db[_0xb4b5('0x2c')][_0xb4b5('0x2d')]);_0x321287['query']=_[_0xb4b5('0x45')](_0x6ca77e[_0xb4b5('0x30')]);_0x321287['filters']=_[_0xb4b5('0x32')](_0x321287[_0xb4b5('0x2f')],_0x321287[_0xb4b5('0x30')]);_0x3c4093[_0xb4b5('0x34')]=_[_0xb4b5('0x32')](_0x321287[_0xb4b5('0x2f')],qs['fields'](_0x6ca77e[_0xb4b5('0x30')]['fields']));_0x3c4093['attributes']=_0x3c4093[_0xb4b5('0x34')][_0xb4b5('0x46')]?_0x3c4093[_0xb4b5('0x34')]:_0x321287['model'];if(_0x6ca77e[_0xb4b5('0x30')][_0xb4b5('0x3f')]){_0x3c4093['include']=[{'all':!![]}];}_0x3c4093=_[_0xb4b5('0x3b')]({},_0x3c4093,_0x6ca77e['options']);return db[_0xb4b5('0x2c')][_0xb4b5('0x47')](_0x3c4093)[_0xb4b5('0x25')](handleEntityNotFound(_0x4e0585,null))[_0xb4b5('0x25')](respondWithResult(_0x4e0585,null))[_0xb4b5('0x42')](handleError(_0x4e0585,null));};exports[_0xb4b5('0x48')]=function(_0x3dc843,_0x4d11d3){return db[_0xb4b5('0x2c')][_0xb4b5('0x48')](_0x3dc843[_0xb4b5('0x49')],{})[_0xb4b5('0x25')](respondWithResult(_0x4d11d3,0xc9))[_0xb4b5('0x42')](handleError(_0x4d11d3,null));};exports[_0xb4b5('0x4a')]=function(_0x6ea798,_0x34bf97){if(_0x6ea798['body']['id']){delete _0x6ea798['body']['id'];}return db['VtigerAccount'][_0xb4b5('0x47')]({'where':{'id':_0x6ea798[_0xb4b5('0x44')]['id']}})[_0xb4b5('0x25')](handleEntityNotFound(_0x34bf97,null))['then'](saveUpdates(_0x6ea798[_0xb4b5('0x49')],null))['then'](respondWithResult(_0x34bf97,null))[_0xb4b5('0x42')](handleError(_0x34bf97,null));};exports['destroy']=function(_0x44471e,_0x17efde){return db[_0xb4b5('0x2c')]['find']({'where':{'id':_0x44471e[_0xb4b5('0x44')]['id']}})[_0xb4b5('0x25')](handleEntityNotFound(_0x17efde,null))[_0xb4b5('0x25')](removeEntity(_0x17efde,null))[_0xb4b5('0x42')](handleError(_0x17efde,null));};exports[_0xb4b5('0x4b')]=function(_0x25b616,_0x2e23bb,_0x5e6db4){var _0xf8c577={};var _0x3f65ba={};var _0x37305c;var _0x5b33c6;return db[_0xb4b5('0x2c')][_0xb4b5('0x4c')]({'where':{'id':_0x25b616[_0xb4b5('0x44')]['id']}})[_0xb4b5('0x25')](handleEntityNotFound(_0x2e23bb,null))[_0xb4b5('0x25')](function(_0x1a8d33){if(_0x1a8d33){_0x37305c=_0x1a8d33;_0x3f65ba['model']=_[_0xb4b5('0x45')](db['VtigerConfiguration']['rawAttributes']);_0x3f65ba[_0xb4b5('0x30')]=_[_0xb4b5('0x45')](_0x25b616[_0xb4b5('0x30')]);_0x3f65ba[_0xb4b5('0x31')]=_['intersection'](_0x3f65ba[_0xb4b5('0x2f')],_0x3f65ba[_0xb4b5('0x30')]);_0xf8c577[_0xb4b5('0x34')]=_[_0xb4b5('0x32')](_0x3f65ba['model'],qs[_0xb4b5('0x33')](_0x25b616[_0xb4b5('0x30')][_0xb4b5('0x33')]));_0xf8c577['attributes']=_0xf8c577['attributes'][_0xb4b5('0x46')]?_0xf8c577[_0xb4b5('0x34')]:_0x3f65ba[_0xb4b5('0x2f')];_0xf8c577[_0xb4b5('0x37')]=qs['sort'](_0x25b616[_0xb4b5('0x30')]['sort']);_0xf8c577[_0xb4b5('0x3a')]=qs[_0xb4b5('0x31')](_[_0xb4b5('0x4d')](_0x25b616[_0xb4b5('0x30')],_0x3f65ba[_0xb4b5('0x31')]));if(_0x25b616[_0xb4b5('0x30')][_0xb4b5('0x39')]){_0xf8c577[_0xb4b5('0x3a')]=_[_0xb4b5('0x3b')](_0xf8c577[_0xb4b5('0x3a')],{'$or':_[_0xb4b5('0x2b')](_0xf8c577[_0xb4b5('0x34')],function(_0x2570a3){var _0x3dd7d8={};_0x3dd7d8[_0x2570a3]={'$like':'%'+_0x25b616[_0xb4b5('0x30')]['filter']+'%'};return _0x3dd7d8;})});}_0xf8c577=_[_0xb4b5('0x3b')]({},_0xf8c577,_0x25b616[_0xb4b5('0x3e')]);return _0x37305c[_0xb4b5('0x4b')](_0xf8c577);}})['then'](function(_0x886d31){if(_0x886d31){_0x5b33c6=_0x886d31[_0xb4b5('0x46')];if(!_0x25b616[_0xb4b5('0x30')][_0xb4b5('0x35')]('nolimit')){_0xf8c577['limit']=qs[_0xb4b5('0x20')](_0x25b616['query']['limit']);_0xf8c577[_0xb4b5('0x1e')]=qs['offset'](_0x25b616['query'][_0xb4b5('0x1e')]);}return _0x37305c[_0xb4b5('0x4b')](_0xf8c577);}})[_0xb4b5('0x25')](function(_0x2402f9){if(_0x2402f9){return _0x2402f9?{'count':_0x5b33c6,'rows':_0x2402f9}:null;}})[_0xb4b5('0x25')](respondWithResult(_0x2e23bb,null))[_0xb4b5('0x42')](handleError(_0x2e23bb,null));};exports[_0xb4b5('0x4e')]=function(_0x2a2e4c,_0x3ff402,_0x14694c){if(_0x2a2e4c[_0xb4b5('0x49')]['id']){delete _0x2a2e4c[_0xb4b5('0x49')]['id'];}return db[_0xb4b5('0x2c')][_0xb4b5('0x4c')]({'where':{'id':_0x2a2e4c[_0xb4b5('0x44')]['id']}})[_0xb4b5('0x25')](handleEntityNotFound(_0x3ff402,null))[_0xb4b5('0x25')](function(_0x31f485){if(_0x31f485){_0x2a2e4c[_0xb4b5('0x49')][_0xb4b5('0x4f')]=_0x31f485['id'];_0x2a2e4c[_0xb4b5('0x49')][_0xb4b5('0x50')]=integrations[_0xb4b5('0x51')](_0x2a2e4c['body'][_0xb4b5('0x52')],_0x2a2e4c[_0xb4b5('0x49')]['type']);_0x2a2e4c['body'][_0xb4b5('0x53')]=integrations['getDescriptions'](_0x2a2e4c[_0xb4b5('0x49')][_0xb4b5('0x52')],_0x2a2e4c[_0xb4b5('0x49')][_0xb4b5('0x3c')]);return db[_0xb4b5('0x54')]['create'](_0x2a2e4c[_0xb4b5('0x49')],{'include':[{'model':db[_0xb4b5('0x55')],'as':_0xb4b5('0x50')},{'model':db['VtigerField'],'as':_0xb4b5('0x53')}]});}return null;})[_0xb4b5('0x25')](respondWithResult(_0x3ff402,null))[_0xb4b5('0x42')](handleError(_0x3ff402,null));};var md5=require(_0xb4b5('0x56'));exports[_0xb4b5('0x57')]=function(_0x3ca97d,_0xddc674,_0x42f42f){var _0x4a9034=null;var _0x42f158=null;var _0x3cf798=null;var _0x1800c8=null;var _0x12d445='';return db[_0xb4b5('0x2c')]['findOne']({'where':{'id':_0x3ca97d[_0xb4b5('0x44')]['id']},'attributes':['id','name',_0xb4b5('0x58'),_0xb4b5('0x59'),_0xb4b5('0x5a'),'remoteUri',_0xb4b5('0x5b'),_0xb4b5('0x5c')]})[_0xb4b5('0x25')](handleEntityNotFound(_0xddc674,null))[_0xb4b5('0x25')](function(_0x4e6667){if(_0x4e6667){_0x4a9034=_0x4e6667[_0xb4b5('0x58')];_0x42f158=_0x4e6667['accessKey'];_0x3cf798=_0x4e6667[_0xb4b5('0x5a')];_0x12d445=_0x4e6667['remoteUri'];var _0x582b87=_0x12d445[_0xb4b5('0x5d')](-0x1);if(_0x582b87==='/'){_0x12d445=_0x12d445['substring'](0x0,_0x12d445[_0xb4b5('0x5e')](_0x582b87));}_0x1800c8=util['format']('%s/webservice.php',_0x12d445);var _0x2fe20c={'method':'GET','uri':_0x1800c8,'qs':{'operation':_0xb4b5('0x5f'),'username':_0x4e6667['username']},'json':!![]};return rp(_0x2fe20c);}})['then'](function(_0x3365dc){if(_0x3365dc['success']){var _0x2f496c={'method':_0xb4b5('0x60'),'uri':_0x1800c8,'form':{'operation':_0xb4b5('0x61'),'username':_0x4a9034,'accessKey':md5(_0x3365dc[_0xb4b5('0x62')][_0xb4b5('0x63')]+_0x42f158)},'json':!![]};return rp(_0x2f496c);}})[_0xb4b5('0x25')](function(_0x29dcd6){if(_0x29dcd6[_0xb4b5('0x64')]){var _0x56bd06={'method':_0xb4b5('0x65'),'uri':_0x1800c8,'qs':{'operation':_0xb4b5('0x66'),'username':_0x4a9034,'sessionName':_0x29dcd6[_0xb4b5('0x62')]['sessionName'],'elementType':_0x3cf798},'json':!![]};return rp(_0x56bd06);}})['then'](function(_0x409527){if(_0x409527[_0xb4b5('0x64')]){var _0x59e639=['autogenerated',_0xb4b5('0x67'),_0xb4b5('0x68')];_[_0xb4b5('0x69')](_0x409527[_0xb4b5('0x62')][_0xb4b5('0x33')],function(_0x1e7ecf){return _0x59e639['includes'](_0x1e7ecf[_0xb4b5('0x3c')][_0xb4b5('0x28')]);});_[_0xb4b5('0x69')](_0x409527[_0xb4b5('0x62')]['fields'],function(_0x966b98){return _0x966b98[_0xb4b5('0x6a')]===_0xb4b5('0x6b');});return{'count':_0x409527['result'][_0xb4b5('0x33')][_0xb4b5('0x46')],'rows':_[_0xb4b5('0x2b')](_0x409527[_0xb4b5('0x62')][_0xb4b5('0x33')],function(_0x2abdf5){return{'id':_0x2abdf5[_0xb4b5('0x28')],'name':_0x2abdf5[_0xb4b5('0x6c')],'custom':_[_0xb4b5('0x6d')](_0x2abdf5[_0xb4b5('0x28')],_0xb4b5('0x6e'))?!![]:![],'options':_0x2abdf5[_0xb4b5('0x3c')][_0xb4b5('0x28')]===_0xb4b5('0x6f')&&_0x2abdf5[_0xb4b5('0x3c')]['picklistValues'][_0xb4b5('0x46')]>0x0?_[_0xb4b5('0x2b')](_0x2abdf5[_0xb4b5('0x3c')][_0xb4b5('0x70')],function(_0x35242d){return{'name':_0x35242d[_0xb4b5('0x6c')],'value':_0x35242d[_0xb4b5('0x71')]};}):[]};})};}})[_0xb4b5('0x25')](respondWithResult(_0xddc674,null))[_0xb4b5('0x42')](function(_0xb8e044){console['log']('vTiger\x20error:\x20'+_0xb8e044);var _0x54fc1a=_0x3ca97d[_0xb4b5('0x30')][_0xb4b5('0x72')]?0x1f4:_0xb8e044[_0xb4b5('0x73')]||0x1f4;logger[_0xb4b5('0x27')]('getFields,\x20%s,\x20%s,\x20%s',_0xb4b5('0x57'),_0x54fc1a,JSON[_0xb4b5('0x74')](_0xb8e044));delete _0xb8e044[_0xb4b5('0x28')];if(_0x54fc1a===0x191){_0x54fc1a=0x190;}_0xddc674['status'](_0x54fc1a)['send'](_0x3ca97d[_0xb4b5('0x30')]['test']?{'message':_0xb4b5('0x75'),'statusCode':_0xb8e044[_0xb4b5('0x73')]}:_0xb8e044);});};