Built motion from commit 753c950e.|2.5.42
[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 _0x7fbb=['to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','name','send','index','SugarcrmAccount','rawAttributes','type','key','keys','query','filters','intersection','attributes','model','fields','length','nolimit','order','sort','where','pick','filter','merge','map','VIRTUAL','include','findAll','catch','show','params','includeAll','find','create','body','destroy','getConfigurations','findOne','options','hasOwnProperty','addConfiguration','AccountId','getSubjects','channel','SugarcrmConfiguration','SugarcrmField','Subjects','Descriptions','assigned_user_id','created_by','description','date_start','parent_id','parent_type','parent_name','direction','username','password','remoteUri','slice','substring','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','get_module_fields','module_fields','remove','label','endsWith','values','value','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x7fbb,0x71));var _0xb7fb=function(_0x5542e4,_0x51f559){_0x5542e4=_0x5542e4-0x0;var _0x58d6aa=_0x7fbb[_0x5542e4];return _0x58d6aa;};'use strict';var emlformat=require(_0xb7fb('0x0'));var rimraf=require(_0xb7fb('0x1'));var zipdir=require(_0xb7fb('0x2'));var jsonpatch=require(_0xb7fb('0x3'));var rp=require(_0xb7fb('0x4'));var moment=require(_0xb7fb('0x5'));var BPromise=require(_0xb7fb('0x6'));var Mustache=require(_0xb7fb('0x7'));var util=require(_0xb7fb('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0xb7fb('0x9'));var ejs=require(_0xb7fb('0xa'));var fs=require('fs');var fs_extra=require(_0xb7fb('0xb'));var _=require(_0xb7fb('0xc'));var squel=require(_0xb7fb('0xd'));var crypto=require(_0xb7fb('0xe'));var jsforce=require(_0xb7fb('0xf'));var deskjs=require(_0xb7fb('0x10'));var toCsv=require(_0xb7fb('0x9'));var querystring=require('querystring');var Papa=require(_0xb7fb('0x11'));var Redis=require('ioredis');var authService=require(_0xb7fb('0x12'));var qs=require(_0xb7fb('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb7fb('0x14'));var logger=require(_0xb7fb('0x15'))('api');var utils=require(_0xb7fb('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xb7fb('0x17'));var db=require(_0xb7fb('0x18'))['db'];var integrations=require(_0xb7fb('0x19'));function respondWithStatusCode(_0x26d55d,_0x43dc33){_0x43dc33=_0x43dc33||0xcc;return function(_0x420d0e){if(_0x420d0e){return _0x26d55d[_0xb7fb('0x1a')](_0x43dc33);}return _0x26d55d[_0xb7fb('0x1b')](_0x43dc33)[_0xb7fb('0x1c')]();};}function respondWithResult(_0xa48844,_0x66cfb1){_0x66cfb1=_0x66cfb1||0xc8;return function(_0x50eb15){if(_0x50eb15){return _0xa48844[_0xb7fb('0x1b')](_0x66cfb1)[_0xb7fb('0x1d')](_0x50eb15);}};}function respondWithFilteredResult(_0x42d05c,_0x5c8bbe){return function(_0x341f69){if(_0x341f69){var _0x7210=typeof _0x5c8bbe[_0xb7fb('0x1e')]===_0xb7fb('0x1f')&&typeof _0x5c8bbe[_0xb7fb('0x20')]==='undefined';var _0x345c40=_0x341f69[_0xb7fb('0x21')];var _0x5e12e3=_0x7210?0x0:_0x5c8bbe[_0xb7fb('0x1e')];var _0x319d93=_0x7210?_0x341f69[_0xb7fb('0x21')]:_0x5c8bbe['offset']+_0x5c8bbe['limit'];var _0x31590a;if(_0x319d93>=_0x345c40){_0x319d93=_0x345c40;_0x31590a=0xc8;}else{_0x31590a=0xce;}_0x42d05c[_0xb7fb('0x1b')](_0x31590a);return _0x42d05c[_0xb7fb('0x22')](_0xb7fb('0x23'),_0x5e12e3+'-'+_0x319d93+'/'+_0x345c40)[_0xb7fb('0x1d')](_0x341f69);}return null;};}function patchUpdates(_0x12870b){return function(_0xa8eb17){try{jsonpatch[_0xb7fb('0x24')](_0xa8eb17,_0x12870b,!![]);}catch(_0x16fb90){return BPromise[_0xb7fb('0x25')](_0x16fb90);}return _0xa8eb17[_0xb7fb('0x26')]();};}function saveUpdates(_0x2c145a,_0x2188aa){return function(_0x464f34){if(_0x464f34){return _0x464f34[_0xb7fb('0x27')](_0x2c145a)[_0xb7fb('0x28')](function(_0x49cf90){return _0x49cf90;});}return null;};}function removeEntity(_0x4bc0ef,_0x3e2b14){return function(_0x6317b5){if(_0x6317b5){return _0x6317b5['destroy']()['then'](function(){_0x4bc0ef[_0xb7fb('0x1b')](0xcc)[_0xb7fb('0x1c')]();});}};}function handleEntityNotFound(_0x2e290f,_0x55c1a9){return function(_0x37e49a){if(!_0x37e49a){_0x2e290f[_0xb7fb('0x1a')](0x194);}return _0x37e49a;};}function handleError(_0x3c3bf0,_0x30708a){_0x30708a=_0x30708a||0x1f4;return function(_0x6bf47e){logger[_0xb7fb('0x29')](_0x6bf47e['stack']);if(_0x6bf47e[_0xb7fb('0x2a')]){delete _0x6bf47e['name'];}_0x3c3bf0['status'](_0x30708a)[_0xb7fb('0x2b')](_0x6bf47e);};}exports[_0xb7fb('0x2c')]=function(_0x2fe917,_0x470f70){var _0x43a4df={},_0x258b4f={},_0x3fdc66={'count':0x0,'rows':[]};var _0x1146ce=_['map'](db[_0xb7fb('0x2d')][_0xb7fb('0x2e')],function(_0x51908b){return{'name':_0x51908b['fieldName'],'type':_0x51908b[_0xb7fb('0x2f')][_0xb7fb('0x30')]};});_0x258b4f['model']=_['map'](_0x1146ce,_0xb7fb('0x2a'));_0x258b4f['query']=_[_0xb7fb('0x31')](_0x2fe917[_0xb7fb('0x32')]);_0x258b4f[_0xb7fb('0x33')]=_[_0xb7fb('0x34')](_0x258b4f['model'],_0x258b4f[_0xb7fb('0x32')]);_0x43a4df[_0xb7fb('0x35')]=_['intersection'](_0x258b4f[_0xb7fb('0x36')],qs['fields'](_0x2fe917[_0xb7fb('0x32')][_0xb7fb('0x37')]));_0x43a4df['attributes']=_0x43a4df['attributes'][_0xb7fb('0x38')]?_0x43a4df[_0xb7fb('0x35')]:_0x258b4f[_0xb7fb('0x36')];if(!_0x2fe917['query']['hasOwnProperty'](_0xb7fb('0x39'))){_0x43a4df['limit']=qs[_0xb7fb('0x20')](_0x2fe917['query'][_0xb7fb('0x20')]);_0x43a4df[_0xb7fb('0x1e')]=qs['offset'](_0x2fe917[_0xb7fb('0x32')]['offset']);}_0x43a4df[_0xb7fb('0x3a')]=qs['sort'](_0x2fe917['query'][_0xb7fb('0x3b')]);_0x43a4df[_0xb7fb('0x3c')]=qs[_0xb7fb('0x33')](_[_0xb7fb('0x3d')](_0x2fe917[_0xb7fb('0x32')],_0x258b4f['filters']),_0x1146ce);if(_0x2fe917[_0xb7fb('0x32')][_0xb7fb('0x3e')]){_0x43a4df[_0xb7fb('0x3c')]=_[_0xb7fb('0x3f')](_0x43a4df['where'],{'$or':_[_0xb7fb('0x40')](_0x1146ce,function(_0x338e26){if(_0x338e26[_0xb7fb('0x2f')]!==_0xb7fb('0x41')){var _0x3f2109={};_0x3f2109[_0x338e26['name']]={'$like':'%'+_0x2fe917['query']['filter']+'%'};return _0x3f2109;}})});}_0x43a4df=_['merge']({},_0x43a4df,_0x2fe917['options']);var _0x5bdef9={'where':_0x43a4df[_0xb7fb('0x3c')]};return db['SugarcrmAccount'][_0xb7fb('0x21')](_0x5bdef9)[_0xb7fb('0x28')](function(_0x537f0d){_0x3fdc66[_0xb7fb('0x21')]=_0x537f0d;if(_0x2fe917[_0xb7fb('0x32')]['includeAll']){_0x43a4df[_0xb7fb('0x42')]=[{'all':!![]}];}return db[_0xb7fb('0x2d')][_0xb7fb('0x43')](_0x43a4df);})[_0xb7fb('0x28')](function(_0x2e16c6){_0x3fdc66['rows']=_0x2e16c6;return _0x3fdc66;})[_0xb7fb('0x28')](respondWithFilteredResult(_0x470f70,_0x43a4df))[_0xb7fb('0x44')](handleError(_0x470f70,null));};exports[_0xb7fb('0x45')]=function(_0x8e1bbe,_0x53d27b){var _0x835cb0={'raw':![],'where':{'id':_0x8e1bbe[_0xb7fb('0x46')]['id']}},_0x584390={};_0x584390[_0xb7fb('0x36')]=_[_0xb7fb('0x31')](db[_0xb7fb('0x2d')][_0xb7fb('0x2e')]);_0x584390['query']=_['keys'](_0x8e1bbe[_0xb7fb('0x32')]);_0x584390[_0xb7fb('0x33')]=_[_0xb7fb('0x34')](_0x584390['model'],_0x584390[_0xb7fb('0x32')]);_0x835cb0[_0xb7fb('0x35')]=_[_0xb7fb('0x34')](_0x584390['model'],qs[_0xb7fb('0x37')](_0x8e1bbe[_0xb7fb('0x32')]['fields']));_0x835cb0['attributes']=_0x835cb0[_0xb7fb('0x35')][_0xb7fb('0x38')]?_0x835cb0[_0xb7fb('0x35')]:_0x584390['model'];if(_0x8e1bbe[_0xb7fb('0x32')][_0xb7fb('0x47')]){_0x835cb0[_0xb7fb('0x42')]=[{'all':!![]}];}_0x835cb0=_[_0xb7fb('0x3f')]({},_0x835cb0,_0x8e1bbe['options']);return db[_0xb7fb('0x2d')][_0xb7fb('0x48')](_0x835cb0)['then'](handleEntityNotFound(_0x53d27b,null))[_0xb7fb('0x28')](respondWithResult(_0x53d27b,null))[_0xb7fb('0x44')](handleError(_0x53d27b,null));};exports[_0xb7fb('0x49')]=function(_0x91e59e,_0x4690da){return db['SugarcrmAccount']['create'](_0x91e59e[_0xb7fb('0x4a')],{})['then'](respondWithResult(_0x4690da,0xc9))['catch'](handleError(_0x4690da,null));};exports[_0xb7fb('0x27')]=function(_0x301554,_0x1ed459){if(_0x301554['body']['id']){delete _0x301554[_0xb7fb('0x4a')]['id'];}return db[_0xb7fb('0x2d')][_0xb7fb('0x48')]({'where':{'id':_0x301554[_0xb7fb('0x46')]['id']}})[_0xb7fb('0x28')](handleEntityNotFound(_0x1ed459,null))[_0xb7fb('0x28')](saveUpdates(_0x301554[_0xb7fb('0x4a')],null))[_0xb7fb('0x28')](respondWithResult(_0x1ed459,null))[_0xb7fb('0x44')](handleError(_0x1ed459,null));};exports[_0xb7fb('0x4b')]=function(_0xc27d6b,_0x10db92){return db[_0xb7fb('0x2d')][_0xb7fb('0x48')]({'where':{'id':_0xc27d6b[_0xb7fb('0x46')]['id']}})[_0xb7fb('0x28')](handleEntityNotFound(_0x10db92,null))['then'](removeEntity(_0x10db92,null))[_0xb7fb('0x44')](handleError(_0x10db92,null));};exports[_0xb7fb('0x4c')]=function(_0x4c9b77,_0x3e7074,_0x3d0e19){var _0x587f94={};var _0x61627={};var _0x47a880;var _0x5ba9e0;return db[_0xb7fb('0x2d')][_0xb7fb('0x4d')]({'where':{'id':_0x4c9b77['params']['id']}})[_0xb7fb('0x28')](handleEntityNotFound(_0x3e7074,null))[_0xb7fb('0x28')](function(_0x886c4c){if(_0x886c4c){_0x47a880=_0x886c4c;_0x61627[_0xb7fb('0x36')]=_[_0xb7fb('0x31')](db['SugarcrmConfiguration']['rawAttributes']);_0x61627[_0xb7fb('0x32')]=_['keys'](_0x4c9b77[_0xb7fb('0x32')]);_0x61627['filters']=_[_0xb7fb('0x34')](_0x61627['model'],_0x61627[_0xb7fb('0x32')]);_0x587f94[_0xb7fb('0x35')]=_[_0xb7fb('0x34')](_0x61627[_0xb7fb('0x36')],qs[_0xb7fb('0x37')](_0x4c9b77['query'][_0xb7fb('0x37')]));_0x587f94[_0xb7fb('0x35')]=_0x587f94[_0xb7fb('0x35')][_0xb7fb('0x38')]?_0x587f94[_0xb7fb('0x35')]:_0x61627[_0xb7fb('0x36')];_0x587f94[_0xb7fb('0x3a')]=qs[_0xb7fb('0x3b')](_0x4c9b77[_0xb7fb('0x32')][_0xb7fb('0x3b')]);_0x587f94['where']=qs['filters'](_['pick'](_0x4c9b77[_0xb7fb('0x32')],_0x61627[_0xb7fb('0x33')]));if(_0x4c9b77[_0xb7fb('0x32')][_0xb7fb('0x3e')]){_0x587f94['where']=_['merge'](_0x587f94['where'],{'$or':_[_0xb7fb('0x40')](_0x587f94['attributes'],function(_0x1bdd38){var _0x5131ca={};_0x5131ca[_0x1bdd38]={'$like':'%'+_0x4c9b77['query'][_0xb7fb('0x3e')]+'%'};return _0x5131ca;})});}_0x587f94=_[_0xb7fb('0x3f')]({},_0x587f94,_0x4c9b77[_0xb7fb('0x4e')]);return _0x47a880[_0xb7fb('0x4c')](_0x587f94);}})[_0xb7fb('0x28')](function(_0x17a404){if(_0x17a404){_0x5ba9e0=_0x17a404[_0xb7fb('0x38')];if(!_0x4c9b77['query'][_0xb7fb('0x4f')](_0xb7fb('0x39'))){_0x587f94['limit']=qs['limit'](_0x4c9b77[_0xb7fb('0x32')]['limit']);_0x587f94[_0xb7fb('0x1e')]=qs[_0xb7fb('0x1e')](_0x4c9b77[_0xb7fb('0x32')]['offset']);}return _0x47a880[_0xb7fb('0x4c')](_0x587f94);}})[_0xb7fb('0x28')](function(_0x18b374){if(_0x18b374){return _0x18b374?{'count':_0x5ba9e0,'rows':_0x18b374}:null;}})[_0xb7fb('0x28')](respondWithResult(_0x3e7074,null))[_0xb7fb('0x44')](handleError(_0x3e7074,null));};exports[_0xb7fb('0x50')]=function(_0x5a5d1c,_0x48af91,_0x48d747){if(_0x5a5d1c[_0xb7fb('0x4a')]['id']){delete _0x5a5d1c[_0xb7fb('0x4a')]['id'];}return db[_0xb7fb('0x2d')]['findOne']({'where':{'id':_0x5a5d1c['params']['id']}})[_0xb7fb('0x28')](handleEntityNotFound(_0x48af91,null))[_0xb7fb('0x28')](function(_0x206d7c){if(_0x206d7c){_0x5a5d1c['body'][_0xb7fb('0x51')]=_0x206d7c['id'];_0x5a5d1c[_0xb7fb('0x4a')]['Subjects']=integrations[_0xb7fb('0x52')](_0x5a5d1c[_0xb7fb('0x4a')]['channel'],_0x5a5d1c['body']['type']);_0x5a5d1c[_0xb7fb('0x4a')]['Descriptions']=integrations['getDescriptions'](_0x5a5d1c['body'][_0xb7fb('0x53')],_0x5a5d1c[_0xb7fb('0x4a')]['type']);return db[_0xb7fb('0x54')]['create'](_0x5a5d1c[_0xb7fb('0x4a')],{'include':[{'model':db[_0xb7fb('0x55')],'as':_0xb7fb('0x56')},{'model':db[_0xb7fb('0x55')],'as':_0xb7fb('0x57')}]});}return null;})[_0xb7fb('0x28')](respondWithResult(_0x48af91,null))[_0xb7fb('0x44')](handleError(_0x48af91,null));};exports['getFields']=function(_0x1c38a0,_0x4a2ba3,_0x5b5435){var _0x3d4d5f='';var _0x4e21d3=['id','name',_0xb7fb('0x58'),_0xb7fb('0x59'),_0xb7fb('0x5a'),_0xb7fb('0x5b'),'duration_hours','duration_minutes',_0xb7fb('0x5c'),_0xb7fb('0x5d'),_0xb7fb('0x5e'),_0xb7fb('0x5f')];return db[_0xb7fb('0x2d')]['findOne']({'where':{'id':_0x1c38a0['params']['id']},'attributes':['id',_0xb7fb('0x60'),_0xb7fb('0x61'),'remoteUri']})[_0xb7fb('0x28')](handleEntityNotFound(_0x4a2ba3,null))[_0xb7fb('0x28')](function(_0x585f1f){if(_0x585f1f){_0x3d4d5f=_0x585f1f[_0xb7fb('0x62')];var _0x456474=_0x3d4d5f[_0xb7fb('0x63')](-0x1);if(_0x456474==='/'){_0x3d4d5f=_0x3d4d5f[_0xb7fb('0x64')](0x0,_0x3d4d5f['lastIndexOf'](_0x456474));}return rp({'method':_0xb7fb('0x65'),'uri':util[_0xb7fb('0x66')](_0xb7fb('0x67'),_0x3d4d5f,_0xb7fb('0x68')),'json':!![],'form':{'method':_0xb7fb('0x69'),'input_type':_0xb7fb('0x6a'),'response_type':'JSON','rest_data':JSON[_0xb7fb('0x6b')]({'user_auth':{'user_name':_0x585f1f[_0xb7fb('0x60')],'password':_0x585f1f['password'],'encryption':_0xb7fb('0x6c')},'application':_0xb7fb('0x6d')})}});}})[_0xb7fb('0x28')](function(_0x453e31){if(_0x453e31&&_0x453e31[_0xb7fb('0x2a')]!=='Invalid\x20Login'&&_0x453e31['name']!=='Password\x20Expired'){return rp({'method':'POST','uri':util[_0xb7fb('0x66')](_0xb7fb('0x67'),_0x3d4d5f,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0xb7fb('0x6e'),'input_type':_0xb7fb('0x6a'),'response_type':_0xb7fb('0x6a'),'rest_data':JSON[_0xb7fb('0x6b')]({'session':_0x453e31['id'],'module_name':'Calls'})}})[_0xb7fb('0x28')](function(_0x509466){if(_0x509466){var _0x12b029=_['values'](_0x509466[_0xb7fb('0x6f')]);_[_0xb7fb('0x70')](_0x12b029,function(_0x1e62e2){return _0x4e21d3['includes'](_0x1e62e2[_0xb7fb('0x2a')]);});return{'count':_0x12b029[_0xb7fb('0x38')],'rows':_[_0xb7fb('0x40')](_0x12b029,function(_0x516f52){return{'id':_0x516f52['name'],'name':_0x516f52[_0xb7fb('0x71')],'custom':_[_0xb7fb('0x72')](_0x516f52[_0xb7fb('0x2a')],'_c')?!![]:![],'options':_0x516f52[_0xb7fb('0x4e')]?_[_0xb7fb('0x40')](_[_0xb7fb('0x73')](_0x516f52[_0xb7fb('0x4e')]),function(_0x444a04){return{'name':_0x444a04[_0xb7fb('0x74')],'value':_0x444a04[_0xb7fb('0x2a')]};}):[]};})};}})['then'](respondWithResult(_0x4a2ba3,null))[_0xb7fb('0x44')](function(_0x4ec31a){var _0x477a7c=_0x1c38a0[_0xb7fb('0x32')][_0xb7fb('0x75')]?0x1f4:_0x4ec31a[_0xb7fb('0x76')]||0x1f4;logger[_0xb7fb('0x29')](_0xb7fb('0x77'),_0xb7fb('0x78'),_0x477a7c,JSON[_0xb7fb('0x6b')](_0x4ec31a));delete _0x4ec31a['name'];if(_0x477a7c===0x191){_0x477a7c=0x190;}_0x4a2ba3[_0xb7fb('0x1b')](_0x477a7c)['send'](_0x1c38a0[_0xb7fb('0x32')][_0xb7fb('0x75')]?{'message':_0xb7fb('0x79'),'statusCode':_0x4ec31a[_0xb7fb('0x76')]}:_0x4ec31a);});}else{var _0x539b51=0x1f4;_0x4a2ba3['status'](_0x539b51)[_0xb7fb('0x2b')]({'message':_0xb7fb('0x79'),'statusCode':0x190});}});};