Built motion from commit 7ab0e143.|2.5.49
[motion2.git] / server / api / intSugarcrmAccount / intSugarcrmAccount.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 _0x2045=['SugarcrmConfiguration','getConfigurations','addConfiguration','AccountId','getSubjects','channel','Descriptions','SugarcrmField','getFields','assigned_user_id','created_by','date_start','duration_minutes','username','remoteUri','slice','substring','lastIndexOf','POST','%s%s','/service/v4_1/rest.php','JSON','password','xCALLY\x20Motion\x20Integration','get_module_fields','stringify','values','module_fields','includes','label','endsWith','test','statusCode','Wrong\x20credentials','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../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','json','offset','undefined','limit','count','set','Content-Range','reject','update','destroy','then','error','stack','name','send','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','SugarcrmAccount','includeAll','show','params','include','find','catch','create','body','findOne'];(function(_0x5987ac,_0x213dac){var _0xb3d18=function(_0x5e435e){while(--_0x5e435e){_0x5987ac['push'](_0x5987ac['shift']());}};_0xb3d18(++_0x213dac);}(_0x2045,0x175));var _0x5204=function(_0x478c8a,_0x9afc92){_0x478c8a=_0x478c8a-0x0;var _0x3b6b3e=_0x2045[_0x478c8a];return _0x3b6b3e;};'use strict';var emlformat=require(_0x5204('0x0'));var rimraf=require(_0x5204('0x1'));var zipdir=require(_0x5204('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x5204('0x3'));var BPromise=require(_0x5204('0x4'));var Mustache=require(_0x5204('0x5'));var util=require(_0x5204('0x6'));var path=require(_0x5204('0x7'));var sox=require(_0x5204('0x8'));var csv=require(_0x5204('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5204('0xa'));var _=require(_0x5204('0xb'));var squel=require(_0x5204('0xc'));var crypto=require(_0x5204('0xd'));var jsforce=require(_0x5204('0xe'));var deskjs=require(_0x5204('0xf'));var toCsv=require(_0x5204('0x9'));var querystring=require(_0x5204('0x10'));var Papa=require(_0x5204('0x11'));var Redis=require(_0x5204('0x12'));var authService=require(_0x5204('0x13'));var qs=require(_0x5204('0x14'));var as=require(_0x5204('0x15'));var hardwareService=require(_0x5204('0x16'));var logger=require(_0x5204('0x17'))('api');var utils=require(_0x5204('0x18'));var config=require(_0x5204('0x19'));var licenseUtil=require(_0x5204('0x1a'));var db=require(_0x5204('0x1b'))['db'];var integrations=require(_0x5204('0x1c'));function respondWithStatusCode(_0x365efd,_0x11b7f6){_0x11b7f6=_0x11b7f6||0xcc;return function(_0x1167ba){if(_0x1167ba){return _0x365efd[_0x5204('0x1d')](_0x11b7f6);}return _0x365efd[_0x5204('0x1e')](_0x11b7f6)[_0x5204('0x1f')]();};}function respondWithResult(_0x5c4b49,_0x58b3fa){_0x58b3fa=_0x58b3fa||0xc8;return function(_0x484cf8){if(_0x484cf8){return _0x5c4b49[_0x5204('0x1e')](_0x58b3fa)[_0x5204('0x20')](_0x484cf8);}};}function respondWithFilteredResult(_0x3febc8,_0x115327){return function(_0x2012f4){if(_0x2012f4){var _0x49250e=typeof _0x115327[_0x5204('0x21')]===_0x5204('0x22')&&typeof _0x115327[_0x5204('0x23')]===_0x5204('0x22');var _0x2a447e=_0x2012f4['count'];var _0x2d57df=_0x49250e?0x0:_0x115327['offset'];var _0x40bb17=_0x49250e?_0x2012f4[_0x5204('0x24')]:_0x115327[_0x5204('0x21')]+_0x115327['limit'];var _0x364c39;if(_0x40bb17>=_0x2a447e){_0x40bb17=_0x2a447e;_0x364c39=0xc8;}else{_0x364c39=0xce;}_0x3febc8['status'](_0x364c39);return _0x3febc8[_0x5204('0x25')](_0x5204('0x26'),_0x2d57df+'-'+_0x40bb17+'/'+_0x2a447e)[_0x5204('0x20')](_0x2012f4);}return null;};}function patchUpdates(_0x1b1636){return function(_0x1272df){try{jsonpatch['apply'](_0x1272df,_0x1b1636,!![]);}catch(_0x21265b){return BPromise[_0x5204('0x27')](_0x21265b);}return _0x1272df['save']();};}function saveUpdates(_0x3e4249,_0x27443d){return function(_0x121948){if(_0x121948){return _0x121948[_0x5204('0x28')](_0x3e4249)['then'](function(_0xb9f466){return _0xb9f466;});}return null;};}function removeEntity(_0x4ee0a0,_0x387ed0){return function(_0xf25c16){if(_0xf25c16){return _0xf25c16[_0x5204('0x29')]()[_0x5204('0x2a')](function(){_0x4ee0a0['status'](0xcc)[_0x5204('0x1f')]();});}};}function handleEntityNotFound(_0x1a8980,_0x5dc223){return function(_0x585e9f){if(!_0x585e9f){_0x1a8980[_0x5204('0x1d')](0x194);}return _0x585e9f;};}function handleError(_0x1ed6af,_0x36397b){_0x36397b=_0x36397b||0x1f4;return function(_0xc67ae0){logger[_0x5204('0x2b')](_0xc67ae0[_0x5204('0x2c')]);if(_0xc67ae0['name']){delete _0xc67ae0[_0x5204('0x2d')];}_0x1ed6af[_0x5204('0x1e')](_0x36397b)[_0x5204('0x2e')](_0xc67ae0);};}exports['index']=function(_0x218782,_0x3d1a39){var _0x17c416={},_0x494623={},_0x43e1be={'count':0x0,'rows':[]};var _0x1784ba=_[_0x5204('0x2f')](db['SugarcrmAccount'][_0x5204('0x30')],function(_0x580db6){return{'name':_0x580db6[_0x5204('0x31')],'type':_0x580db6[_0x5204('0x32')][_0x5204('0x33')]};});_0x494623[_0x5204('0x34')]=_[_0x5204('0x2f')](_0x1784ba,'name');_0x494623[_0x5204('0x35')]=_[_0x5204('0x36')](_0x218782[_0x5204('0x35')]);_0x494623[_0x5204('0x37')]=_[_0x5204('0x38')](_0x494623[_0x5204('0x34')],_0x494623[_0x5204('0x35')]);_0x17c416[_0x5204('0x39')]=_[_0x5204('0x38')](_0x494623[_0x5204('0x34')],qs[_0x5204('0x3a')](_0x218782[_0x5204('0x35')][_0x5204('0x3a')]));_0x17c416[_0x5204('0x39')]=_0x17c416['attributes'][_0x5204('0x3b')]?_0x17c416[_0x5204('0x39')]:_0x494623['model'];if(!_0x218782[_0x5204('0x35')][_0x5204('0x3c')](_0x5204('0x3d'))){_0x17c416[_0x5204('0x23')]=qs[_0x5204('0x23')](_0x218782['query'][_0x5204('0x23')]);_0x17c416['offset']=qs[_0x5204('0x21')](_0x218782['query'][_0x5204('0x21')]);}_0x17c416[_0x5204('0x3e')]=qs[_0x5204('0x3f')](_0x218782['query']['sort']);_0x17c416[_0x5204('0x40')]=qs[_0x5204('0x37')](_['pick'](_0x218782[_0x5204('0x35')],_0x494623[_0x5204('0x37')]),_0x1784ba);if(_0x218782[_0x5204('0x35')][_0x5204('0x41')]){_0x17c416[_0x5204('0x40')]=_[_0x5204('0x42')](_0x17c416['where'],{'$or':_[_0x5204('0x2f')](_0x1784ba,function(_0x4560ef){if(_0x4560ef[_0x5204('0x32')]!==_0x5204('0x43')){var _0x277e3d={};_0x277e3d[_0x4560ef[_0x5204('0x2d')]]={'$like':'%'+_0x218782[_0x5204('0x35')]['filter']+'%'};return _0x277e3d;}})});}_0x17c416=_[_0x5204('0x42')]({},_0x17c416,_0x218782[_0x5204('0x44')]);var _0x54cff6={'where':_0x17c416[_0x5204('0x40')]};return db[_0x5204('0x45')][_0x5204('0x24')](_0x54cff6)[_0x5204('0x2a')](function(_0xb06695){_0x43e1be['count']=_0xb06695;if(_0x218782[_0x5204('0x35')][_0x5204('0x46')]){_0x17c416['include']=[{'all':!![]}];}return db[_0x5204('0x45')]['findAll'](_0x17c416);})[_0x5204('0x2a')](function(_0xa9b34b){_0x43e1be['rows']=_0xa9b34b;return _0x43e1be;})[_0x5204('0x2a')](respondWithFilteredResult(_0x3d1a39,_0x17c416))['catch'](handleError(_0x3d1a39,null));};exports[_0x5204('0x47')]=function(_0x3d40a9,_0x26d80a){var _0x2a88ff={'raw':![],'where':{'id':_0x3d40a9[_0x5204('0x48')]['id']}},_0x2b03f0={};_0x2b03f0[_0x5204('0x34')]=_[_0x5204('0x36')](db[_0x5204('0x45')]['rawAttributes']);_0x2b03f0[_0x5204('0x35')]=_[_0x5204('0x36')](_0x3d40a9[_0x5204('0x35')]);_0x2b03f0[_0x5204('0x37')]=_[_0x5204('0x38')](_0x2b03f0[_0x5204('0x34')],_0x2b03f0[_0x5204('0x35')]);_0x2a88ff[_0x5204('0x39')]=_[_0x5204('0x38')](_0x2b03f0[_0x5204('0x34')],qs[_0x5204('0x3a')](_0x3d40a9[_0x5204('0x35')][_0x5204('0x3a')]));_0x2a88ff[_0x5204('0x39')]=_0x2a88ff['attributes'][_0x5204('0x3b')]?_0x2a88ff[_0x5204('0x39')]:_0x2b03f0['model'];if(_0x3d40a9[_0x5204('0x35')][_0x5204('0x46')]){_0x2a88ff[_0x5204('0x49')]=[{'all':!![]}];}_0x2a88ff=_['merge']({},_0x2a88ff,_0x3d40a9[_0x5204('0x44')]);return db[_0x5204('0x45')][_0x5204('0x4a')](_0x2a88ff)[_0x5204('0x2a')](handleEntityNotFound(_0x26d80a,null))[_0x5204('0x2a')](respondWithResult(_0x26d80a,null))[_0x5204('0x4b')](handleError(_0x26d80a,null));};exports[_0x5204('0x4c')]=function(_0x582d0d,_0x1c5822){return db[_0x5204('0x45')]['create'](_0x582d0d[_0x5204('0x4d')],{})[_0x5204('0x2a')](respondWithResult(_0x1c5822,0xc9))['catch'](handleError(_0x1c5822,null));};exports[_0x5204('0x28')]=function(_0x5d4b8d,_0x3db0be){if(_0x5d4b8d[_0x5204('0x4d')]['id']){delete _0x5d4b8d[_0x5204('0x4d')]['id'];}return db[_0x5204('0x45')][_0x5204('0x4a')]({'where':{'id':_0x5d4b8d[_0x5204('0x48')]['id']}})[_0x5204('0x2a')](handleEntityNotFound(_0x3db0be,null))[_0x5204('0x2a')](saveUpdates(_0x5d4b8d[_0x5204('0x4d')],null))[_0x5204('0x2a')](respondWithResult(_0x3db0be,null))[_0x5204('0x4b')](handleError(_0x3db0be,null));};exports[_0x5204('0x29')]=function(_0x28f613,_0x3a0148){return db[_0x5204('0x45')][_0x5204('0x4a')]({'where':{'id':_0x28f613[_0x5204('0x48')]['id']}})['then'](handleEntityNotFound(_0x3a0148,null))[_0x5204('0x2a')](removeEntity(_0x3a0148,null))[_0x5204('0x4b')](handleError(_0x3a0148,null));};exports['getConfigurations']=function(_0x472714,_0x2ee12a,_0x123e2c){var _0x2dd008={};var _0x4091be={};var _0x4d457d;var _0x36c274;return db['SugarcrmAccount'][_0x5204('0x4e')]({'where':{'id':_0x472714[_0x5204('0x48')]['id']}})[_0x5204('0x2a')](handleEntityNotFound(_0x2ee12a,null))[_0x5204('0x2a')](function(_0x21badf){if(_0x21badf){_0x4d457d=_0x21badf;_0x4091be[_0x5204('0x34')]=_[_0x5204('0x36')](db[_0x5204('0x4f')][_0x5204('0x30')]);_0x4091be[_0x5204('0x35')]=_[_0x5204('0x36')](_0x472714[_0x5204('0x35')]);_0x4091be[_0x5204('0x37')]=_[_0x5204('0x38')](_0x4091be['model'],_0x4091be[_0x5204('0x35')]);_0x2dd008[_0x5204('0x39')]=_[_0x5204('0x38')](_0x4091be[_0x5204('0x34')],qs[_0x5204('0x3a')](_0x472714[_0x5204('0x35')][_0x5204('0x3a')]));_0x2dd008[_0x5204('0x39')]=_0x2dd008[_0x5204('0x39')][_0x5204('0x3b')]?_0x2dd008[_0x5204('0x39')]:_0x4091be[_0x5204('0x34')];_0x2dd008[_0x5204('0x3e')]=qs[_0x5204('0x3f')](_0x472714['query'][_0x5204('0x3f')]);_0x2dd008[_0x5204('0x40')]=qs[_0x5204('0x37')](_['pick'](_0x472714[_0x5204('0x35')],_0x4091be[_0x5204('0x37')]));if(_0x472714[_0x5204('0x35')][_0x5204('0x41')]){_0x2dd008[_0x5204('0x40')]=_[_0x5204('0x42')](_0x2dd008[_0x5204('0x40')],{'$or':_[_0x5204('0x2f')](_0x2dd008[_0x5204('0x39')],function(_0xd7f456){var _0x4a9d5a={};_0x4a9d5a[_0xd7f456]={'$like':'%'+_0x472714[_0x5204('0x35')][_0x5204('0x41')]+'%'};return _0x4a9d5a;})});}_0x2dd008=_['merge']({},_0x2dd008,_0x472714[_0x5204('0x44')]);return _0x4d457d[_0x5204('0x50')](_0x2dd008);}})[_0x5204('0x2a')](function(_0x32b233){if(_0x32b233){_0x36c274=_0x32b233[_0x5204('0x3b')];if(!_0x472714[_0x5204('0x35')]['hasOwnProperty'](_0x5204('0x3d'))){_0x2dd008[_0x5204('0x23')]=qs['limit'](_0x472714[_0x5204('0x35')][_0x5204('0x23')]);_0x2dd008[_0x5204('0x21')]=qs[_0x5204('0x21')](_0x472714[_0x5204('0x35')][_0x5204('0x21')]);}return _0x4d457d[_0x5204('0x50')](_0x2dd008);}})['then'](function(_0x106420){if(_0x106420){return _0x106420?{'count':_0x36c274,'rows':_0x106420}:null;}})[_0x5204('0x2a')](respondWithResult(_0x2ee12a,null))[_0x5204('0x4b')](handleError(_0x2ee12a,null));};exports[_0x5204('0x51')]=function(_0x2d10d2,_0x597107,_0x497a71){if(_0x2d10d2['body']['id']){delete _0x2d10d2[_0x5204('0x4d')]['id'];}return db['SugarcrmAccount']['findOne']({'where':{'id':_0x2d10d2[_0x5204('0x48')]['id']}})['then'](handleEntityNotFound(_0x597107,null))['then'](function(_0x21b77d){if(_0x21b77d){_0x2d10d2[_0x5204('0x4d')][_0x5204('0x52')]=_0x21b77d['id'];_0x2d10d2[_0x5204('0x4d')]['Subjects']=integrations[_0x5204('0x53')](_0x2d10d2['body'][_0x5204('0x54')],_0x2d10d2[_0x5204('0x4d')]['type']);_0x2d10d2[_0x5204('0x4d')][_0x5204('0x55')]=integrations['getDescriptions'](_0x2d10d2[_0x5204('0x4d')][_0x5204('0x54')],_0x2d10d2[_0x5204('0x4d')][_0x5204('0x32')]);return db['SugarcrmConfiguration'][_0x5204('0x4c')](_0x2d10d2[_0x5204('0x4d')],{'include':[{'model':db[_0x5204('0x56')],'as':'Subjects'},{'model':db['SugarcrmField'],'as':_0x5204('0x55')}]});}return null;})['then'](respondWithResult(_0x597107,null))[_0x5204('0x4b')](handleError(_0x597107,null));};exports[_0x5204('0x57')]=function(_0x391113,_0x4ea126,_0x21f5dc){var _0x4fd90a='';var _0xf56be0=['id',_0x5204('0x2d'),_0x5204('0x58'),_0x5204('0x59'),'description',_0x5204('0x5a'),'duration_hours',_0x5204('0x5b'),'parent_id','parent_type','parent_name','direction'];return db[_0x5204('0x45')][_0x5204('0x4e')]({'where':{'id':_0x391113['params']['id']},'attributes':['id',_0x5204('0x5c'),'password',_0x5204('0x5d')]})[_0x5204('0x2a')](handleEntityNotFound(_0x4ea126,null))[_0x5204('0x2a')](function(_0x48c69a){if(_0x48c69a){_0x4fd90a=_0x48c69a[_0x5204('0x5d')];var _0x144126=_0x4fd90a[_0x5204('0x5e')](-0x1);if(_0x144126==='/'){_0x4fd90a=_0x4fd90a[_0x5204('0x5f')](0x0,_0x4fd90a[_0x5204('0x60')](_0x144126));}return rp({'method':_0x5204('0x61'),'uri':util['format'](_0x5204('0x62'),_0x4fd90a,_0x5204('0x63')),'json':!![],'form':{'method':'login','input_type':_0x5204('0x64'),'response_type':_0x5204('0x64'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0x48c69a[_0x5204('0x5c')],'password':_0x48c69a[_0x5204('0x65')],'encryption':'PLAIN'},'application':_0x5204('0x66')})}});}})[_0x5204('0x2a')](function(_0x1a976d){if(_0x1a976d&&_0x1a976d[_0x5204('0x2d')]!=='Invalid\x20Login'&&_0x1a976d[_0x5204('0x2d')]!=='Password\x20Expired'){return rp({'method':_0x5204('0x61'),'uri':util['format'](_0x5204('0x62'),_0x4fd90a,_0x5204('0x63')),'json':!![],'form':{'method':_0x5204('0x67'),'input_type':'JSON','response_type':_0x5204('0x64'),'rest_data':JSON[_0x5204('0x68')]({'session':_0x1a976d['id'],'module_name':'Calls'})}})[_0x5204('0x2a')](function(_0x4f3456){if(_0x4f3456){var _0x1979fb=_[_0x5204('0x69')](_0x4f3456[_0x5204('0x6a')]);_['remove'](_0x1979fb,function(_0x48abd0){return _0xf56be0[_0x5204('0x6b')](_0x48abd0[_0x5204('0x2d')]);});return{'count':_0x1979fb[_0x5204('0x3b')],'rows':_[_0x5204('0x2f')](_0x1979fb,function(_0x14ce13){return{'id':_0x14ce13['name'],'name':_0x14ce13[_0x5204('0x6c')],'custom':_[_0x5204('0x6d')](_0x14ce13[_0x5204('0x2d')],'_c')?!![]:![],'options':_0x14ce13['options']?_[_0x5204('0x2f')](_[_0x5204('0x69')](_0x14ce13[_0x5204('0x44')]),function(_0x59bc5c){return{'name':_0x59bc5c['value'],'value':_0x59bc5c[_0x5204('0x2d')]};}):[]};})};}})[_0x5204('0x2a')](respondWithResult(_0x4ea126,null))['catch'](function(_0x7ed351){var _0x131829=_0x391113[_0x5204('0x35')][_0x5204('0x6e')]?0x1f4:_0x7ed351[_0x5204('0x6f')]||0x1f4;logger[_0x5204('0x2b')]('getFields,\x20%s,\x20%s,\x20%s',_0x5204('0x57'),_0x131829,JSON[_0x5204('0x68')](_0x7ed351));delete _0x7ed351['name'];if(_0x131829===0x191){_0x131829=0x190;}_0x4ea126[_0x5204('0x1e')](_0x131829)[_0x5204('0x2e')](_0x391113[_0x5204('0x35')]['test']?{'message':_0x5204('0x70'),'statusCode':_0x7ed351['statusCode']}:_0x7ed351);});}else{var _0x2a7779=0x1f4;_0x4ea126[_0x5204('0x1e')](_0x2a7779)['send']({'message':_0x5204('0x70'),'statusCode':0x190});}});};