3bc6d44a174f4010bdb0f2a88b324625178ca082
[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 _0xd262=['GET','getchallenge','success','POST','login','result','token','describe','sessionName','autogenerated','reference','remove','includes','editable','label','startsWith','picklist','picklistValues','value','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','eml-format','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','destroy','error','stack','name','send','index','map','VtigerAccount','fieldName','type','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','filters','pick','where','merge','VIRTUAL','includeAll','include','rows','catch','show','rawAttributes','length','options','body','params','find','getConfigurations','filter','findOne','AccountId','getSubjects','channel','Descriptions','VtigerConfiguration','create','Subjects','VtigerField','md5','getFields','username','description','moduleName','remoteUri','serverUrl','accessKey','slice','lastIndexOf','%s/webservice.php'];(function(_0x4e676e,_0x2a7c6d){var _0x336a3c=function(_0x4767c4){while(--_0x4767c4){_0x4e676e['push'](_0x4e676e['shift']());}};_0x336a3c(++_0x2a7c6d);}(_0xd262,0x10a));var _0x2d26=function(_0xa3151d,_0x299c57){_0xa3151d=_0xa3151d-0x0;var _0x78de41=_0xd262[_0xa3151d];return _0x78de41;};'use strict';var emlformat=require(_0x2d26('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x2d26('0x1'));var rp=require(_0x2d26('0x2'));var moment=require('moment');var BPromise=require(_0x2d26('0x3'));var Mustache=require(_0x2d26('0x4'));var util=require('util');var path=require(_0x2d26('0x5'));var sox=require(_0x2d26('0x6'));var csv=require(_0x2d26('0x7'));var ejs=require(_0x2d26('0x8'));var fs=require('fs');var fs_extra=require(_0x2d26('0x9'));var _=require(_0x2d26('0xa'));var squel=require(_0x2d26('0xb'));var crypto=require('crypto');var jsforce=require(_0x2d26('0xc'));var deskjs=require(_0x2d26('0xd'));var toCsv=require('to-csv');var querystring=require(_0x2d26('0xe'));var Papa=require(_0x2d26('0xf'));var Redis=require(_0x2d26('0x10'));var authService=require(_0x2d26('0x11'));var qs=require(_0x2d26('0x12'));var as=require(_0x2d26('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2d26('0x14'))(_0x2d26('0x15'));var utils=require(_0x2d26('0x16'));var config=require(_0x2d26('0x17'));var licenseUtil=require(_0x2d26('0x18'));var db=require(_0x2d26('0x19'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x4d8621,_0x31962e){_0x31962e=_0x31962e||0xcc;return function(_0x45a7c4){if(_0x45a7c4){return _0x4d8621[_0x2d26('0x1a')](_0x31962e);}return _0x4d8621[_0x2d26('0x1b')](_0x31962e)[_0x2d26('0x1c')]();};}function respondWithResult(_0x19ee66,_0x421665){_0x421665=_0x421665||0xc8;return function(_0x533982){if(_0x533982){return _0x19ee66[_0x2d26('0x1b')](_0x421665)[_0x2d26('0x1d')](_0x533982);}};}function respondWithFilteredResult(_0x2d0322,_0xedea60){return function(_0x1345d8){if(_0x1345d8){var _0x176a82=typeof _0xedea60[_0x2d26('0x1e')]===_0x2d26('0x1f')&&typeof _0xedea60[_0x2d26('0x20')]==='undefined';var _0x1a7d14=_0x1345d8['count'];var _0x29d19b=_0x176a82?0x0:_0xedea60[_0x2d26('0x1e')];var _0x2a120a=_0x176a82?_0x1345d8[_0x2d26('0x21')]:_0xedea60[_0x2d26('0x1e')]+_0xedea60['limit'];var _0x5b2a48;if(_0x2a120a>=_0x1a7d14){_0x2a120a=_0x1a7d14;_0x5b2a48=0xc8;}else{_0x5b2a48=0xce;}_0x2d0322['status'](_0x5b2a48);return _0x2d0322['set'](_0x2d26('0x22'),_0x29d19b+'-'+_0x2a120a+'/'+_0x1a7d14)[_0x2d26('0x1d')](_0x1345d8);}return null;};}function patchUpdates(_0x175b6c){return function(_0x5a002d){try{jsonpatch[_0x2d26('0x23')](_0x5a002d,_0x175b6c,!![]);}catch(_0x567345){return BPromise['reject'](_0x567345);}return _0x5a002d[_0x2d26('0x24')]();};}function saveUpdates(_0x320cec,_0x587f09){return function(_0x49e46c){if(_0x49e46c){return _0x49e46c[_0x2d26('0x25')](_0x320cec)[_0x2d26('0x26')](function(_0x2503a2){return _0x2503a2;});}return null;};}function removeEntity(_0x11a187,_0x27e938){return function(_0xefaaa5){if(_0xefaaa5){return _0xefaaa5[_0x2d26('0x27')]()[_0x2d26('0x26')](function(){_0x11a187['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5e8b66,_0x2a33a1){return function(_0x510876){if(!_0x510876){_0x5e8b66[_0x2d26('0x1a')](0x194);}return _0x510876;};}function handleError(_0x4e67ac,_0x3b5107){_0x3b5107=_0x3b5107||0x1f4;return function(_0x2d22c3){logger[_0x2d26('0x28')](_0x2d22c3[_0x2d26('0x29')]);if(_0x2d22c3['name']){delete _0x2d22c3[_0x2d26('0x2a')];}_0x4e67ac[_0x2d26('0x1b')](_0x3b5107)[_0x2d26('0x2b')](_0x2d22c3);};}exports[_0x2d26('0x2c')]=function(_0xa4d15c,_0x29e56a){var _0x56dfcc={},_0xb2252e={},_0x23a431={'count':0x0,'rows':[]};var _0x121c3e=_[_0x2d26('0x2d')](db[_0x2d26('0x2e')]['rawAttributes'],function(_0x5190cc){return{'name':_0x5190cc[_0x2d26('0x2f')],'type':_0x5190cc[_0x2d26('0x30')]['key']};});_0xb2252e[_0x2d26('0x31')]=_['map'](_0x121c3e,_0x2d26('0x2a'));_0xb2252e[_0x2d26('0x32')]=_[_0x2d26('0x33')](_0xa4d15c[_0x2d26('0x32')]);_0xb2252e['filters']=_[_0x2d26('0x34')](_0xb2252e[_0x2d26('0x31')],_0xb2252e[_0x2d26('0x32')]);_0x56dfcc['attributes']=_[_0x2d26('0x34')](_0xb2252e[_0x2d26('0x31')],qs[_0x2d26('0x35')](_0xa4d15c[_0x2d26('0x32')]['fields']));_0x56dfcc[_0x2d26('0x36')]=_0x56dfcc[_0x2d26('0x36')]['length']?_0x56dfcc[_0x2d26('0x36')]:_0xb2252e[_0x2d26('0x31')];if(!_0xa4d15c['query'][_0x2d26('0x37')](_0x2d26('0x38'))){_0x56dfcc[_0x2d26('0x20')]=qs[_0x2d26('0x20')](_0xa4d15c[_0x2d26('0x32')][_0x2d26('0x20')]);_0x56dfcc[_0x2d26('0x1e')]=qs[_0x2d26('0x1e')](_0xa4d15c[_0x2d26('0x32')][_0x2d26('0x1e')]);}_0x56dfcc[_0x2d26('0x39')]=qs[_0x2d26('0x3a')](_0xa4d15c['query'][_0x2d26('0x3a')]);_0x56dfcc['where']=qs[_0x2d26('0x3b')](_[_0x2d26('0x3c')](_0xa4d15c['query'],_0xb2252e[_0x2d26('0x3b')]),_0x121c3e);if(_0xa4d15c[_0x2d26('0x32')]['filter']){_0x56dfcc[_0x2d26('0x3d')]=_[_0x2d26('0x3e')](_0x56dfcc[_0x2d26('0x3d')],{'$or':_[_0x2d26('0x2d')](_0x121c3e,function(_0x1a71f2){if(_0x1a71f2[_0x2d26('0x30')]!==_0x2d26('0x3f')){var _0x565cc7={};_0x565cc7[_0x1a71f2[_0x2d26('0x2a')]]={'$like':'%'+_0xa4d15c[_0x2d26('0x32')]['filter']+'%'};return _0x565cc7;}})});}_0x56dfcc=_[_0x2d26('0x3e')]({},_0x56dfcc,_0xa4d15c['options']);var _0x2cd62d={'where':_0x56dfcc[_0x2d26('0x3d')]};return db[_0x2d26('0x2e')][_0x2d26('0x21')](_0x2cd62d)['then'](function(_0x592479){_0x23a431[_0x2d26('0x21')]=_0x592479;if(_0xa4d15c['query'][_0x2d26('0x40')]){_0x56dfcc[_0x2d26('0x41')]=[{'all':!![]}];}return db[_0x2d26('0x2e')]['findAll'](_0x56dfcc);})[_0x2d26('0x26')](function(_0x70b907){_0x23a431[_0x2d26('0x42')]=_0x70b907;return _0x23a431;})[_0x2d26('0x26')](respondWithFilteredResult(_0x29e56a,_0x56dfcc))[_0x2d26('0x43')](handleError(_0x29e56a,null));};exports[_0x2d26('0x44')]=function(_0x41d1af,_0xbb4951){var _0x5d5011={'raw':![],'where':{'id':_0x41d1af['params']['id']}},_0x275bb5={};_0x275bb5[_0x2d26('0x31')]=_[_0x2d26('0x33')](db[_0x2d26('0x2e')][_0x2d26('0x45')]);_0x275bb5[_0x2d26('0x32')]=_[_0x2d26('0x33')](_0x41d1af[_0x2d26('0x32')]);_0x275bb5['filters']=_[_0x2d26('0x34')](_0x275bb5[_0x2d26('0x31')],_0x275bb5[_0x2d26('0x32')]);_0x5d5011[_0x2d26('0x36')]=_['intersection'](_0x275bb5[_0x2d26('0x31')],qs[_0x2d26('0x35')](_0x41d1af[_0x2d26('0x32')]['fields']));_0x5d5011['attributes']=_0x5d5011[_0x2d26('0x36')][_0x2d26('0x46')]?_0x5d5011[_0x2d26('0x36')]:_0x275bb5[_0x2d26('0x31')];if(_0x41d1af[_0x2d26('0x32')]['includeAll']){_0x5d5011[_0x2d26('0x41')]=[{'all':!![]}];}_0x5d5011=_[_0x2d26('0x3e')]({},_0x5d5011,_0x41d1af[_0x2d26('0x47')]);return db[_0x2d26('0x2e')]['find'](_0x5d5011)['then'](handleEntityNotFound(_0xbb4951,null))[_0x2d26('0x26')](respondWithResult(_0xbb4951,null))[_0x2d26('0x43')](handleError(_0xbb4951,null));};exports['create']=function(_0x5bfd10,_0xaf82b4){return db['VtigerAccount']['create'](_0x5bfd10['body'],{})[_0x2d26('0x26')](respondWithResult(_0xaf82b4,0xc9))[_0x2d26('0x43')](handleError(_0xaf82b4,null));};exports[_0x2d26('0x25')]=function(_0x1d75e0,_0x5ded24){if(_0x1d75e0[_0x2d26('0x48')]['id']){delete _0x1d75e0[_0x2d26('0x48')]['id'];}return db[_0x2d26('0x2e')]['find']({'where':{'id':_0x1d75e0[_0x2d26('0x49')]['id']}})['then'](handleEntityNotFound(_0x5ded24,null))[_0x2d26('0x26')](saveUpdates(_0x1d75e0[_0x2d26('0x48')],null))[_0x2d26('0x26')](respondWithResult(_0x5ded24,null))['catch'](handleError(_0x5ded24,null));};exports[_0x2d26('0x27')]=function(_0x4282f2,_0x462429){return db['VtigerAccount'][_0x2d26('0x4a')]({'where':{'id':_0x4282f2[_0x2d26('0x49')]['id']}})[_0x2d26('0x26')](handleEntityNotFound(_0x462429,null))[_0x2d26('0x26')](removeEntity(_0x462429,null))[_0x2d26('0x43')](handleError(_0x462429,null));};exports[_0x2d26('0x4b')]=function(_0x563801,_0x36e1ec,_0x1a46f0){var _0xbf735={};var _0x1c98be={};var _0x43588d;var _0x5a0622;return db['VtigerAccount']['findOne']({'where':{'id':_0x563801['params']['id']}})['then'](handleEntityNotFound(_0x36e1ec,null))[_0x2d26('0x26')](function(_0x5be90b){if(_0x5be90b){_0x43588d=_0x5be90b;_0x1c98be[_0x2d26('0x31')]=_['keys'](db['VtigerConfiguration'][_0x2d26('0x45')]);_0x1c98be['query']=_['keys'](_0x563801[_0x2d26('0x32')]);_0x1c98be['filters']=_[_0x2d26('0x34')](_0x1c98be['model'],_0x1c98be[_0x2d26('0x32')]);_0xbf735['attributes']=_['intersection'](_0x1c98be['model'],qs[_0x2d26('0x35')](_0x563801[_0x2d26('0x32')][_0x2d26('0x35')]));_0xbf735['attributes']=_0xbf735[_0x2d26('0x36')][_0x2d26('0x46')]?_0xbf735[_0x2d26('0x36')]:_0x1c98be[_0x2d26('0x31')];_0xbf735[_0x2d26('0x39')]=qs[_0x2d26('0x3a')](_0x563801[_0x2d26('0x32')][_0x2d26('0x3a')]);_0xbf735[_0x2d26('0x3d')]=qs['filters'](_[_0x2d26('0x3c')](_0x563801['query'],_0x1c98be[_0x2d26('0x3b')]));if(_0x563801[_0x2d26('0x32')][_0x2d26('0x4c')]){_0xbf735['where']=_['merge'](_0xbf735['where'],{'$or':_[_0x2d26('0x2d')](_0xbf735[_0x2d26('0x36')],function(_0x10b89d){var _0xcc8eb2={};_0xcc8eb2[_0x10b89d]={'$like':'%'+_0x563801[_0x2d26('0x32')][_0x2d26('0x4c')]+'%'};return _0xcc8eb2;})});}_0xbf735=_[_0x2d26('0x3e')]({},_0xbf735,_0x563801[_0x2d26('0x47')]);return _0x43588d['getConfigurations'](_0xbf735);}})[_0x2d26('0x26')](function(_0x38383d){if(_0x38383d){_0x5a0622=_0x38383d[_0x2d26('0x46')];if(!_0x563801[_0x2d26('0x32')]['hasOwnProperty'](_0x2d26('0x38'))){_0xbf735[_0x2d26('0x20')]=qs['limit'](_0x563801[_0x2d26('0x32')][_0x2d26('0x20')]);_0xbf735[_0x2d26('0x1e')]=qs[_0x2d26('0x1e')](_0x563801[_0x2d26('0x32')][_0x2d26('0x1e')]);}return _0x43588d[_0x2d26('0x4b')](_0xbf735);}})[_0x2d26('0x26')](function(_0x58eeac){if(_0x58eeac){return _0x58eeac?{'count':_0x5a0622,'rows':_0x58eeac}:null;}})[_0x2d26('0x26')](respondWithResult(_0x36e1ec,null))['catch'](handleError(_0x36e1ec,null));};exports['addConfiguration']=function(_0x5aef5c,_0x321891,_0x3d6476){if(_0x5aef5c[_0x2d26('0x48')]['id']){delete _0x5aef5c[_0x2d26('0x48')]['id'];}return db[_0x2d26('0x2e')][_0x2d26('0x4d')]({'where':{'id':_0x5aef5c[_0x2d26('0x49')]['id']}})[_0x2d26('0x26')](handleEntityNotFound(_0x321891,null))['then'](function(_0x113ef2){if(_0x113ef2){_0x5aef5c[_0x2d26('0x48')][_0x2d26('0x4e')]=_0x113ef2['id'];_0x5aef5c[_0x2d26('0x48')]['Subjects']=integrations[_0x2d26('0x4f')](_0x5aef5c[_0x2d26('0x48')][_0x2d26('0x50')],_0x5aef5c[_0x2d26('0x48')][_0x2d26('0x30')]);_0x5aef5c[_0x2d26('0x48')][_0x2d26('0x51')]=integrations['getDescriptions'](_0x5aef5c[_0x2d26('0x48')][_0x2d26('0x50')],_0x5aef5c[_0x2d26('0x48')][_0x2d26('0x30')]);return db[_0x2d26('0x52')][_0x2d26('0x53')](_0x5aef5c[_0x2d26('0x48')],{'include':[{'model':db['VtigerField'],'as':_0x2d26('0x54')},{'model':db[_0x2d26('0x55')],'as':'Descriptions'}]});}return null;})[_0x2d26('0x26')](respondWithResult(_0x321891,null))[_0x2d26('0x43')](handleError(_0x321891,null));};var md5=require(_0x2d26('0x56'));exports[_0x2d26('0x57')]=function(_0x473d0d,_0xd5890b,_0x34fbb6){var _0x161e42=null;var _0x483c63=null;var _0xfba5b4=null;var _0x368cd7=null;var _0x2a0e8f='';return db[_0x2d26('0x2e')]['findOne']({'where':{'id':_0x473d0d['params']['id']},'attributes':['id',_0x2d26('0x2a'),_0x2d26('0x58'),_0x2d26('0x59'),_0x2d26('0x5a'),_0x2d26('0x5b'),_0x2d26('0x5c'),'accessKey']})['then'](handleEntityNotFound(_0xd5890b,null))[_0x2d26('0x26')](function(_0x51496e){if(_0x51496e){_0x161e42=_0x51496e[_0x2d26('0x58')];_0x483c63=_0x51496e[_0x2d26('0x5d')];_0xfba5b4=_0x51496e[_0x2d26('0x5a')];_0x2a0e8f=_0x51496e[_0x2d26('0x5b')];var _0x431421=_0x2a0e8f[_0x2d26('0x5e')](-0x1);if(_0x431421==='/'){_0x2a0e8f=_0x2a0e8f['substring'](0x0,_0x2a0e8f[_0x2d26('0x5f')](_0x431421));}_0x368cd7=util['format'](_0x2d26('0x60'),_0x2a0e8f);var _0x405ea8={'method':_0x2d26('0x61'),'uri':_0x368cd7,'qs':{'operation':_0x2d26('0x62'),'username':_0x51496e[_0x2d26('0x58')]},'json':!![]};return rp(_0x405ea8);}})[_0x2d26('0x26')](function(_0x4fe774){if(_0x4fe774[_0x2d26('0x63')]){var _0x150298={'method':_0x2d26('0x64'),'uri':_0x368cd7,'form':{'operation':_0x2d26('0x65'),'username':_0x161e42,'accessKey':md5(_0x4fe774[_0x2d26('0x66')][_0x2d26('0x67')]+_0x483c63)},'json':!![]};return rp(_0x150298);}})[_0x2d26('0x26')](function(_0x2ec7d5){if(_0x2ec7d5[_0x2d26('0x63')]){var _0x175bd7={'method':_0x2d26('0x61'),'uri':_0x368cd7,'qs':{'operation':_0x2d26('0x68'),'username':_0x161e42,'sessionName':_0x2ec7d5[_0x2d26('0x66')][_0x2d26('0x69')],'elementType':_0xfba5b4},'json':!![]};return rp(_0x175bd7);}})[_0x2d26('0x26')](function(_0x20a685){if(_0x20a685[_0x2d26('0x63')]){var _0x141404=[_0x2d26('0x6a'),_0x2d26('0x6b'),'owner'];_[_0x2d26('0x6c')](_0x20a685[_0x2d26('0x66')]['fields'],function(_0x5a97d1){return _0x141404[_0x2d26('0x6d')](_0x5a97d1['type']['name']);});_[_0x2d26('0x6c')](_0x20a685['result']['fields'],function(_0x19ecd1){return _0x19ecd1[_0x2d26('0x6e')]==='false';});return{'count':_0x20a685[_0x2d26('0x66')]['fields'][_0x2d26('0x46')],'rows':_[_0x2d26('0x2d')](_0x20a685[_0x2d26('0x66')][_0x2d26('0x35')],function(_0xa99d56){return{'id':_0xa99d56['name'],'name':_0xa99d56[_0x2d26('0x6f')],'custom':_[_0x2d26('0x70')](_0xa99d56[_0x2d26('0x2a')],'cf_')?!![]:![],'options':_0xa99d56[_0x2d26('0x30')][_0x2d26('0x2a')]===_0x2d26('0x71')&&_0xa99d56[_0x2d26('0x30')]['picklistValues'][_0x2d26('0x46')]>0x0?_[_0x2d26('0x2d')](_0xa99d56[_0x2d26('0x30')][_0x2d26('0x72')],function(_0x40c246){return{'name':_0x40c246[_0x2d26('0x6f')],'value':_0x40c246[_0x2d26('0x73')]};}):[]};})};}})[_0x2d26('0x26')](respondWithResult(_0xd5890b,null))[_0x2d26('0x43')](function(_0xf5426c){console['log']('vTiger\x20error:\x20'+_0xf5426c);var _0x14c4e3=_0x473d0d[_0x2d26('0x32')]['test']?0x1f4:_0xf5426c[_0x2d26('0x74')]||0x1f4;logger['error'](_0x2d26('0x75'),_0x2d26('0x57'),_0x14c4e3,JSON[_0x2d26('0x76')](_0xf5426c));delete _0xf5426c['name'];if(_0x14c4e3===0x191){_0x14c4e3=0x190;}_0xd5890b['status'](_0x14c4e3)[_0x2d26('0x2b')](_0x473d0d['query'][_0x2d26('0x77')]?{'message':_0x2d26('0x78'),'statusCode':_0xf5426c['statusCode']}:_0xf5426c);});};