Built motion from commit 092f8824.|2.5.49
[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 _0xadbc=['picklistValues','value','log','vTiger\x20error:\x20','test','statusCode','error','stringify','Wrong\x20credentials','rimraf','zip-dir','request-promise','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','name','send','VtigerAccount','type','key','model','map','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','VIRTUAL','options','include','show','keys','rawAttributes','includeAll','catch','create','body','update','find','params','destroy','getConfigurations','findOne','pick','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions','VtigerConfiguration','VtigerField','getFields','username','description','moduleName','remoteUri','accessKey','slice','substring','%s/webservice.php','getchallenge','success','login','result','token','GET','describe','autogenerated','reference','owner','remove','label','cf_'];(function(_0x35a78f,_0x176145){var _0x891e08=function(_0xd26cb0){while(--_0xd26cb0){_0x35a78f['push'](_0x35a78f['shift']());}};_0x891e08(++_0x176145);}(_0xadbc,0x150));var _0xcadb=function(_0x4c0708,_0x58cdbd){_0x4c0708=_0x4c0708-0x0;var _0x4e2ddd=_0xadbc[_0x4c0708];return _0x4e2ddd;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xcadb('0x0'));var zipdir=require(_0xcadb('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xcadb('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xcadb('0x3'));var path=require(_0xcadb('0x4'));var sox=require(_0xcadb('0x5'));var csv=require(_0xcadb('0x6'));var ejs=require(_0xcadb('0x7'));var fs=require('fs');var fs_extra=require(_0xcadb('0x8'));var _=require('lodash');var squel=require(_0xcadb('0x9'));var crypto=require(_0xcadb('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xcadb('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xcadb('0xc'));var authService=require('../../components/auth/service');var qs=require(_0xcadb('0xd'));var as=require(_0xcadb('0xe'));var hardwareService=require(_0xcadb('0xf'));var logger=require('../../config/logger')(_0xcadb('0x10'));var utils=require('../../config/utils');var config=require(_0xcadb('0x11'));var licenseUtil=require('../../config/license/util');var db=require(_0xcadb('0x12'))['db'];var integrations=require(_0xcadb('0x13'));function respondWithStatusCode(_0x2c59e1,_0x4464b9){_0x4464b9=_0x4464b9||0xcc;return function(_0x516587){if(_0x516587){return _0x2c59e1[_0xcadb('0x14')](_0x4464b9);}return _0x2c59e1[_0xcadb('0x15')](_0x4464b9)[_0xcadb('0x16')]();};}function respondWithResult(_0x276e49,_0x4bc9ed){_0x4bc9ed=_0x4bc9ed||0xc8;return function(_0x4a17ff){if(_0x4a17ff){return _0x276e49[_0xcadb('0x15')](_0x4bc9ed)[_0xcadb('0x17')](_0x4a17ff);}};}function respondWithFilteredResult(_0x4fc203,_0xcbefcf){return function(_0x3938aa){if(_0x3938aa){var _0x8cfe0a=typeof _0xcbefcf[_0xcadb('0x18')]===_0xcadb('0x19')&&typeof _0xcbefcf[_0xcadb('0x1a')]===_0xcadb('0x19');var _0x499ee1=_0x3938aa[_0xcadb('0x1b')];var _0x4e91f3=_0x8cfe0a?0x0:_0xcbefcf[_0xcadb('0x18')];var _0x2a31fe=_0x8cfe0a?_0x3938aa[_0xcadb('0x1b')]:_0xcbefcf[_0xcadb('0x18')]+_0xcbefcf[_0xcadb('0x1a')];var _0x585519;if(_0x2a31fe>=_0x499ee1){_0x2a31fe=_0x499ee1;_0x585519=0xc8;}else{_0x585519=0xce;}_0x4fc203['status'](_0x585519);return _0x4fc203[_0xcadb('0x1c')](_0xcadb('0x1d'),_0x4e91f3+'-'+_0x2a31fe+'/'+_0x499ee1)['json'](_0x3938aa);}return null;};}function patchUpdates(_0x50b8fa){return function(_0x17fa83){try{jsonpatch[_0xcadb('0x1e')](_0x17fa83,_0x50b8fa,!![]);}catch(_0x473240){return BPromise[_0xcadb('0x1f')](_0x473240);}return _0x17fa83[_0xcadb('0x20')]();};}function saveUpdates(_0x16f3e6,_0x5a5437){return function(_0x2616a3){if(_0x2616a3){return _0x2616a3['update'](_0x16f3e6)[_0xcadb('0x21')](function(_0xe7a8ab){return _0xe7a8ab;});}return null;};}function removeEntity(_0x3f7666,_0x25630d){return function(_0x58a4a6){if(_0x58a4a6){return _0x58a4a6['destroy']()[_0xcadb('0x21')](function(){_0x3f7666[_0xcadb('0x15')](0xcc)[_0xcadb('0x16')]();});}};}function handleEntityNotFound(_0x55b41f,_0x36c405){return function(_0x1b7166){if(!_0x1b7166){_0x55b41f['sendStatus'](0x194);}return _0x1b7166;};}function handleError(_0x4d98b2,_0x1982bc){_0x1982bc=_0x1982bc||0x1f4;return function(_0x18e7a6){logger['error'](_0x18e7a6['stack']);if(_0x18e7a6[_0xcadb('0x22')]){delete _0x18e7a6[_0xcadb('0x22')];}_0x4d98b2['status'](_0x1982bc)[_0xcadb('0x23')](_0x18e7a6);};}exports['index']=function(_0x1b124b,_0x231f3e){var _0x2a9700={},_0x409203={},_0x5d4613={'count':0x0,'rows':[]};var _0xffe445=_['map'](db[_0xcadb('0x24')]['rawAttributes'],function(_0x253757){return{'name':_0x253757['fieldName'],'type':_0x253757[_0xcadb('0x25')][_0xcadb('0x26')]};});_0x409203[_0xcadb('0x27')]=_[_0xcadb('0x28')](_0xffe445,'name');_0x409203[_0xcadb('0x29')]=_['keys'](_0x1b124b[_0xcadb('0x29')]);_0x409203[_0xcadb('0x2a')]=_[_0xcadb('0x2b')](_0x409203[_0xcadb('0x27')],_0x409203[_0xcadb('0x29')]);_0x2a9700[_0xcadb('0x2c')]=_['intersection'](_0x409203[_0xcadb('0x27')],qs['fields'](_0x1b124b[_0xcadb('0x29')][_0xcadb('0x2d')]));_0x2a9700[_0xcadb('0x2c')]=_0x2a9700[_0xcadb('0x2c')][_0xcadb('0x2e')]?_0x2a9700[_0xcadb('0x2c')]:_0x409203[_0xcadb('0x27')];if(!_0x1b124b[_0xcadb('0x29')]['hasOwnProperty'](_0xcadb('0x2f'))){_0x2a9700[_0xcadb('0x1a')]=qs[_0xcadb('0x1a')](_0x1b124b[_0xcadb('0x29')][_0xcadb('0x1a')]);_0x2a9700[_0xcadb('0x18')]=qs[_0xcadb('0x18')](_0x1b124b['query'][_0xcadb('0x18')]);}_0x2a9700[_0xcadb('0x30')]=qs[_0xcadb('0x31')](_0x1b124b['query'][_0xcadb('0x31')]);_0x2a9700[_0xcadb('0x32')]=qs[_0xcadb('0x2a')](_['pick'](_0x1b124b['query'],_0x409203[_0xcadb('0x2a')]),_0xffe445);if(_0x1b124b[_0xcadb('0x29')][_0xcadb('0x33')]){_0x2a9700[_0xcadb('0x32')]=_[_0xcadb('0x34')](_0x2a9700['where'],{'$or':_['map'](_0xffe445,function(_0x56c121){if(_0x56c121[_0xcadb('0x25')]!==_0xcadb('0x35')){var _0x3b1955={};_0x3b1955[_0x56c121[_0xcadb('0x22')]]={'$like':'%'+_0x1b124b[_0xcadb('0x29')][_0xcadb('0x33')]+'%'};return _0x3b1955;}})});}_0x2a9700=_[_0xcadb('0x34')]({},_0x2a9700,_0x1b124b[_0xcadb('0x36')]);var _0x484877={'where':_0x2a9700[_0xcadb('0x32')]};return db['VtigerAccount']['count'](_0x484877)[_0xcadb('0x21')](function(_0x164de3){_0x5d4613[_0xcadb('0x1b')]=_0x164de3;if(_0x1b124b['query']['includeAll']){_0x2a9700[_0xcadb('0x37')]=[{'all':!![]}];}return db[_0xcadb('0x24')]['findAll'](_0x2a9700);})[_0xcadb('0x21')](function(_0x3bf176){_0x5d4613['rows']=_0x3bf176;return _0x5d4613;})[_0xcadb('0x21')](respondWithFilteredResult(_0x231f3e,_0x2a9700))['catch'](handleError(_0x231f3e,null));};exports[_0xcadb('0x38')]=function(_0x410dea,_0x4dd35b){var _0x9da22b={'raw':![],'where':{'id':_0x410dea['params']['id']}},_0x34d0c2={};_0x34d0c2[_0xcadb('0x27')]=_[_0xcadb('0x39')](db[_0xcadb('0x24')][_0xcadb('0x3a')]);_0x34d0c2[_0xcadb('0x29')]=_[_0xcadb('0x39')](_0x410dea['query']);_0x34d0c2[_0xcadb('0x2a')]=_['intersection'](_0x34d0c2['model'],_0x34d0c2[_0xcadb('0x29')]);_0x9da22b['attributes']=_[_0xcadb('0x2b')](_0x34d0c2[_0xcadb('0x27')],qs['fields'](_0x410dea['query'][_0xcadb('0x2d')]));_0x9da22b[_0xcadb('0x2c')]=_0x9da22b['attributes'][_0xcadb('0x2e')]?_0x9da22b[_0xcadb('0x2c')]:_0x34d0c2[_0xcadb('0x27')];if(_0x410dea[_0xcadb('0x29')][_0xcadb('0x3b')]){_0x9da22b['include']=[{'all':!![]}];}_0x9da22b=_[_0xcadb('0x34')]({},_0x9da22b,_0x410dea[_0xcadb('0x36')]);return db['VtigerAccount']['find'](_0x9da22b)[_0xcadb('0x21')](handleEntityNotFound(_0x4dd35b,null))[_0xcadb('0x21')](respondWithResult(_0x4dd35b,null))[_0xcadb('0x3c')](handleError(_0x4dd35b,null));};exports[_0xcadb('0x3d')]=function(_0x4984a9,_0x1299c9){return db[_0xcadb('0x24')][_0xcadb('0x3d')](_0x4984a9[_0xcadb('0x3e')],{})['then'](respondWithResult(_0x1299c9,0xc9))[_0xcadb('0x3c')](handleError(_0x1299c9,null));};exports[_0xcadb('0x3f')]=function(_0x28ffc2,_0x52014d){if(_0x28ffc2['body']['id']){delete _0x28ffc2['body']['id'];}return db[_0xcadb('0x24')][_0xcadb('0x40')]({'where':{'id':_0x28ffc2[_0xcadb('0x41')]['id']}})[_0xcadb('0x21')](handleEntityNotFound(_0x52014d,null))['then'](saveUpdates(_0x28ffc2[_0xcadb('0x3e')],null))[_0xcadb('0x21')](respondWithResult(_0x52014d,null))[_0xcadb('0x3c')](handleError(_0x52014d,null));};exports[_0xcadb('0x42')]=function(_0x3ed067,_0x2ebdeb){return db[_0xcadb('0x24')][_0xcadb('0x40')]({'where':{'id':_0x3ed067[_0xcadb('0x41')]['id']}})[_0xcadb('0x21')](handleEntityNotFound(_0x2ebdeb,null))[_0xcadb('0x21')](removeEntity(_0x2ebdeb,null))['catch'](handleError(_0x2ebdeb,null));};exports[_0xcadb('0x43')]=function(_0x14ac29,_0x4d675d,_0x211c11){var _0x50e843={};var _0x516f1f={};var _0x52e228;var _0x1692b5;return db['VtigerAccount'][_0xcadb('0x44')]({'where':{'id':_0x14ac29['params']['id']}})[_0xcadb('0x21')](handleEntityNotFound(_0x4d675d,null))[_0xcadb('0x21')](function(_0x3116aa){if(_0x3116aa){_0x52e228=_0x3116aa;_0x516f1f[_0xcadb('0x27')]=_['keys'](db['VtigerConfiguration']['rawAttributes']);_0x516f1f[_0xcadb('0x29')]=_[_0xcadb('0x39')](_0x14ac29[_0xcadb('0x29')]);_0x516f1f[_0xcadb('0x2a')]=_[_0xcadb('0x2b')](_0x516f1f[_0xcadb('0x27')],_0x516f1f[_0xcadb('0x29')]);_0x50e843[_0xcadb('0x2c')]=_[_0xcadb('0x2b')](_0x516f1f['model'],qs[_0xcadb('0x2d')](_0x14ac29[_0xcadb('0x29')]['fields']));_0x50e843[_0xcadb('0x2c')]=_0x50e843['attributes'][_0xcadb('0x2e')]?_0x50e843['attributes']:_0x516f1f['model'];_0x50e843[_0xcadb('0x30')]=qs['sort'](_0x14ac29[_0xcadb('0x29')][_0xcadb('0x31')]);_0x50e843[_0xcadb('0x32')]=qs[_0xcadb('0x2a')](_[_0xcadb('0x45')](_0x14ac29[_0xcadb('0x29')],_0x516f1f['filters']));if(_0x14ac29['query']['filter']){_0x50e843[_0xcadb('0x32')]=_[_0xcadb('0x34')](_0x50e843['where'],{'$or':_['map'](_0x50e843['attributes'],function(_0x7215d1){var _0x1f54fd={};_0x1f54fd[_0x7215d1]={'$like':'%'+_0x14ac29['query'][_0xcadb('0x33')]+'%'};return _0x1f54fd;})});}_0x50e843=_['merge']({},_0x50e843,_0x14ac29[_0xcadb('0x36')]);return _0x52e228[_0xcadb('0x43')](_0x50e843);}})[_0xcadb('0x21')](function(_0x1e3fb3){if(_0x1e3fb3){_0x1692b5=_0x1e3fb3[_0xcadb('0x2e')];if(!_0x14ac29['query']['hasOwnProperty']('nolimit')){_0x50e843['limit']=qs[_0xcadb('0x1a')](_0x14ac29[_0xcadb('0x29')][_0xcadb('0x1a')]);_0x50e843[_0xcadb('0x18')]=qs[_0xcadb('0x18')](_0x14ac29[_0xcadb('0x29')][_0xcadb('0x18')]);}return _0x52e228['getConfigurations'](_0x50e843);}})[_0xcadb('0x21')](function(_0x236fff){if(_0x236fff){return _0x236fff?{'count':_0x1692b5,'rows':_0x236fff}:null;}})[_0xcadb('0x21')](respondWithResult(_0x4d675d,null))[_0xcadb('0x3c')](handleError(_0x4d675d,null));};exports[_0xcadb('0x46')]=function(_0x313074,_0x270933,_0x42ab8b){if(_0x313074[_0xcadb('0x3e')]['id']){delete _0x313074[_0xcadb('0x3e')]['id'];}return db[_0xcadb('0x24')][_0xcadb('0x44')]({'where':{'id':_0x313074[_0xcadb('0x41')]['id']}})[_0xcadb('0x21')](handleEntityNotFound(_0x270933,null))['then'](function(_0x208d73){if(_0x208d73){_0x313074[_0xcadb('0x3e')][_0xcadb('0x47')]=_0x208d73['id'];_0x313074['body'][_0xcadb('0x48')]=integrations['getSubjects'](_0x313074[_0xcadb('0x3e')][_0xcadb('0x49')],_0x313074[_0xcadb('0x3e')]['type']);_0x313074[_0xcadb('0x3e')][_0xcadb('0x4a')]=integrations[_0xcadb('0x4b')](_0x313074[_0xcadb('0x3e')][_0xcadb('0x49')],_0x313074[_0xcadb('0x3e')][_0xcadb('0x25')]);return db[_0xcadb('0x4c')][_0xcadb('0x3d')](_0x313074[_0xcadb('0x3e')],{'include':[{'model':db[_0xcadb('0x4d')],'as':_0xcadb('0x48')},{'model':db[_0xcadb('0x4d')],'as':_0xcadb('0x4a')}]});}return null;})[_0xcadb('0x21')](respondWithResult(_0x270933,null))[_0xcadb('0x3c')](handleError(_0x270933,null));};var md5=require('md5');exports[_0xcadb('0x4e')]=function(_0x417654,_0x44bb2b,_0x31b424){var _0x1fd9dc=null;var _0x386a72=null;var _0x44ff17=null;var _0x645a90=null;var _0x40b0fa='';return db['VtigerAccount']['findOne']({'where':{'id':_0x417654[_0xcadb('0x41')]['id']},'attributes':['id',_0xcadb('0x22'),_0xcadb('0x4f'),_0xcadb('0x50'),_0xcadb('0x51'),_0xcadb('0x52'),'serverUrl',_0xcadb('0x53')]})[_0xcadb('0x21')](handleEntityNotFound(_0x44bb2b,null))[_0xcadb('0x21')](function(_0x82d434){if(_0x82d434){_0x1fd9dc=_0x82d434[_0xcadb('0x4f')];_0x386a72=_0x82d434[_0xcadb('0x53')];_0x44ff17=_0x82d434[_0xcadb('0x51')];_0x40b0fa=_0x82d434[_0xcadb('0x52')];var _0x4420e1=_0x40b0fa[_0xcadb('0x54')](-0x1);if(_0x4420e1==='/'){_0x40b0fa=_0x40b0fa[_0xcadb('0x55')](0x0,_0x40b0fa['lastIndexOf'](_0x4420e1));}_0x645a90=util['format'](_0xcadb('0x56'),_0x40b0fa);var _0xc13e10={'method':'GET','uri':_0x645a90,'qs':{'operation':_0xcadb('0x57'),'username':_0x82d434[_0xcadb('0x4f')]},'json':!![]};return rp(_0xc13e10);}})['then'](function(_0x5e18e1){if(_0x5e18e1[_0xcadb('0x58')]){var _0x3a5915={'method':'POST','uri':_0x645a90,'form':{'operation':_0xcadb('0x59'),'username':_0x1fd9dc,'accessKey':md5(_0x5e18e1[_0xcadb('0x5a')][_0xcadb('0x5b')]+_0x386a72)},'json':!![]};return rp(_0x3a5915);}})[_0xcadb('0x21')](function(_0x5efe61){if(_0x5efe61[_0xcadb('0x58')]){var _0x411cb9={'method':_0xcadb('0x5c'),'uri':_0x645a90,'qs':{'operation':_0xcadb('0x5d'),'username':_0x1fd9dc,'sessionName':_0x5efe61[_0xcadb('0x5a')]['sessionName'],'elementType':_0x44ff17},'json':!![]};return rp(_0x411cb9);}})['then'](function(_0x2c1209){if(_0x2c1209[_0xcadb('0x58')]){var _0x544fbd=[_0xcadb('0x5e'),_0xcadb('0x5f'),_0xcadb('0x60')];_[_0xcadb('0x61')](_0x2c1209['result'][_0xcadb('0x2d')],function(_0x7e4090){return _0x544fbd['includes'](_0x7e4090[_0xcadb('0x25')]['name']);});_[_0xcadb('0x61')](_0x2c1209[_0xcadb('0x5a')][_0xcadb('0x2d')],function(_0x3b9349){return _0x3b9349['editable']==='false';});return{'count':_0x2c1209[_0xcadb('0x5a')][_0xcadb('0x2d')][_0xcadb('0x2e')],'rows':_[_0xcadb('0x28')](_0x2c1209[_0xcadb('0x5a')][_0xcadb('0x2d')],function(_0x364d1e){return{'id':_0x364d1e[_0xcadb('0x22')],'name':_0x364d1e[_0xcadb('0x62')],'custom':_['startsWith'](_0x364d1e[_0xcadb('0x22')],_0xcadb('0x63'))?!![]:![],'options':_0x364d1e[_0xcadb('0x25')][_0xcadb('0x22')]==='picklist'&&_0x364d1e[_0xcadb('0x25')]['picklistValues'][_0xcadb('0x2e')]>0x0?_['map'](_0x364d1e[_0xcadb('0x25')][_0xcadb('0x64')],function(_0xb4fd1){return{'name':_0xb4fd1[_0xcadb('0x62')],'value':_0xb4fd1[_0xcadb('0x65')]};}):[]};})};}})['then'](respondWithResult(_0x44bb2b,null))[_0xcadb('0x3c')](function(_0x53352d){console[_0xcadb('0x66')](_0xcadb('0x67')+_0x53352d);var _0x203a52=_0x417654['query'][_0xcadb('0x68')]?0x1f4:_0x53352d[_0xcadb('0x69')]||0x1f4;logger[_0xcadb('0x6a')]('getFields,\x20%s,\x20%s,\x20%s',_0xcadb('0x4e'),_0x203a52,JSON[_0xcadb('0x6b')](_0x53352d));delete _0x53352d[_0xcadb('0x22')];if(_0x203a52===0x191){_0x203a52=0x190;}_0x44bb2b[_0xcadb('0x15')](_0x203a52)['send'](_0x417654['query'][_0xcadb('0x68')]?{'message':_0xcadb('0x6c'),'statusCode':_0x53352d['statusCode']}:_0x53352d);});};