9015d10337307e3d194e7bc2a32ca656b27f35f3
[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 _0x95af=['serverUrl','accessKey','remoteUri','slice','substring','lastIndexOf','format','getchallenge','success','POST','result','token','describe','sessionName','reference','remove','false','label','startsWith','cf_','picklistValues','value','log','vTiger\x20error:\x20','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','test','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','index','map','VtigerAccount','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','includeAll','include','rows','catch','params','options','find','create','body','findOne','VtigerConfiguration','pick','getConfigurations','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','VtigerField','getFields','username','description','moduleName'];(function(_0x1d8f38,_0x47221b){var _0x5d1b8a=function(_0x45017a){while(--_0x45017a){_0x1d8f38['push'](_0x1d8f38['shift']());}};_0x5d1b8a(++_0x47221b);}(_0x95af,0x98));var _0xf95a=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0x95af[_0xfae23b];return _0x200640;};'use strict';var emlformat=require(_0xf95a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf95a('0x1'));var jsonpatch=require(_0xf95a('0x2'));var rp=require(_0xf95a('0x3'));var moment=require(_0xf95a('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xf95a('0x5'));var util=require(_0xf95a('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xf95a('0x7'));var ejs=require(_0xf95a('0x8'));var fs=require('fs');var fs_extra=require(_0xf95a('0x9'));var _=require(_0xf95a('0xa'));var squel=require(_0xf95a('0xb'));var crypto=require(_0xf95a('0xc'));var jsforce=require(_0xf95a('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xf95a('0x7'));var querystring=require('querystring');var Papa=require(_0xf95a('0xe'));var Redis=require(_0xf95a('0xf'));var authService=require(_0xf95a('0x10'));var qs=require(_0xf95a('0x11'));var as=require(_0xf95a('0x12'));var hardwareService=require(_0xf95a('0x13'));var logger=require('../../config/logger')(_0xf95a('0x14'));var utils=require(_0xf95a('0x15'));var config=require(_0xf95a('0x16'));var licenseUtil=require(_0xf95a('0x17'));var db=require(_0xf95a('0x18'))['db'];var integrations=require(_0xf95a('0x19'));function respondWithStatusCode(_0x4902f9,_0x58229d){_0x58229d=_0x58229d||0xcc;return function(_0x32afe5){if(_0x32afe5){return _0x4902f9[_0xf95a('0x1a')](_0x58229d);}return _0x4902f9[_0xf95a('0x1b')](_0x58229d)[_0xf95a('0x1c')]();};}function respondWithResult(_0x54ed3a,_0x6ecc46){_0x6ecc46=_0x6ecc46||0xc8;return function(_0x128347){if(_0x128347){return _0x54ed3a[_0xf95a('0x1b')](_0x6ecc46)[_0xf95a('0x1d')](_0x128347);}};}function respondWithFilteredResult(_0x388070,_0x54e792){return function(_0x25ca94){if(_0x25ca94){var _0x37d194=typeof _0x54e792[_0xf95a('0x1e')]==='undefined'&&typeof _0x54e792['limit']==='undefined';var _0x1a91ab=_0x25ca94[_0xf95a('0x1f')];var _0x2ded8a=_0x37d194?0x0:_0x54e792[_0xf95a('0x1e')];var _0x53f1e2=_0x37d194?_0x25ca94[_0xf95a('0x1f')]:_0x54e792['offset']+_0x54e792[_0xf95a('0x20')];var _0x4b2f29;if(_0x53f1e2>=_0x1a91ab){_0x53f1e2=_0x1a91ab;_0x4b2f29=0xc8;}else{_0x4b2f29=0xce;}_0x388070[_0xf95a('0x1b')](_0x4b2f29);return _0x388070[_0xf95a('0x21')](_0xf95a('0x22'),_0x2ded8a+'-'+_0x53f1e2+'/'+_0x1a91ab)[_0xf95a('0x1d')](_0x25ca94);}return null;};}function patchUpdates(_0x234a59){return function(_0x1ac901){try{jsonpatch[_0xf95a('0x23')](_0x1ac901,_0x234a59,!![]);}catch(_0xc96638){return BPromise[_0xf95a('0x24')](_0xc96638);}return _0x1ac901[_0xf95a('0x25')]();};}function saveUpdates(_0xbe3ea4,_0x378d5e){return function(_0x9fbe0d){if(_0x9fbe0d){return _0x9fbe0d[_0xf95a('0x26')](_0xbe3ea4)[_0xf95a('0x27')](function(_0x53ceb1){return _0x53ceb1;});}return null;};}function removeEntity(_0x300000,_0xd51d61){return function(_0x21decf){if(_0x21decf){return _0x21decf[_0xf95a('0x28')]()['then'](function(){_0x300000[_0xf95a('0x1b')](0xcc)[_0xf95a('0x1c')]();});}};}function handleEntityNotFound(_0x5b8405,_0x154695){return function(_0x5b6377){if(!_0x5b6377){_0x5b8405[_0xf95a('0x1a')](0x194);}return _0x5b6377;};}function handleError(_0x2ac013,_0xa301c5){_0xa301c5=_0xa301c5||0x1f4;return function(_0x191256){logger[_0xf95a('0x29')](_0x191256[_0xf95a('0x2a')]);if(_0x191256[_0xf95a('0x2b')]){delete _0x191256['name'];}_0x2ac013[_0xf95a('0x1b')](_0xa301c5)['send'](_0x191256);};}exports[_0xf95a('0x2c')]=function(_0x1d4758,_0x59c4f0){var _0x564e1b={},_0x5140c5={},_0x55bc19={'count':0x0,'rows':[]};var _0x3105e1=_[_0xf95a('0x2d')](db[_0xf95a('0x2e')][_0xf95a('0x2f')],function(_0x35935f){return{'name':_0x35935f[_0xf95a('0x30')],'type':_0x35935f[_0xf95a('0x31')][_0xf95a('0x32')]};});_0x5140c5[_0xf95a('0x33')]=_[_0xf95a('0x2d')](_0x3105e1,'name');_0x5140c5[_0xf95a('0x34')]=_[_0xf95a('0x35')](_0x1d4758['query']);_0x5140c5['filters']=_[_0xf95a('0x36')](_0x5140c5['model'],_0x5140c5['query']);_0x564e1b[_0xf95a('0x37')]=_[_0xf95a('0x36')](_0x5140c5[_0xf95a('0x33')],qs[_0xf95a('0x38')](_0x1d4758[_0xf95a('0x34')][_0xf95a('0x38')]));_0x564e1b[_0xf95a('0x37')]=_0x564e1b['attributes'][_0xf95a('0x39')]?_0x564e1b[_0xf95a('0x37')]:_0x5140c5[_0xf95a('0x33')];if(!_0x1d4758[_0xf95a('0x34')]['hasOwnProperty'](_0xf95a('0x3a'))){_0x564e1b['limit']=qs[_0xf95a('0x20')](_0x1d4758[_0xf95a('0x34')][_0xf95a('0x20')]);_0x564e1b['offset']=qs[_0xf95a('0x1e')](_0x1d4758[_0xf95a('0x34')][_0xf95a('0x1e')]);}_0x564e1b[_0xf95a('0x3b')]=qs[_0xf95a('0x3c')](_0x1d4758[_0xf95a('0x34')]['sort']);_0x564e1b[_0xf95a('0x3d')]=qs['filters'](_['pick'](_0x1d4758[_0xf95a('0x34')],_0x5140c5[_0xf95a('0x3e')]),_0x3105e1);if(_0x1d4758[_0xf95a('0x34')][_0xf95a('0x3f')]){_0x564e1b[_0xf95a('0x3d')]=_[_0xf95a('0x40')](_0x564e1b[_0xf95a('0x3d')],{'$or':_[_0xf95a('0x2d')](_0x3105e1,function(_0x47a258){if(_0x47a258[_0xf95a('0x31')]!==_0xf95a('0x41')){var _0x519b47={};_0x519b47[_0x47a258[_0xf95a('0x2b')]]={'$like':'%'+_0x1d4758['query'][_0xf95a('0x3f')]+'%'};return _0x519b47;}})});}_0x564e1b=_[_0xf95a('0x40')]({},_0x564e1b,_0x1d4758['options']);var _0x29a562={'where':_0x564e1b[_0xf95a('0x3d')]};return db[_0xf95a('0x2e')]['count'](_0x29a562)[_0xf95a('0x27')](function(_0x4f8bd4){_0x55bc19['count']=_0x4f8bd4;if(_0x1d4758['query'][_0xf95a('0x42')]){_0x564e1b[_0xf95a('0x43')]=[{'all':!![]}];}return db[_0xf95a('0x2e')]['findAll'](_0x564e1b);})['then'](function(_0x2c3c1c){_0x55bc19[_0xf95a('0x44')]=_0x2c3c1c;return _0x55bc19;})[_0xf95a('0x27')](respondWithFilteredResult(_0x59c4f0,_0x564e1b))[_0xf95a('0x45')](handleError(_0x59c4f0,null));};exports['show']=function(_0x47abe3,_0x275e44){var _0x27cc2c={'raw':![],'where':{'id':_0x47abe3[_0xf95a('0x46')]['id']}},_0x3507fa={};_0x3507fa[_0xf95a('0x33')]=_[_0xf95a('0x35')](db[_0xf95a('0x2e')][_0xf95a('0x2f')]);_0x3507fa[_0xf95a('0x34')]=_[_0xf95a('0x35')](_0x47abe3['query']);_0x3507fa[_0xf95a('0x3e')]=_[_0xf95a('0x36')](_0x3507fa[_0xf95a('0x33')],_0x3507fa[_0xf95a('0x34')]);_0x27cc2c['attributes']=_[_0xf95a('0x36')](_0x3507fa[_0xf95a('0x33')],qs['fields'](_0x47abe3['query'][_0xf95a('0x38')]));_0x27cc2c[_0xf95a('0x37')]=_0x27cc2c['attributes']['length']?_0x27cc2c[_0xf95a('0x37')]:_0x3507fa['model'];if(_0x47abe3[_0xf95a('0x34')][_0xf95a('0x42')]){_0x27cc2c[_0xf95a('0x43')]=[{'all':!![]}];}_0x27cc2c=_['merge']({},_0x27cc2c,_0x47abe3[_0xf95a('0x47')]);return db[_0xf95a('0x2e')][_0xf95a('0x48')](_0x27cc2c)['then'](handleEntityNotFound(_0x275e44,null))[_0xf95a('0x27')](respondWithResult(_0x275e44,null))['catch'](handleError(_0x275e44,null));};exports[_0xf95a('0x49')]=function(_0x315390,_0x542108){return db[_0xf95a('0x2e')]['create'](_0x315390[_0xf95a('0x4a')],{})['then'](respondWithResult(_0x542108,0xc9))[_0xf95a('0x45')](handleError(_0x542108,null));};exports['update']=function(_0x4f92c8,_0x6f0b32){if(_0x4f92c8[_0xf95a('0x4a')]['id']){delete _0x4f92c8[_0xf95a('0x4a')]['id'];}return db[_0xf95a('0x2e')][_0xf95a('0x48')]({'where':{'id':_0x4f92c8['params']['id']}})[_0xf95a('0x27')](handleEntityNotFound(_0x6f0b32,null))[_0xf95a('0x27')](saveUpdates(_0x4f92c8[_0xf95a('0x4a')],null))[_0xf95a('0x27')](respondWithResult(_0x6f0b32,null))[_0xf95a('0x45')](handleError(_0x6f0b32,null));};exports[_0xf95a('0x28')]=function(_0x48b03b,_0xc8c3f6){return db[_0xf95a('0x2e')][_0xf95a('0x48')]({'where':{'id':_0x48b03b[_0xf95a('0x46')]['id']}})[_0xf95a('0x27')](handleEntityNotFound(_0xc8c3f6,null))[_0xf95a('0x27')](removeEntity(_0xc8c3f6,null))[_0xf95a('0x45')](handleError(_0xc8c3f6,null));};exports['getConfigurations']=function(_0x5dfd84,_0x27dedf,_0x560a4f){var _0x50b9d3={};var _0x4b4eba={};var _0x1f25f5;var _0x45a0bf;return db[_0xf95a('0x2e')][_0xf95a('0x4b')]({'where':{'id':_0x5dfd84['params']['id']}})['then'](handleEntityNotFound(_0x27dedf,null))[_0xf95a('0x27')](function(_0x3b82fb){if(_0x3b82fb){_0x1f25f5=_0x3b82fb;_0x4b4eba['model']=_[_0xf95a('0x35')](db[_0xf95a('0x4c')][_0xf95a('0x2f')]);_0x4b4eba[_0xf95a('0x34')]=_[_0xf95a('0x35')](_0x5dfd84['query']);_0x4b4eba[_0xf95a('0x3e')]=_[_0xf95a('0x36')](_0x4b4eba['model'],_0x4b4eba['query']);_0x50b9d3[_0xf95a('0x37')]=_[_0xf95a('0x36')](_0x4b4eba[_0xf95a('0x33')],qs['fields'](_0x5dfd84[_0xf95a('0x34')][_0xf95a('0x38')]));_0x50b9d3[_0xf95a('0x37')]=_0x50b9d3[_0xf95a('0x37')][_0xf95a('0x39')]?_0x50b9d3[_0xf95a('0x37')]:_0x4b4eba['model'];_0x50b9d3[_0xf95a('0x3b')]=qs['sort'](_0x5dfd84[_0xf95a('0x34')]['sort']);_0x50b9d3[_0xf95a('0x3d')]=qs[_0xf95a('0x3e')](_[_0xf95a('0x4d')](_0x5dfd84['query'],_0x4b4eba['filters']));if(_0x5dfd84[_0xf95a('0x34')][_0xf95a('0x3f')]){_0x50b9d3[_0xf95a('0x3d')]=_[_0xf95a('0x40')](_0x50b9d3[_0xf95a('0x3d')],{'$or':_[_0xf95a('0x2d')](_0x50b9d3['attributes'],function(_0x4a6f91){var _0x1a28b3={};_0x1a28b3[_0x4a6f91]={'$like':'%'+_0x5dfd84[_0xf95a('0x34')][_0xf95a('0x3f')]+'%'};return _0x1a28b3;})});}_0x50b9d3=_[_0xf95a('0x40')]({},_0x50b9d3,_0x5dfd84[_0xf95a('0x47')]);return _0x1f25f5[_0xf95a('0x4e')](_0x50b9d3);}})[_0xf95a('0x27')](function(_0xa6bce5){if(_0xa6bce5){_0x45a0bf=_0xa6bce5[_0xf95a('0x39')];if(!_0x5dfd84[_0xf95a('0x34')][_0xf95a('0x4f')]('nolimit')){_0x50b9d3[_0xf95a('0x20')]=qs[_0xf95a('0x20')](_0x5dfd84[_0xf95a('0x34')][_0xf95a('0x20')]);_0x50b9d3[_0xf95a('0x1e')]=qs[_0xf95a('0x1e')](_0x5dfd84[_0xf95a('0x34')][_0xf95a('0x1e')]);}return _0x1f25f5[_0xf95a('0x4e')](_0x50b9d3);}})[_0xf95a('0x27')](function(_0x523b9b){if(_0x523b9b){return _0x523b9b?{'count':_0x45a0bf,'rows':_0x523b9b}:null;}})[_0xf95a('0x27')](respondWithResult(_0x27dedf,null))['catch'](handleError(_0x27dedf,null));};exports[_0xf95a('0x50')]=function(_0x5f426d,_0x4bd4fd,_0x147acd){if(_0x5f426d['body']['id']){delete _0x5f426d[_0xf95a('0x4a')]['id'];}return db[_0xf95a('0x2e')][_0xf95a('0x4b')]({'where':{'id':_0x5f426d[_0xf95a('0x46')]['id']}})['then'](handleEntityNotFound(_0x4bd4fd,null))[_0xf95a('0x27')](function(_0x1812b1){if(_0x1812b1){_0x5f426d['body'][_0xf95a('0x51')]=_0x1812b1['id'];_0x5f426d['body'][_0xf95a('0x52')]=integrations[_0xf95a('0x53')](_0x5f426d['body']['channel'],_0x5f426d['body']['type']);_0x5f426d[_0xf95a('0x4a')][_0xf95a('0x54')]=integrations[_0xf95a('0x55')](_0x5f426d[_0xf95a('0x4a')][_0xf95a('0x56')],_0x5f426d['body'][_0xf95a('0x31')]);return db[_0xf95a('0x4c')]['create'](_0x5f426d[_0xf95a('0x4a')],{'include':[{'model':db[_0xf95a('0x57')],'as':_0xf95a('0x52')},{'model':db[_0xf95a('0x57')],'as':_0xf95a('0x54')}]});}return null;})['then'](respondWithResult(_0x4bd4fd,null))[_0xf95a('0x45')](handleError(_0x4bd4fd,null));};var md5=require('md5');exports[_0xf95a('0x58')]=function(_0x3ee10f,_0x47a880,_0x2a5e21){var _0x459037=null;var _0x77ac63=null;var _0x5b457f=null;var _0x41e80f=null;var _0x27083a='';return db['VtigerAccount'][_0xf95a('0x4b')]({'where':{'id':_0x3ee10f[_0xf95a('0x46')]['id']},'attributes':['id',_0xf95a('0x2b'),_0xf95a('0x59'),_0xf95a('0x5a'),_0xf95a('0x5b'),'remoteUri',_0xf95a('0x5c'),_0xf95a('0x5d')]})[_0xf95a('0x27')](handleEntityNotFound(_0x47a880,null))[_0xf95a('0x27')](function(_0x22275e){if(_0x22275e){_0x459037=_0x22275e[_0xf95a('0x59')];_0x77ac63=_0x22275e['accessKey'];_0x5b457f=_0x22275e['moduleName'];_0x27083a=_0x22275e[_0xf95a('0x5e')];var _0x2a7339=_0x27083a[_0xf95a('0x5f')](-0x1);if(_0x2a7339==='/'){_0x27083a=_0x27083a[_0xf95a('0x60')](0x0,_0x27083a[_0xf95a('0x61')](_0x2a7339));}_0x41e80f=util[_0xf95a('0x62')]('%s/webservice.php',_0x27083a);var _0xc638d2={'method':'GET','uri':_0x41e80f,'qs':{'operation':_0xf95a('0x63'),'username':_0x22275e[_0xf95a('0x59')]},'json':!![]};return rp(_0xc638d2);}})['then'](function(_0x2ec9d2){if(_0x2ec9d2[_0xf95a('0x64')]){var _0x2ac17c={'method':_0xf95a('0x65'),'uri':_0x41e80f,'form':{'operation':'login','username':_0x459037,'accessKey':md5(_0x2ec9d2[_0xf95a('0x66')][_0xf95a('0x67')]+_0x77ac63)},'json':!![]};return rp(_0x2ac17c);}})['then'](function(_0x27bb89){if(_0x27bb89[_0xf95a('0x64')]){var _0x3ed8c5={'method':'GET','uri':_0x41e80f,'qs':{'operation':_0xf95a('0x68'),'username':_0x459037,'sessionName':_0x27bb89['result'][_0xf95a('0x69')],'elementType':_0x5b457f},'json':!![]};return rp(_0x3ed8c5);}})['then'](function(_0x370531){if(_0x370531[_0xf95a('0x64')]){var _0x225ed3=['autogenerated',_0xf95a('0x6a'),'owner'];_[_0xf95a('0x6b')](_0x370531[_0xf95a('0x66')]['fields'],function(_0x45d52b){return _0x225ed3['includes'](_0x45d52b[_0xf95a('0x31')][_0xf95a('0x2b')]);});_[_0xf95a('0x6b')](_0x370531[_0xf95a('0x66')][_0xf95a('0x38')],function(_0x3240ba){return _0x3240ba['editable']===_0xf95a('0x6c');});return{'count':_0x370531[_0xf95a('0x66')][_0xf95a('0x38')][_0xf95a('0x39')],'rows':_[_0xf95a('0x2d')](_0x370531['result'][_0xf95a('0x38')],function(_0x5d5f12){return{'id':_0x5d5f12[_0xf95a('0x2b')],'name':_0x5d5f12[_0xf95a('0x6d')],'custom':_[_0xf95a('0x6e')](_0x5d5f12['name'],_0xf95a('0x6f'))?!![]:![],'options':_0x5d5f12[_0xf95a('0x31')][_0xf95a('0x2b')]==='picklist'&&_0x5d5f12['type'][_0xf95a('0x70')]['length']>0x0?_['map'](_0x5d5f12[_0xf95a('0x31')][_0xf95a('0x70')],function(_0x48fd87){return{'name':_0x48fd87[_0xf95a('0x6d')],'value':_0x48fd87[_0xf95a('0x71')]};}):[]};})};}})['then'](respondWithResult(_0x47a880,null))[_0xf95a('0x45')](function(_0x4b4c1a){console[_0xf95a('0x72')](_0xf95a('0x73')+_0x4b4c1a);var _0x1708f5=_0x3ee10f[_0xf95a('0x34')]['test']?0x1f4:_0x4b4c1a[_0xf95a('0x74')]||0x1f4;logger[_0xf95a('0x29')](_0xf95a('0x75'),_0xf95a('0x58'),_0x1708f5,JSON[_0xf95a('0x76')](_0x4b4c1a));delete _0x4b4c1a['name'];if(_0x1708f5===0x191){_0x1708f5=0x190;}_0x47a880[_0xf95a('0x1b')](_0x1708f5)[_0xf95a('0x77')](_0x3ee10f['query'][_0xf95a('0x78')]?{'message':_0xf95a('0x79'),'statusCode':_0x4b4c1a[_0xf95a('0x74')]}:_0x4b4c1a);});};