764b71f33762d8102ccd13c850064c1bad6679d4
[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 _0x6487=['autogenerated','owner','remove','editable','false','label','startsWith','cf_','picklist','value','log','vTiger\x20error:\x20','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','then','destroy','error','name','send','map','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','VtigerAccount','includeAll','catch','params','rawAttributes','find','create','body','getConfigurations','findOne','addConfiguration','channel','Descriptions','VtigerConfiguration','VtigerField','Subjects','moduleName','remoteUri','serverUrl','username','accessKey','substring','lastIndexOf','format','%s/webservice.php','getchallenge','success','result','token','describe','sessionName'];(function(_0x4eafed,_0x26e2bc){var _0x159c85=function(_0x6f129f){while(--_0x6f129f){_0x4eafed['push'](_0x4eafed['shift']());}};_0x159c85(++_0x26e2bc);}(_0x6487,0x86));var _0x7648=function(_0x5316a7,_0x2f683b){_0x5316a7=_0x5316a7-0x0;var _0x81c876=_0x6487[_0x5316a7];return _0x81c876;};'use strict';var emlformat=require(_0x7648('0x0'));var rimraf=require(_0x7648('0x1'));var zipdir=require(_0x7648('0x2'));var jsonpatch=require(_0x7648('0x3'));var rp=require(_0x7648('0x4'));var moment=require(_0x7648('0x5'));var BPromise=require(_0x7648('0x6'));var Mustache=require(_0x7648('0x7'));var util=require(_0x7648('0x8'));var path=require(_0x7648('0x9'));var sox=require('sox');var csv=require(_0x7648('0xa'));var ejs=require(_0x7648('0xb'));var fs=require('fs');var fs_extra=require(_0x7648('0xc'));var _=require(_0x7648('0xd'));var squel=require(_0x7648('0xe'));var crypto=require(_0x7648('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x7648('0x10'));var toCsv=require('to-csv');var querystring=require(_0x7648('0x11'));var Papa=require('papaparse');var Redis=require(_0x7648('0x12'));var authService=require(_0x7648('0x13'));var qs=require(_0x7648('0x14'));var as=require(_0x7648('0x15'));var hardwareService=require(_0x7648('0x16'));var logger=require(_0x7648('0x17'))(_0x7648('0x18'));var utils=require(_0x7648('0x19'));var config=require(_0x7648('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x7648('0x1b'))['db'];var integrations=require(_0x7648('0x1c'));function respondWithStatusCode(_0x285e72,_0x152dbc){_0x152dbc=_0x152dbc||0xcc;return function(_0x109bb7){if(_0x109bb7){return _0x285e72['sendStatus'](_0x152dbc);}return _0x285e72[_0x7648('0x1d')](_0x152dbc)[_0x7648('0x1e')]();};}function respondWithResult(_0x433c1b,_0xc04820){_0xc04820=_0xc04820||0xc8;return function(_0x2646a7){if(_0x2646a7){return _0x433c1b['status'](_0xc04820)[_0x7648('0x1f')](_0x2646a7);}};}function respondWithFilteredResult(_0x197069,_0x477e02){return function(_0x470d99){if(_0x470d99){var _0x54c5d7=typeof _0x477e02['offset']===_0x7648('0x20')&&typeof _0x477e02[_0x7648('0x21')]==='undefined';var _0xb7619c=_0x470d99[_0x7648('0x22')];var _0xf67d1f=_0x54c5d7?0x0:_0x477e02[_0x7648('0x23')];var _0x4d8ef6=_0x54c5d7?_0x470d99[_0x7648('0x22')]:_0x477e02[_0x7648('0x23')]+_0x477e02['limit'];var _0x33bb4f;if(_0x4d8ef6>=_0xb7619c){_0x4d8ef6=_0xb7619c;_0x33bb4f=0xc8;}else{_0x33bb4f=0xce;}_0x197069[_0x7648('0x1d')](_0x33bb4f);return _0x197069[_0x7648('0x24')](_0x7648('0x25'),_0xf67d1f+'-'+_0x4d8ef6+'/'+_0xb7619c)[_0x7648('0x1f')](_0x470d99);}return null;};}function patchUpdates(_0x85933c){return function(_0x83f5df){try{jsonpatch[_0x7648('0x26')](_0x83f5df,_0x85933c,!![]);}catch(_0x42202b){return BPromise['reject'](_0x42202b);}return _0x83f5df[_0x7648('0x27')]();};}function saveUpdates(_0x27384d,_0x4854ec){return function(_0x320e06){if(_0x320e06){return _0x320e06[_0x7648('0x28')](_0x27384d)[_0x7648('0x29')](function(_0x9f7073){return _0x9f7073;});}return null;};}function removeEntity(_0x17dff5,_0x8b61da){return function(_0x165054){if(_0x165054){return _0x165054[_0x7648('0x2a')]()[_0x7648('0x29')](function(){_0x17dff5['status'](0xcc)[_0x7648('0x1e')]();});}};}function handleEntityNotFound(_0x4e8a72,_0x182d95){return function(_0x17f968){if(!_0x17f968){_0x4e8a72['sendStatus'](0x194);}return _0x17f968;};}function handleError(_0x1e067f,_0x3cc19b){_0x3cc19b=_0x3cc19b||0x1f4;return function(_0x5c6663){logger[_0x7648('0x2b')](_0x5c6663['stack']);if(_0x5c6663['name']){delete _0x5c6663[_0x7648('0x2c')];}_0x1e067f[_0x7648('0x1d')](_0x3cc19b)[_0x7648('0x2d')](_0x5c6663);};}exports['index']=function(_0x376e90,_0x39c241){var _0x24f96c={},_0x2d483f={},_0x110c8b={'count':0x0,'rows':[]};var _0x21a5e7=_[_0x7648('0x2e')](db['VtigerAccount']['rawAttributes'],function(_0x241b95){return{'name':_0x241b95[_0x7648('0x2f')],'type':_0x241b95[_0x7648('0x30')][_0x7648('0x31')]};});_0x2d483f[_0x7648('0x32')]=_[_0x7648('0x2e')](_0x21a5e7,'name');_0x2d483f[_0x7648('0x33')]=_[_0x7648('0x34')](_0x376e90[_0x7648('0x33')]);_0x2d483f[_0x7648('0x35')]=_['intersection'](_0x2d483f[_0x7648('0x32')],_0x2d483f[_0x7648('0x33')]);_0x24f96c[_0x7648('0x36')]=_[_0x7648('0x37')](_0x2d483f['model'],qs[_0x7648('0x38')](_0x376e90['query'][_0x7648('0x38')]));_0x24f96c[_0x7648('0x36')]=_0x24f96c[_0x7648('0x36')][_0x7648('0x39')]?_0x24f96c[_0x7648('0x36')]:_0x2d483f['model'];if(!_0x376e90['query']['hasOwnProperty'](_0x7648('0x3a'))){_0x24f96c[_0x7648('0x21')]=qs[_0x7648('0x21')](_0x376e90['query'][_0x7648('0x21')]);_0x24f96c[_0x7648('0x23')]=qs[_0x7648('0x23')](_0x376e90['query'][_0x7648('0x23')]);}_0x24f96c[_0x7648('0x3b')]=qs[_0x7648('0x3c')](_0x376e90[_0x7648('0x33')]['sort']);_0x24f96c[_0x7648('0x3d')]=qs['filters'](_[_0x7648('0x3e')](_0x376e90['query'],_0x2d483f[_0x7648('0x35')]),_0x21a5e7);if(_0x376e90[_0x7648('0x33')][_0x7648('0x3f')]){_0x24f96c[_0x7648('0x3d')]=_[_0x7648('0x40')](_0x24f96c[_0x7648('0x3d')],{'$or':_[_0x7648('0x2e')](_0x21a5e7,function(_0x3c8c83){if(_0x3c8c83[_0x7648('0x30')]!==_0x7648('0x41')){var _0x534627={};_0x534627[_0x3c8c83['name']]={'$like':'%'+_0x376e90['query']['filter']+'%'};return _0x534627;}})});}_0x24f96c=_[_0x7648('0x40')]({},_0x24f96c,_0x376e90[_0x7648('0x42')]);var _0x29f2d={'where':_0x24f96c[_0x7648('0x3d')]};return db[_0x7648('0x43')][_0x7648('0x22')](_0x29f2d)[_0x7648('0x29')](function(_0x3e85fd){_0x110c8b[_0x7648('0x22')]=_0x3e85fd;if(_0x376e90[_0x7648('0x33')][_0x7648('0x44')]){_0x24f96c['include']=[{'all':!![]}];}return db[_0x7648('0x43')]['findAll'](_0x24f96c);})['then'](function(_0x244f55){_0x110c8b['rows']=_0x244f55;return _0x110c8b;})[_0x7648('0x29')](respondWithFilteredResult(_0x39c241,_0x24f96c))[_0x7648('0x45')](handleError(_0x39c241,null));};exports['show']=function(_0xad6aa5,_0x325628){var _0x5d92a1={'raw':![],'where':{'id':_0xad6aa5[_0x7648('0x46')]['id']}},_0x1d8c3d={};_0x1d8c3d[_0x7648('0x32')]=_['keys'](db['VtigerAccount'][_0x7648('0x47')]);_0x1d8c3d['query']=_['keys'](_0xad6aa5['query']);_0x1d8c3d['filters']=_[_0x7648('0x37')](_0x1d8c3d[_0x7648('0x32')],_0x1d8c3d[_0x7648('0x33')]);_0x5d92a1[_0x7648('0x36')]=_[_0x7648('0x37')](_0x1d8c3d[_0x7648('0x32')],qs[_0x7648('0x38')](_0xad6aa5['query']['fields']));_0x5d92a1[_0x7648('0x36')]=_0x5d92a1[_0x7648('0x36')][_0x7648('0x39')]?_0x5d92a1[_0x7648('0x36')]:_0x1d8c3d[_0x7648('0x32')];if(_0xad6aa5[_0x7648('0x33')][_0x7648('0x44')]){_0x5d92a1['include']=[{'all':!![]}];}_0x5d92a1=_[_0x7648('0x40')]({},_0x5d92a1,_0xad6aa5[_0x7648('0x42')]);return db[_0x7648('0x43')][_0x7648('0x48')](_0x5d92a1)['then'](handleEntityNotFound(_0x325628,null))['then'](respondWithResult(_0x325628,null))[_0x7648('0x45')](handleError(_0x325628,null));};exports['create']=function(_0x32395b,_0x3bd0a5){return db[_0x7648('0x43')][_0x7648('0x49')](_0x32395b['body'],{})[_0x7648('0x29')](respondWithResult(_0x3bd0a5,0xc9))['catch'](handleError(_0x3bd0a5,null));};exports[_0x7648('0x28')]=function(_0x2a5bfd,_0x5a00a0){if(_0x2a5bfd[_0x7648('0x4a')]['id']){delete _0x2a5bfd['body']['id'];}return db[_0x7648('0x43')]['find']({'where':{'id':_0x2a5bfd['params']['id']}})[_0x7648('0x29')](handleEntityNotFound(_0x5a00a0,null))[_0x7648('0x29')](saveUpdates(_0x2a5bfd['body'],null))[_0x7648('0x29')](respondWithResult(_0x5a00a0,null))[_0x7648('0x45')](handleError(_0x5a00a0,null));};exports[_0x7648('0x2a')]=function(_0x16a80f,_0x3b0e29){return db[_0x7648('0x43')][_0x7648('0x48')]({'where':{'id':_0x16a80f['params']['id']}})['then'](handleEntityNotFound(_0x3b0e29,null))[_0x7648('0x29')](removeEntity(_0x3b0e29,null))[_0x7648('0x45')](handleError(_0x3b0e29,null));};exports[_0x7648('0x4b')]=function(_0x5110fd,_0x4c2f89,_0x68db37){var _0x14e565={};var _0x24879c={};var _0x3ba5a2;var _0x2ea33a;return db[_0x7648('0x43')][_0x7648('0x4c')]({'where':{'id':_0x5110fd[_0x7648('0x46')]['id']}})[_0x7648('0x29')](handleEntityNotFound(_0x4c2f89,null))[_0x7648('0x29')](function(_0x1d0849){if(_0x1d0849){_0x3ba5a2=_0x1d0849;_0x24879c[_0x7648('0x32')]=_['keys'](db['VtigerConfiguration'][_0x7648('0x47')]);_0x24879c[_0x7648('0x33')]=_['keys'](_0x5110fd[_0x7648('0x33')]);_0x24879c[_0x7648('0x35')]=_[_0x7648('0x37')](_0x24879c[_0x7648('0x32')],_0x24879c[_0x7648('0x33')]);_0x14e565[_0x7648('0x36')]=_['intersection'](_0x24879c[_0x7648('0x32')],qs['fields'](_0x5110fd[_0x7648('0x33')][_0x7648('0x38')]));_0x14e565['attributes']=_0x14e565[_0x7648('0x36')][_0x7648('0x39')]?_0x14e565[_0x7648('0x36')]:_0x24879c[_0x7648('0x32')];_0x14e565[_0x7648('0x3b')]=qs[_0x7648('0x3c')](_0x5110fd[_0x7648('0x33')][_0x7648('0x3c')]);_0x14e565['where']=qs[_0x7648('0x35')](_[_0x7648('0x3e')](_0x5110fd['query'],_0x24879c[_0x7648('0x35')]));if(_0x5110fd['query'][_0x7648('0x3f')]){_0x14e565['where']=_[_0x7648('0x40')](_0x14e565[_0x7648('0x3d')],{'$or':_[_0x7648('0x2e')](_0x14e565['attributes'],function(_0x25ef26){var _0x45c811={};_0x45c811[_0x25ef26]={'$like':'%'+_0x5110fd['query'][_0x7648('0x3f')]+'%'};return _0x45c811;})});}_0x14e565=_[_0x7648('0x40')]({},_0x14e565,_0x5110fd['options']);return _0x3ba5a2[_0x7648('0x4b')](_0x14e565);}})['then'](function(_0x275593){if(_0x275593){_0x2ea33a=_0x275593['length'];if(!_0x5110fd['query']['hasOwnProperty'](_0x7648('0x3a'))){_0x14e565['limit']=qs[_0x7648('0x21')](_0x5110fd[_0x7648('0x33')][_0x7648('0x21')]);_0x14e565[_0x7648('0x23')]=qs[_0x7648('0x23')](_0x5110fd['query'][_0x7648('0x23')]);}return _0x3ba5a2[_0x7648('0x4b')](_0x14e565);}})['then'](function(_0x58d468){if(_0x58d468){return _0x58d468?{'count':_0x2ea33a,'rows':_0x58d468}:null;}})['then'](respondWithResult(_0x4c2f89,null))[_0x7648('0x45')](handleError(_0x4c2f89,null));};exports[_0x7648('0x4d')]=function(_0x511c22,_0x80c627,_0x12741a){if(_0x511c22[_0x7648('0x4a')]['id']){delete _0x511c22[_0x7648('0x4a')]['id'];}return db[_0x7648('0x43')][_0x7648('0x4c')]({'where':{'id':_0x511c22[_0x7648('0x46')]['id']}})[_0x7648('0x29')](handleEntityNotFound(_0x80c627,null))[_0x7648('0x29')](function(_0x570117){if(_0x570117){_0x511c22[_0x7648('0x4a')]['AccountId']=_0x570117['id'];_0x511c22[_0x7648('0x4a')]['Subjects']=integrations['getSubjects'](_0x511c22[_0x7648('0x4a')][_0x7648('0x4e')],_0x511c22['body']['type']);_0x511c22[_0x7648('0x4a')][_0x7648('0x4f')]=integrations['getDescriptions'](_0x511c22['body'][_0x7648('0x4e')],_0x511c22[_0x7648('0x4a')][_0x7648('0x30')]);return db[_0x7648('0x50')][_0x7648('0x49')](_0x511c22[_0x7648('0x4a')],{'include':[{'model':db[_0x7648('0x51')],'as':_0x7648('0x52')},{'model':db[_0x7648('0x51')],'as':_0x7648('0x4f')}]});}return null;})[_0x7648('0x29')](respondWithResult(_0x80c627,null))['catch'](handleError(_0x80c627,null));};var md5=require('md5');exports['getFields']=function(_0x50a181,_0x28ca98,_0x1ff540){var _0xbd608=null;var _0x515e2c=null;var _0x52c5a6=null;var _0x4a6f75=null;var _0x4e86ea='';return db[_0x7648('0x43')][_0x7648('0x4c')]({'where':{'id':_0x50a181[_0x7648('0x46')]['id']},'attributes':['id','name','username','description',_0x7648('0x53'),_0x7648('0x54'),_0x7648('0x55'),'accessKey']})[_0x7648('0x29')](handleEntityNotFound(_0x28ca98,null))[_0x7648('0x29')](function(_0x4579d5){if(_0x4579d5){_0xbd608=_0x4579d5[_0x7648('0x56')];_0x515e2c=_0x4579d5[_0x7648('0x57')];_0x52c5a6=_0x4579d5[_0x7648('0x53')];_0x4e86ea=_0x4579d5[_0x7648('0x54')];var _0x1e1897=_0x4e86ea['slice'](-0x1);if(_0x1e1897==='/'){_0x4e86ea=_0x4e86ea[_0x7648('0x58')](0x0,_0x4e86ea[_0x7648('0x59')](_0x1e1897));}_0x4a6f75=util[_0x7648('0x5a')](_0x7648('0x5b'),_0x4e86ea);var _0x2081a9={'method':'GET','uri':_0x4a6f75,'qs':{'operation':_0x7648('0x5c'),'username':_0x4579d5['username']},'json':!![]};return rp(_0x2081a9);}})['then'](function(_0x1d63fe){if(_0x1d63fe[_0x7648('0x5d')]){var _0x16ae22={'method':'POST','uri':_0x4a6f75,'form':{'operation':'login','username':_0xbd608,'accessKey':md5(_0x1d63fe[_0x7648('0x5e')][_0x7648('0x5f')]+_0x515e2c)},'json':!![]};return rp(_0x16ae22);}})[_0x7648('0x29')](function(_0x5d33fe){if(_0x5d33fe[_0x7648('0x5d')]){var _0x2ce8f3={'method':'GET','uri':_0x4a6f75,'qs':{'operation':_0x7648('0x60'),'username':_0xbd608,'sessionName':_0x5d33fe[_0x7648('0x5e')][_0x7648('0x61')],'elementType':_0x52c5a6},'json':!![]};return rp(_0x2ce8f3);}})[_0x7648('0x29')](function(_0x24783d){if(_0x24783d[_0x7648('0x5d')]){var _0x1b075b=[_0x7648('0x62'),'reference',_0x7648('0x63')];_[_0x7648('0x64')](_0x24783d['result'][_0x7648('0x38')],function(_0x24f249){return _0x1b075b['includes'](_0x24f249['type'][_0x7648('0x2c')]);});_[_0x7648('0x64')](_0x24783d[_0x7648('0x5e')][_0x7648('0x38')],function(_0x435a3f){return _0x435a3f[_0x7648('0x65')]===_0x7648('0x66');});return{'count':_0x24783d[_0x7648('0x5e')][_0x7648('0x38')][_0x7648('0x39')],'rows':_[_0x7648('0x2e')](_0x24783d[_0x7648('0x5e')][_0x7648('0x38')],function(_0x1a4550){return{'id':_0x1a4550[_0x7648('0x2c')],'name':_0x1a4550[_0x7648('0x67')],'custom':_[_0x7648('0x68')](_0x1a4550[_0x7648('0x2c')],_0x7648('0x69'))?!![]:![],'options':_0x1a4550['type'][_0x7648('0x2c')]===_0x7648('0x6a')&&_0x1a4550[_0x7648('0x30')]['picklistValues'][_0x7648('0x39')]>0x0?_['map'](_0x1a4550['type']['picklistValues'],function(_0x357a3b){return{'name':_0x357a3b[_0x7648('0x67')],'value':_0x357a3b[_0x7648('0x6b')]};}):[]};})};}})['then'](respondWithResult(_0x28ca98,null))[_0x7648('0x45')](function(_0x159a95){console[_0x7648('0x6c')](_0x7648('0x6d')+_0x159a95);var _0x2c9d6a=_0x50a181[_0x7648('0x33')][_0x7648('0x6e')]?0x1f4:_0x159a95[_0x7648('0x6f')]||0x1f4;logger['error'](_0x7648('0x70'),_0x7648('0x71'),_0x2c9d6a,JSON[_0x7648('0x72')](_0x159a95));delete _0x159a95['name'];if(_0x2c9d6a===0x191){_0x2c9d6a=0x190;}_0x28ca98[_0x7648('0x1d')](_0x2c9d6a)[_0x7648('0x2d')](_0x50a181[_0x7648('0x33')][_0x7648('0x6e')]?{'message':_0x7648('0x73'),'statusCode':_0x159a95[_0x7648('0x6f')]}:_0x159a95);});};