75696c20aeb3c6002d269c19bfe04e04017001fa
[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 _0xcc7c=['undefined','count','set','apply','reject','save','update','then','error','stack','name','send','index','map','VtigerAccount','rawAttributes','type','key','model','keys','query','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','filters','where','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','length','find','body','params','destroy','getConfigurations','findOne','VtigerConfiguration','pick','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','create','VtigerField','getFields','username','description','moduleName','remoteUri','serverUrl','accessKey','slice','substring','lastIndexOf','GET','getchallenge','POST','login','result','success','describe','autogenerated','reference','owner','includes','editable','label','cf_','picklist','picklistValues','value','log','vTiger\x20error:\x20','test','statusCode','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','limit'];(function(_0x433860,_0x1d2576){var _0x53b6b7=function(_0x4c464f){while(--_0x4c464f){_0x433860['push'](_0x433860['shift']());}};_0x53b6b7(++_0x1d2576);}(_0xcc7c,0xd0));var _0xccc7=function(_0x5f03f2,_0x2e241d){_0x5f03f2=_0x5f03f2-0x0;var _0x6dc486=_0xcc7c[_0x5f03f2];return _0x6dc486;};'use strict';var emlformat=require(_0xccc7('0x0'));var rimraf=require(_0xccc7('0x1'));var zipdir=require(_0xccc7('0x2'));var jsonpatch=require(_0xccc7('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xccc7('0x4'));var Mustache=require(_0xccc7('0x5'));var util=require(_0xccc7('0x6'));var path=require('path');var sox=require(_0xccc7('0x7'));var csv=require(_0xccc7('0x8'));var ejs=require(_0xccc7('0x9'));var fs=require('fs');var fs_extra=require(_0xccc7('0xa'));var _=require(_0xccc7('0xb'));var squel=require(_0xccc7('0xc'));var crypto=require(_0xccc7('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xccc7('0x8'));var querystring=require('querystring');var Papa=require(_0xccc7('0xe'));var Redis=require(_0xccc7('0xf'));var authService=require(_0xccc7('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xccc7('0x11'));var hardwareService=require(_0xccc7('0x12'));var logger=require(_0xccc7('0x13'))(_0xccc7('0x14'));var utils=require(_0xccc7('0x15'));var config=require(_0xccc7('0x16'));var licenseUtil=require(_0xccc7('0x17'));var db=require(_0xccc7('0x18'))['db'];var integrations=require(_0xccc7('0x19'));function respondWithStatusCode(_0x13e0f6,_0x28036f){_0x28036f=_0x28036f||0xcc;return function(_0x53624e){if(_0x53624e){return _0x13e0f6[_0xccc7('0x1a')](_0x28036f);}return _0x13e0f6[_0xccc7('0x1b')](_0x28036f)[_0xccc7('0x1c')]();};}function respondWithResult(_0xf30f3e,_0x32c1e2){_0x32c1e2=_0x32c1e2||0xc8;return function(_0x158f0c){if(_0x158f0c){return _0xf30f3e[_0xccc7('0x1b')](_0x32c1e2)[_0xccc7('0x1d')](_0x158f0c);}};}function respondWithFilteredResult(_0x47df01,_0x284ac1){return function(_0x47fdf6){if(_0x47fdf6){var _0x47b97c=typeof _0x284ac1[_0xccc7('0x1e')]==='undefined'&&typeof _0x284ac1[_0xccc7('0x1f')]===_0xccc7('0x20');var _0x20cf87=_0x47fdf6['count'];var _0x43aee5=_0x47b97c?0x0:_0x284ac1['offset'];var _0x302d1a=_0x47b97c?_0x47fdf6[_0xccc7('0x21')]:_0x284ac1[_0xccc7('0x1e')]+_0x284ac1[_0xccc7('0x1f')];var _0x22b7ee;if(_0x302d1a>=_0x20cf87){_0x302d1a=_0x20cf87;_0x22b7ee=0xc8;}else{_0x22b7ee=0xce;}_0x47df01[_0xccc7('0x1b')](_0x22b7ee);return _0x47df01[_0xccc7('0x22')]('Content-Range',_0x43aee5+'-'+_0x302d1a+'/'+_0x20cf87)[_0xccc7('0x1d')](_0x47fdf6);}return null;};}function patchUpdates(_0x5f4ac2){return function(_0x3d0ca7){try{jsonpatch[_0xccc7('0x23')](_0x3d0ca7,_0x5f4ac2,!![]);}catch(_0x58e10a){return BPromise[_0xccc7('0x24')](_0x58e10a);}return _0x3d0ca7[_0xccc7('0x25')]();};}function saveUpdates(_0x4669b0,_0x192fcd){return function(_0x4a31ac){if(_0x4a31ac){return _0x4a31ac[_0xccc7('0x26')](_0x4669b0)[_0xccc7('0x27')](function(_0x174f2b){return _0x174f2b;});}return null;};}function removeEntity(_0x5f050a,_0xc5ecfb){return function(_0x563854){if(_0x563854){return _0x563854['destroy']()[_0xccc7('0x27')](function(){_0x5f050a[_0xccc7('0x1b')](0xcc)[_0xccc7('0x1c')]();});}};}function handleEntityNotFound(_0x8fd57c,_0x2d756d){return function(_0x191497){if(!_0x191497){_0x8fd57c['sendStatus'](0x194);}return _0x191497;};}function handleError(_0x362fed,_0x1404a9){_0x1404a9=_0x1404a9||0x1f4;return function(_0x2d7eb6){logger[_0xccc7('0x28')](_0x2d7eb6[_0xccc7('0x29')]);if(_0x2d7eb6[_0xccc7('0x2a')]){delete _0x2d7eb6[_0xccc7('0x2a')];}_0x362fed[_0xccc7('0x1b')](_0x1404a9)[_0xccc7('0x2b')](_0x2d7eb6);};}exports[_0xccc7('0x2c')]=function(_0x37d3f6,_0x5a9041){var _0x59bac9={},_0x3a06bb={},_0x179a36={'count':0x0,'rows':[]};var _0x89b063=_[_0xccc7('0x2d')](db[_0xccc7('0x2e')][_0xccc7('0x2f')],function(_0x57842b){return{'name':_0x57842b['fieldName'],'type':_0x57842b[_0xccc7('0x30')][_0xccc7('0x31')]};});_0x3a06bb[_0xccc7('0x32')]=_[_0xccc7('0x2d')](_0x89b063,'name');_0x3a06bb['query']=_[_0xccc7('0x33')](_0x37d3f6[_0xccc7('0x34')]);_0x3a06bb['filters']=_['intersection'](_0x3a06bb[_0xccc7('0x32')],_0x3a06bb[_0xccc7('0x34')]);_0x59bac9[_0xccc7('0x35')]=_[_0xccc7('0x36')](_0x3a06bb[_0xccc7('0x32')],qs[_0xccc7('0x37')](_0x37d3f6[_0xccc7('0x34')][_0xccc7('0x37')]));_0x59bac9[_0xccc7('0x35')]=_0x59bac9[_0xccc7('0x35')]['length']?_0x59bac9[_0xccc7('0x35')]:_0x3a06bb[_0xccc7('0x32')];if(!_0x37d3f6[_0xccc7('0x34')][_0xccc7('0x38')](_0xccc7('0x39'))){_0x59bac9[_0xccc7('0x1f')]=qs['limit'](_0x37d3f6[_0xccc7('0x34')][_0xccc7('0x1f')]);_0x59bac9[_0xccc7('0x1e')]=qs[_0xccc7('0x1e')](_0x37d3f6[_0xccc7('0x34')][_0xccc7('0x1e')]);}_0x59bac9[_0xccc7('0x3a')]=qs['sort'](_0x37d3f6[_0xccc7('0x34')][_0xccc7('0x3b')]);_0x59bac9['where']=qs[_0xccc7('0x3c')](_['pick'](_0x37d3f6[_0xccc7('0x34')],_0x3a06bb[_0xccc7('0x3c')]),_0x89b063);if(_0x37d3f6[_0xccc7('0x34')]['filter']){_0x59bac9[_0xccc7('0x3d')]=_[_0xccc7('0x3e')](_0x59bac9[_0xccc7('0x3d')],{'$or':_[_0xccc7('0x2d')](_0x89b063,function(_0x6117f5){if(_0x6117f5[_0xccc7('0x30')]!==_0xccc7('0x3f')){var _0x4f9db7={};_0x4f9db7[_0x6117f5[_0xccc7('0x2a')]]={'$like':'%'+_0x37d3f6['query']['filter']+'%'};return _0x4f9db7;}})});}_0x59bac9=_[_0xccc7('0x3e')]({},_0x59bac9,_0x37d3f6[_0xccc7('0x40')]);var _0x402e33={'where':_0x59bac9[_0xccc7('0x3d')]};return db[_0xccc7('0x2e')][_0xccc7('0x21')](_0x402e33)[_0xccc7('0x27')](function(_0x2d3846){_0x179a36[_0xccc7('0x21')]=_0x2d3846;if(_0x37d3f6[_0xccc7('0x34')][_0xccc7('0x41')]){_0x59bac9['include']=[{'all':!![]}];}return db[_0xccc7('0x2e')][_0xccc7('0x42')](_0x59bac9);})[_0xccc7('0x27')](function(_0x69fd15){_0x179a36[_0xccc7('0x43')]=_0x69fd15;return _0x179a36;})['then'](respondWithFilteredResult(_0x5a9041,_0x59bac9))[_0xccc7('0x44')](handleError(_0x5a9041,null));};exports[_0xccc7('0x45')]=function(_0x328201,_0x2ba359){var _0x5ebdb3={'raw':![],'where':{'id':_0x328201['params']['id']}},_0x48c3c4={};_0x48c3c4[_0xccc7('0x32')]=_['keys'](db['VtigerAccount'][_0xccc7('0x2f')]);_0x48c3c4[_0xccc7('0x34')]=_['keys'](_0x328201[_0xccc7('0x34')]);_0x48c3c4['filters']=_[_0xccc7('0x36')](_0x48c3c4[_0xccc7('0x32')],_0x48c3c4[_0xccc7('0x34')]);_0x5ebdb3[_0xccc7('0x35')]=_[_0xccc7('0x36')](_0x48c3c4[_0xccc7('0x32')],qs[_0xccc7('0x37')](_0x328201[_0xccc7('0x34')][_0xccc7('0x37')]));_0x5ebdb3[_0xccc7('0x35')]=_0x5ebdb3[_0xccc7('0x35')][_0xccc7('0x46')]?_0x5ebdb3[_0xccc7('0x35')]:_0x48c3c4['model'];if(_0x328201[_0xccc7('0x34')][_0xccc7('0x41')]){_0x5ebdb3['include']=[{'all':!![]}];}_0x5ebdb3=_[_0xccc7('0x3e')]({},_0x5ebdb3,_0x328201[_0xccc7('0x40')]);return db['VtigerAccount'][_0xccc7('0x47')](_0x5ebdb3)[_0xccc7('0x27')](handleEntityNotFound(_0x2ba359,null))['then'](respondWithResult(_0x2ba359,null))[_0xccc7('0x44')](handleError(_0x2ba359,null));};exports['create']=function(_0x50e150,_0x2dd77b){return db['VtigerAccount']['create'](_0x50e150[_0xccc7('0x48')],{})['then'](respondWithResult(_0x2dd77b,0xc9))[_0xccc7('0x44')](handleError(_0x2dd77b,null));};exports[_0xccc7('0x26')]=function(_0x58aee5,_0x40aabe){if(_0x58aee5[_0xccc7('0x48')]['id']){delete _0x58aee5[_0xccc7('0x48')]['id'];}return db['VtigerAccount'][_0xccc7('0x47')]({'where':{'id':_0x58aee5[_0xccc7('0x49')]['id']}})[_0xccc7('0x27')](handleEntityNotFound(_0x40aabe,null))[_0xccc7('0x27')](saveUpdates(_0x58aee5[_0xccc7('0x48')],null))[_0xccc7('0x27')](respondWithResult(_0x40aabe,null))[_0xccc7('0x44')](handleError(_0x40aabe,null));};exports[_0xccc7('0x4a')]=function(_0x26a6c5,_0x147329){return db[_0xccc7('0x2e')][_0xccc7('0x47')]({'where':{'id':_0x26a6c5[_0xccc7('0x49')]['id']}})[_0xccc7('0x27')](handleEntityNotFound(_0x147329,null))[_0xccc7('0x27')](removeEntity(_0x147329,null))['catch'](handleError(_0x147329,null));};exports[_0xccc7('0x4b')]=function(_0x256dac,_0x5880d7,_0x509cf8){var _0x2776b6={};var _0x2d6213={};var _0x432901;var _0x4f7f05;return db['VtigerAccount'][_0xccc7('0x4c')]({'where':{'id':_0x256dac[_0xccc7('0x49')]['id']}})[_0xccc7('0x27')](handleEntityNotFound(_0x5880d7,null))['then'](function(_0xdeca07){if(_0xdeca07){_0x432901=_0xdeca07;_0x2d6213[_0xccc7('0x32')]=_[_0xccc7('0x33')](db[_0xccc7('0x4d')][_0xccc7('0x2f')]);_0x2d6213['query']=_[_0xccc7('0x33')](_0x256dac['query']);_0x2d6213[_0xccc7('0x3c')]=_[_0xccc7('0x36')](_0x2d6213[_0xccc7('0x32')],_0x2d6213[_0xccc7('0x34')]);_0x2776b6['attributes']=_[_0xccc7('0x36')](_0x2d6213[_0xccc7('0x32')],qs[_0xccc7('0x37')](_0x256dac['query'][_0xccc7('0x37')]));_0x2776b6['attributes']=_0x2776b6[_0xccc7('0x35')][_0xccc7('0x46')]?_0x2776b6[_0xccc7('0x35')]:_0x2d6213[_0xccc7('0x32')];_0x2776b6[_0xccc7('0x3a')]=qs[_0xccc7('0x3b')](_0x256dac['query'][_0xccc7('0x3b')]);_0x2776b6[_0xccc7('0x3d')]=qs[_0xccc7('0x3c')](_[_0xccc7('0x4e')](_0x256dac['query'],_0x2d6213[_0xccc7('0x3c')]));if(_0x256dac[_0xccc7('0x34')]['filter']){_0x2776b6[_0xccc7('0x3d')]=_[_0xccc7('0x3e')](_0x2776b6[_0xccc7('0x3d')],{'$or':_[_0xccc7('0x2d')](_0x2776b6[_0xccc7('0x35')],function(_0x2445cd){var _0x5425e1={};_0x5425e1[_0x2445cd]={'$like':'%'+_0x256dac[_0xccc7('0x34')]['filter']+'%'};return _0x5425e1;})});}_0x2776b6=_['merge']({},_0x2776b6,_0x256dac['options']);return _0x432901[_0xccc7('0x4b')](_0x2776b6);}})[_0xccc7('0x27')](function(_0x49bb6e){if(_0x49bb6e){_0x4f7f05=_0x49bb6e[_0xccc7('0x46')];if(!_0x256dac[_0xccc7('0x34')]['hasOwnProperty']('nolimit')){_0x2776b6[_0xccc7('0x1f')]=qs[_0xccc7('0x1f')](_0x256dac[_0xccc7('0x34')][_0xccc7('0x1f')]);_0x2776b6[_0xccc7('0x1e')]=qs[_0xccc7('0x1e')](_0x256dac[_0xccc7('0x34')][_0xccc7('0x1e')]);}return _0x432901[_0xccc7('0x4b')](_0x2776b6);}})[_0xccc7('0x27')](function(_0x35955e){if(_0x35955e){return _0x35955e?{'count':_0x4f7f05,'rows':_0x35955e}:null;}})[_0xccc7('0x27')](respondWithResult(_0x5880d7,null))[_0xccc7('0x44')](handleError(_0x5880d7,null));};exports[_0xccc7('0x4f')]=function(_0x3ed986,_0x1f2f27,_0x5bd13f){if(_0x3ed986[_0xccc7('0x48')]['id']){delete _0x3ed986[_0xccc7('0x48')]['id'];}return db[_0xccc7('0x2e')]['findOne']({'where':{'id':_0x3ed986['params']['id']}})['then'](handleEntityNotFound(_0x1f2f27,null))[_0xccc7('0x27')](function(_0x2ffa81){if(_0x2ffa81){_0x3ed986[_0xccc7('0x48')][_0xccc7('0x50')]=_0x2ffa81['id'];_0x3ed986['body'][_0xccc7('0x51')]=integrations[_0xccc7('0x52')](_0x3ed986[_0xccc7('0x48')]['channel'],_0x3ed986[_0xccc7('0x48')][_0xccc7('0x30')]);_0x3ed986['body'][_0xccc7('0x53')]=integrations[_0xccc7('0x54')](_0x3ed986[_0xccc7('0x48')]['channel'],_0x3ed986['body'][_0xccc7('0x30')]);return db['VtigerConfiguration'][_0xccc7('0x55')](_0x3ed986[_0xccc7('0x48')],{'include':[{'model':db[_0xccc7('0x56')],'as':_0xccc7('0x51')},{'model':db[_0xccc7('0x56')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x1f2f27,null))['catch'](handleError(_0x1f2f27,null));};var md5=require('md5');exports[_0xccc7('0x57')]=function(_0xc162c1,_0x4290b5,_0x560340){var _0x228251=null;var _0x17f538=null;var _0x55d671=null;var _0x19f2ff=null;var _0x2ad37b='';return db[_0xccc7('0x2e')][_0xccc7('0x4c')]({'where':{'id':_0xc162c1[_0xccc7('0x49')]['id']},'attributes':['id','name',_0xccc7('0x58'),_0xccc7('0x59'),_0xccc7('0x5a'),_0xccc7('0x5b'),_0xccc7('0x5c'),_0xccc7('0x5d')]})[_0xccc7('0x27')](handleEntityNotFound(_0x4290b5,null))[_0xccc7('0x27')](function(_0x3f62de){if(_0x3f62de){_0x228251=_0x3f62de[_0xccc7('0x58')];_0x17f538=_0x3f62de[_0xccc7('0x5d')];_0x55d671=_0x3f62de[_0xccc7('0x5a')];_0x2ad37b=_0x3f62de[_0xccc7('0x5b')];var _0xa6047=_0x2ad37b[_0xccc7('0x5e')](-0x1);if(_0xa6047==='/'){_0x2ad37b=_0x2ad37b[_0xccc7('0x5f')](0x0,_0x2ad37b[_0xccc7('0x60')](_0xa6047));}_0x19f2ff=util['format']('%s/webservice.php',_0x2ad37b);var _0x885b0={'method':_0xccc7('0x61'),'uri':_0x19f2ff,'qs':{'operation':_0xccc7('0x62'),'username':_0x3f62de[_0xccc7('0x58')]},'json':!![]};return rp(_0x885b0);}})['then'](function(_0x150c30){if(_0x150c30['success']){var _0x201dc2={'method':_0xccc7('0x63'),'uri':_0x19f2ff,'form':{'operation':_0xccc7('0x64'),'username':_0x228251,'accessKey':md5(_0x150c30[_0xccc7('0x65')]['token']+_0x17f538)},'json':!![]};return rp(_0x201dc2);}})['then'](function(_0x5a277b){if(_0x5a277b[_0xccc7('0x66')]){var _0x3502e0={'method':_0xccc7('0x61'),'uri':_0x19f2ff,'qs':{'operation':_0xccc7('0x67'),'username':_0x228251,'sessionName':_0x5a277b[_0xccc7('0x65')]['sessionName'],'elementType':_0x55d671},'json':!![]};return rp(_0x3502e0);}})[_0xccc7('0x27')](function(_0x5ef318){if(_0x5ef318[_0xccc7('0x66')]){var _0x34321f=[_0xccc7('0x68'),_0xccc7('0x69'),_0xccc7('0x6a')];_['remove'](_0x5ef318[_0xccc7('0x65')][_0xccc7('0x37')],function(_0x2a8623){return _0x34321f[_0xccc7('0x6b')](_0x2a8623[_0xccc7('0x30')]['name']);});_['remove'](_0x5ef318['result'][_0xccc7('0x37')],function(_0x15ba75){return _0x15ba75[_0xccc7('0x6c')]==='false';});return{'count':_0x5ef318[_0xccc7('0x65')][_0xccc7('0x37')]['length'],'rows':_[_0xccc7('0x2d')](_0x5ef318[_0xccc7('0x65')][_0xccc7('0x37')],function(_0x47da7a){return{'id':_0x47da7a[_0xccc7('0x2a')],'name':_0x47da7a[_0xccc7('0x6d')],'custom':_['startsWith'](_0x47da7a[_0xccc7('0x2a')],_0xccc7('0x6e'))?!![]:![],'options':_0x47da7a[_0xccc7('0x30')]['name']===_0xccc7('0x6f')&&_0x47da7a[_0xccc7('0x30')][_0xccc7('0x70')][_0xccc7('0x46')]>0x0?_[_0xccc7('0x2d')](_0x47da7a['type'][_0xccc7('0x70')],function(_0x5a7041){return{'name':_0x5a7041[_0xccc7('0x6d')],'value':_0x5a7041[_0xccc7('0x71')]};}):[]};})};}})[_0xccc7('0x27')](respondWithResult(_0x4290b5,null))['catch'](function(_0x569a4a){console[_0xccc7('0x72')](_0xccc7('0x73')+_0x569a4a);var _0x2660f5=_0xc162c1[_0xccc7('0x34')][_0xccc7('0x74')]?0x1f4:_0x569a4a[_0xccc7('0x75')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x2660f5,JSON[_0xccc7('0x76')](_0x569a4a));delete _0x569a4a[_0xccc7('0x2a')];if(_0x2660f5===0x191){_0x2660f5=0x190;}_0x4290b5[_0xccc7('0x1b')](_0x2660f5)[_0xccc7('0x2b')](_0xc162c1[_0xccc7('0x34')][_0xccc7('0x74')]?{'message':_0xccc7('0x77'),'statusCode':_0x569a4a[_0xccc7('0x75')]}:_0x569a4a);});};