3d59c9dc7b3b6834f03160550cfdee5c0f2398e3
[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 _0xd48f=['apply','save','update','destroy','name','send','index','map','VtigerAccount','fieldName','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','type','VIRTUAL','options','then','includeAll','include','findAll','rows','catch','show','params','find','create','body','getConfigurations','findOne','order','addConfiguration','AccountId','Subjects','Descriptions','getDescriptions','channel','VtigerConfiguration','VtigerField','md5','getFields','description','moduleName','remoteUri','serverUrl','accessKey','username','slice','substring','lastIndexOf','format','GET','getchallenge','success','POST','login','result','describe','sessionName','reference','owner','remove','includes','editable','false','label','startsWith','cf_','picklistValues','value','log','test','error','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json'];(function(_0x6061e3,_0x146d7d){var _0x310d99=function(_0x4d03e5){while(--_0x4d03e5){_0x6061e3['push'](_0x6061e3['shift']());}};_0x310d99(++_0x146d7d);}(_0xd48f,0x1c1));var _0xfd48=function(_0x4792c8,_0x5158a1){_0x4792c8=_0x4792c8-0x0;var _0x35edb1=_0xd48f[_0x4792c8];return _0x35edb1;};'use strict';var emlformat=require(_0xfd48('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xfd48('0x1'));var jsonpatch=require(_0xfd48('0x2'));var rp=require(_0xfd48('0x3'));var moment=require(_0xfd48('0x4'));var BPromise=require(_0xfd48('0x5'));var Mustache=require(_0xfd48('0x6'));var util=require(_0xfd48('0x7'));var path=require(_0xfd48('0x8'));var sox=require(_0xfd48('0x9'));var csv=require(_0xfd48('0xa'));var ejs=require(_0xfd48('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xfd48('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xfd48('0xd'));var deskjs=require(_0xfd48('0xe'));var toCsv=require(_0xfd48('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xfd48('0xf'));var qs=require(_0xfd48('0x10'));var as=require(_0xfd48('0x11'));var hardwareService=require(_0xfd48('0x12'));var logger=require(_0xfd48('0x13'))('api');var utils=require(_0xfd48('0x14'));var config=require(_0xfd48('0x15'));var licenseUtil=require(_0xfd48('0x16'));var db=require(_0xfd48('0x17'))['db'];var integrations=require(_0xfd48('0x18'));function respondWithStatusCode(_0x3508f2,_0x40f705){_0x40f705=_0x40f705||0xcc;return function(_0x5685f2){if(_0x5685f2){return _0x3508f2[_0xfd48('0x19')](_0x40f705);}return _0x3508f2[_0xfd48('0x1a')](_0x40f705)[_0xfd48('0x1b')]();};}function respondWithResult(_0x4a66ce,_0x2bd0cf){_0x2bd0cf=_0x2bd0cf||0xc8;return function(_0x4d9b78){if(_0x4d9b78){return _0x4a66ce[_0xfd48('0x1a')](_0x2bd0cf)['json'](_0x4d9b78);}};}function respondWithFilteredResult(_0x180448,_0x20a1d1){return function(_0x4fd739){if(_0x4fd739){var _0x58f8e2=typeof _0x20a1d1[_0xfd48('0x1c')]===_0xfd48('0x1d')&&typeof _0x20a1d1['limit']===_0xfd48('0x1d');var _0x59dc93=_0x4fd739[_0xfd48('0x1e')];var _0x3a6c77=_0x58f8e2?0x0:_0x20a1d1[_0xfd48('0x1c')];var _0x56d830=_0x58f8e2?_0x4fd739[_0xfd48('0x1e')]:_0x20a1d1[_0xfd48('0x1c')]+_0x20a1d1[_0xfd48('0x1f')];var _0x53df60;if(_0x56d830>=_0x59dc93){_0x56d830=_0x59dc93;_0x53df60=0xc8;}else{_0x53df60=0xce;}_0x180448[_0xfd48('0x1a')](_0x53df60);return _0x180448[_0xfd48('0x20')](_0xfd48('0x21'),_0x3a6c77+'-'+_0x56d830+'/'+_0x59dc93)[_0xfd48('0x22')](_0x4fd739);}return null;};}function patchUpdates(_0xaecba5){return function(_0x47d0f5){try{jsonpatch[_0xfd48('0x23')](_0x47d0f5,_0xaecba5,!![]);}catch(_0x5ac2c2){return BPromise['reject'](_0x5ac2c2);}return _0x47d0f5[_0xfd48('0x24')]();};}function saveUpdates(_0x605861,_0x45bba9){return function(_0x239c75){if(_0x239c75){return _0x239c75[_0xfd48('0x25')](_0x605861)['then'](function(_0x29e376){return _0x29e376;});}return null;};}function removeEntity(_0x2f33c5,_0x4207c5){return function(_0x3e7544){if(_0x3e7544){return _0x3e7544[_0xfd48('0x26')]()['then'](function(){_0x2f33c5[_0xfd48('0x1a')](0xcc)[_0xfd48('0x1b')]();});}};}function handleEntityNotFound(_0x597f23,_0x43caae){return function(_0x1e91c9){if(!_0x1e91c9){_0x597f23[_0xfd48('0x19')](0x194);}return _0x1e91c9;};}function handleError(_0x3198d9,_0x5e83c2){_0x5e83c2=_0x5e83c2||0x1f4;return function(_0x2b54b8){logger['error'](_0x2b54b8['stack']);if(_0x2b54b8[_0xfd48('0x27')]){delete _0x2b54b8[_0xfd48('0x27')];}_0x3198d9[_0xfd48('0x1a')](_0x5e83c2)[_0xfd48('0x28')](_0x2b54b8);};}exports[_0xfd48('0x29')]=function(_0x3bd8f1,_0x23ee9a){var _0x1903e9={},_0x3c089f={},_0x1c96f1={'count':0x0,'rows':[]};var _0xb357ce=_[_0xfd48('0x2a')](db[_0xfd48('0x2b')]['rawAttributes'],function(_0x33ce8b){return{'name':_0x33ce8b[_0xfd48('0x2c')],'type':_0x33ce8b['type']['key']};});_0x3c089f[_0xfd48('0x2d')]=_[_0xfd48('0x2a')](_0xb357ce,_0xfd48('0x27'));_0x3c089f['query']=_[_0xfd48('0x2e')](_0x3bd8f1[_0xfd48('0x2f')]);_0x3c089f[_0xfd48('0x30')]=_['intersection'](_0x3c089f[_0xfd48('0x2d')],_0x3c089f[_0xfd48('0x2f')]);_0x1903e9['attributes']=_[_0xfd48('0x31')](_0x3c089f['model'],qs[_0xfd48('0x32')](_0x3bd8f1[_0xfd48('0x2f')][_0xfd48('0x32')]));_0x1903e9[_0xfd48('0x33')]=_0x1903e9[_0xfd48('0x33')][_0xfd48('0x34')]?_0x1903e9['attributes']:_0x3c089f[_0xfd48('0x2d')];if(!_0x3bd8f1[_0xfd48('0x2f')][_0xfd48('0x35')](_0xfd48('0x36'))){_0x1903e9['limit']=qs[_0xfd48('0x1f')](_0x3bd8f1['query']['limit']);_0x1903e9[_0xfd48('0x1c')]=qs[_0xfd48('0x1c')](_0x3bd8f1[_0xfd48('0x2f')][_0xfd48('0x1c')]);}_0x1903e9['order']=qs[_0xfd48('0x37')](_0x3bd8f1[_0xfd48('0x2f')][_0xfd48('0x37')]);_0x1903e9[_0xfd48('0x38')]=qs[_0xfd48('0x30')](_[_0xfd48('0x39')](_0x3bd8f1[_0xfd48('0x2f')],_0x3c089f[_0xfd48('0x30')]),_0xb357ce);if(_0x3bd8f1[_0xfd48('0x2f')][_0xfd48('0x3a')]){_0x1903e9[_0xfd48('0x38')]=_[_0xfd48('0x3b')](_0x1903e9[_0xfd48('0x38')],{'$or':_[_0xfd48('0x2a')](_0xb357ce,function(_0x22bcee){if(_0x22bcee[_0xfd48('0x3c')]!==_0xfd48('0x3d')){var _0x3733f1={};_0x3733f1[_0x22bcee[_0xfd48('0x27')]]={'$like':'%'+_0x3bd8f1[_0xfd48('0x2f')][_0xfd48('0x3a')]+'%'};return _0x3733f1;}})});}_0x1903e9=_[_0xfd48('0x3b')]({},_0x1903e9,_0x3bd8f1[_0xfd48('0x3e')]);var _0x267948={'where':_0x1903e9[_0xfd48('0x38')]};return db[_0xfd48('0x2b')]['count'](_0x267948)[_0xfd48('0x3f')](function(_0x28a598){_0x1c96f1[_0xfd48('0x1e')]=_0x28a598;if(_0x3bd8f1[_0xfd48('0x2f')][_0xfd48('0x40')]){_0x1903e9[_0xfd48('0x41')]=[{'all':!![]}];}return db[_0xfd48('0x2b')][_0xfd48('0x42')](_0x1903e9);})['then'](function(_0x135583){_0x1c96f1[_0xfd48('0x43')]=_0x135583;return _0x1c96f1;})[_0xfd48('0x3f')](respondWithFilteredResult(_0x23ee9a,_0x1903e9))[_0xfd48('0x44')](handleError(_0x23ee9a,null));};exports[_0xfd48('0x45')]=function(_0x11d230,_0xc1d78e){var _0x21325e={'raw':![],'where':{'id':_0x11d230[_0xfd48('0x46')]['id']}},_0x1aaec6={};_0x1aaec6[_0xfd48('0x2d')]=_[_0xfd48('0x2e')](db[_0xfd48('0x2b')]['rawAttributes']);_0x1aaec6['query']=_[_0xfd48('0x2e')](_0x11d230[_0xfd48('0x2f')]);_0x1aaec6['filters']=_[_0xfd48('0x31')](_0x1aaec6[_0xfd48('0x2d')],_0x1aaec6[_0xfd48('0x2f')]);_0x21325e[_0xfd48('0x33')]=_['intersection'](_0x1aaec6[_0xfd48('0x2d')],qs[_0xfd48('0x32')](_0x11d230[_0xfd48('0x2f')][_0xfd48('0x32')]));_0x21325e[_0xfd48('0x33')]=_0x21325e['attributes']['length']?_0x21325e['attributes']:_0x1aaec6[_0xfd48('0x2d')];if(_0x11d230['query'][_0xfd48('0x40')]){_0x21325e[_0xfd48('0x41')]=[{'all':!![]}];}_0x21325e=_[_0xfd48('0x3b')]({},_0x21325e,_0x11d230['options']);return db[_0xfd48('0x2b')][_0xfd48('0x47')](_0x21325e)['then'](handleEntityNotFound(_0xc1d78e,null))[_0xfd48('0x3f')](respondWithResult(_0xc1d78e,null))[_0xfd48('0x44')](handleError(_0xc1d78e,null));};exports[_0xfd48('0x48')]=function(_0x50ba5e,_0x322e23){return db['VtigerAccount'][_0xfd48('0x48')](_0x50ba5e[_0xfd48('0x49')],{})[_0xfd48('0x3f')](respondWithResult(_0x322e23,0xc9))[_0xfd48('0x44')](handleError(_0x322e23,null));};exports[_0xfd48('0x25')]=function(_0x3e3350,_0x2fdb4e){if(_0x3e3350[_0xfd48('0x49')]['id']){delete _0x3e3350[_0xfd48('0x49')]['id'];}return db[_0xfd48('0x2b')][_0xfd48('0x47')]({'where':{'id':_0x3e3350[_0xfd48('0x46')]['id']}})[_0xfd48('0x3f')](handleEntityNotFound(_0x2fdb4e,null))[_0xfd48('0x3f')](saveUpdates(_0x3e3350[_0xfd48('0x49')],null))[_0xfd48('0x3f')](respondWithResult(_0x2fdb4e,null))[_0xfd48('0x44')](handleError(_0x2fdb4e,null));};exports['destroy']=function(_0x4c9a74,_0xf75ca){return db[_0xfd48('0x2b')][_0xfd48('0x47')]({'where':{'id':_0x4c9a74[_0xfd48('0x46')]['id']}})[_0xfd48('0x3f')](handleEntityNotFound(_0xf75ca,null))[_0xfd48('0x3f')](removeEntity(_0xf75ca,null))[_0xfd48('0x44')](handleError(_0xf75ca,null));};exports[_0xfd48('0x4a')]=function(_0x1352b7,_0x2490e7,_0x59e0ab){var _0x360c0f={};var _0x329a65={};var _0x5e8db6;var _0x15de81;return db[_0xfd48('0x2b')][_0xfd48('0x4b')]({'where':{'id':_0x1352b7[_0xfd48('0x46')]['id']}})[_0xfd48('0x3f')](handleEntityNotFound(_0x2490e7,null))['then'](function(_0x237f08){if(_0x237f08){_0x5e8db6=_0x237f08;_0x329a65[_0xfd48('0x2d')]=_[_0xfd48('0x2e')](db['VtigerConfiguration']['rawAttributes']);_0x329a65['query']=_[_0xfd48('0x2e')](_0x1352b7['query']);_0x329a65[_0xfd48('0x30')]=_['intersection'](_0x329a65['model'],_0x329a65[_0xfd48('0x2f')]);_0x360c0f[_0xfd48('0x33')]=_[_0xfd48('0x31')](_0x329a65[_0xfd48('0x2d')],qs[_0xfd48('0x32')](_0x1352b7[_0xfd48('0x2f')]['fields']));_0x360c0f[_0xfd48('0x33')]=_0x360c0f[_0xfd48('0x33')][_0xfd48('0x34')]?_0x360c0f[_0xfd48('0x33')]:_0x329a65[_0xfd48('0x2d')];_0x360c0f[_0xfd48('0x4c')]=qs['sort'](_0x1352b7[_0xfd48('0x2f')][_0xfd48('0x37')]);_0x360c0f['where']=qs[_0xfd48('0x30')](_[_0xfd48('0x39')](_0x1352b7[_0xfd48('0x2f')],_0x329a65['filters']));if(_0x1352b7[_0xfd48('0x2f')][_0xfd48('0x3a')]){_0x360c0f['where']=_[_0xfd48('0x3b')](_0x360c0f[_0xfd48('0x38')],{'$or':_[_0xfd48('0x2a')](_0x360c0f[_0xfd48('0x33')],function(_0x2eccc7){var _0x36eab5={};_0x36eab5[_0x2eccc7]={'$like':'%'+_0x1352b7[_0xfd48('0x2f')][_0xfd48('0x3a')]+'%'};return _0x36eab5;})});}_0x360c0f=_[_0xfd48('0x3b')]({},_0x360c0f,_0x1352b7[_0xfd48('0x3e')]);return _0x5e8db6[_0xfd48('0x4a')](_0x360c0f);}})[_0xfd48('0x3f')](function(_0x4f7c8c){if(_0x4f7c8c){_0x15de81=_0x4f7c8c[_0xfd48('0x34')];if(!_0x1352b7['query'][_0xfd48('0x35')]('nolimit')){_0x360c0f[_0xfd48('0x1f')]=qs['limit'](_0x1352b7[_0xfd48('0x2f')][_0xfd48('0x1f')]);_0x360c0f['offset']=qs[_0xfd48('0x1c')](_0x1352b7[_0xfd48('0x2f')]['offset']);}return _0x5e8db6[_0xfd48('0x4a')](_0x360c0f);}})['then'](function(_0x404309){if(_0x404309){return _0x404309?{'count':_0x15de81,'rows':_0x404309}:null;}})[_0xfd48('0x3f')](respondWithResult(_0x2490e7,null))['catch'](handleError(_0x2490e7,null));};exports[_0xfd48('0x4d')]=function(_0x573c8d,_0x42ceab,_0x15e775){if(_0x573c8d['body']['id']){delete _0x573c8d[_0xfd48('0x49')]['id'];}return db[_0xfd48('0x2b')]['findOne']({'where':{'id':_0x573c8d[_0xfd48('0x46')]['id']}})[_0xfd48('0x3f')](handleEntityNotFound(_0x42ceab,null))[_0xfd48('0x3f')](function(_0x837290){if(_0x837290){_0x573c8d[_0xfd48('0x49')][_0xfd48('0x4e')]=_0x837290['id'];_0x573c8d[_0xfd48('0x49')][_0xfd48('0x4f')]=integrations['getSubjects'](_0x573c8d[_0xfd48('0x49')]['channel'],_0x573c8d[_0xfd48('0x49')][_0xfd48('0x3c')]);_0x573c8d['body'][_0xfd48('0x50')]=integrations[_0xfd48('0x51')](_0x573c8d[_0xfd48('0x49')][_0xfd48('0x52')],_0x573c8d[_0xfd48('0x49')][_0xfd48('0x3c')]);return db[_0xfd48('0x53')]['create'](_0x573c8d[_0xfd48('0x49')],{'include':[{'model':db['VtigerField'],'as':_0xfd48('0x4f')},{'model':db[_0xfd48('0x54')],'as':_0xfd48('0x50')}]});}return null;})[_0xfd48('0x3f')](respondWithResult(_0x42ceab,null))[_0xfd48('0x44')](handleError(_0x42ceab,null));};var md5=require(_0xfd48('0x55'));exports[_0xfd48('0x56')]=function(_0xf8423,_0x4612a8,_0x41077d){var _0x26a495=null;var _0x2c3f18=null;var _0x58438f=null;var _0x279678=null;var _0x42e09b='';return db[_0xfd48('0x2b')]['findOne']({'where':{'id':_0xf8423['params']['id']},'attributes':['id','name','username',_0xfd48('0x57'),_0xfd48('0x58'),_0xfd48('0x59'),_0xfd48('0x5a'),_0xfd48('0x5b')]})[_0xfd48('0x3f')](handleEntityNotFound(_0x4612a8,null))[_0xfd48('0x3f')](function(_0x102043){if(_0x102043){_0x26a495=_0x102043[_0xfd48('0x5c')];_0x2c3f18=_0x102043[_0xfd48('0x5b')];_0x58438f=_0x102043[_0xfd48('0x58')];_0x42e09b=_0x102043['remoteUri'];var _0x3516b4=_0x42e09b[_0xfd48('0x5d')](-0x1);if(_0x3516b4==='/'){_0x42e09b=_0x42e09b[_0xfd48('0x5e')](0x0,_0x42e09b[_0xfd48('0x5f')](_0x3516b4));}_0x279678=util[_0xfd48('0x60')]('%s/webservice.php',_0x42e09b);var _0x292fc0={'method':_0xfd48('0x61'),'uri':_0x279678,'qs':{'operation':_0xfd48('0x62'),'username':_0x102043[_0xfd48('0x5c')]},'json':!![]};return rp(_0x292fc0);}})['then'](function(_0x21fe5e){if(_0x21fe5e[_0xfd48('0x63')]){var _0x5d628d={'method':_0xfd48('0x64'),'uri':_0x279678,'form':{'operation':_0xfd48('0x65'),'username':_0x26a495,'accessKey':md5(_0x21fe5e[_0xfd48('0x66')]['token']+_0x2c3f18)},'json':!![]};return rp(_0x5d628d);}})['then'](function(_0x40581a){if(_0x40581a[_0xfd48('0x63')]){var _0x1f7480={'method':_0xfd48('0x61'),'uri':_0x279678,'qs':{'operation':_0xfd48('0x67'),'username':_0x26a495,'sessionName':_0x40581a['result'][_0xfd48('0x68')],'elementType':_0x58438f},'json':!![]};return rp(_0x1f7480);}})[_0xfd48('0x3f')](function(_0xa277b2){if(_0xa277b2[_0xfd48('0x63')]){var _0x1561f9=['autogenerated',_0xfd48('0x69'),_0xfd48('0x6a')];_[_0xfd48('0x6b')](_0xa277b2[_0xfd48('0x66')][_0xfd48('0x32')],function(_0xcb5886){return _0x1561f9[_0xfd48('0x6c')](_0xcb5886[_0xfd48('0x3c')]['name']);});_['remove'](_0xa277b2['result'][_0xfd48('0x32')],function(_0x4c95ec){return _0x4c95ec[_0xfd48('0x6d')]===_0xfd48('0x6e');});return{'count':_0xa277b2[_0xfd48('0x66')][_0xfd48('0x32')][_0xfd48('0x34')],'rows':_[_0xfd48('0x2a')](_0xa277b2[_0xfd48('0x66')]['fields'],function(_0x3a9334){return{'id':_0x3a9334['name'],'name':_0x3a9334[_0xfd48('0x6f')],'custom':_[_0xfd48('0x70')](_0x3a9334[_0xfd48('0x27')],_0xfd48('0x71'))?!![]:![],'options':_0x3a9334['type']['name']==='picklist'&&_0x3a9334['type'][_0xfd48('0x72')][_0xfd48('0x34')]>0x0?_[_0xfd48('0x2a')](_0x3a9334['type'][_0xfd48('0x72')],function(_0x3cf86d){return{'name':_0x3cf86d[_0xfd48('0x6f')],'value':_0x3cf86d[_0xfd48('0x73')]};}):[]};})};}})['then'](respondWithResult(_0x4612a8,null))[_0xfd48('0x44')](function(_0x500675){console[_0xfd48('0x74')]('vTiger\x20error:\x20'+_0x500675);var _0x45f135=_0xf8423['query'][_0xfd48('0x75')]?0x1f4:_0x500675['statusCode']||0x1f4;logger[_0xfd48('0x76')](_0xfd48('0x77'),_0xfd48('0x56'),_0x45f135,JSON[_0xfd48('0x78')](_0x500675));delete _0x500675['name'];if(_0x45f135===0x191){_0x45f135=0x190;}_0x4612a8['status'](_0x45f135)['send'](_0xf8423[_0xfd48('0x2f')][_0xfd48('0x75')]?{'message':'Wrong\x20credentials','statusCode':_0x500675['statusCode']}:_0x500675);});};