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 _0x4112=['fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','options','findAll','rows','catch','show','params','includeAll','include','find','create','body','getConfigurations','findOne','SugarcrmConfiguration','nolimit','AccountId','channel','Descriptions','getDescriptions','SugarcrmField','Subjects','getFields','assigned_user_id','description','duration_hours','duration_minutes','parent_id','parent_type','parent_name','username','password','remoteUri','substring','lastIndexOf','POST','format','%s%s','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','/service/v4_1/rest.php','get_module_fields','Calls','remove','includes','label','values','value','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../components/integrations/configuration','status','end','json','offset','undefined','limit','count','Content-Range','save','update','destroy','then','sendStatus','error','stack','name','send','map','SugarcrmAccount','rawAttributes','type','key','model','query','keys','filters','intersection'];(function(_0x2ca830,_0x51436e){var _0x12d662=function(_0x1e4615){while(--_0x1e4615){_0x2ca830['push'](_0x2ca830['shift']());}};_0x12d662(++_0x51436e);}(_0x4112,0x12b));var _0x2411=function(_0x55231c,_0x1a5dac){_0x55231c=_0x55231c-0x0;var _0x53f452=_0x4112[_0x55231c];return _0x53f452;};'use strict';var emlformat=require(_0x2411('0x0'));var rimraf=require(_0x2411('0x1'));var zipdir=require(_0x2411('0x2'));var jsonpatch=require(_0x2411('0x3'));var rp=require(_0x2411('0x4'));var moment=require(_0x2411('0x5'));var BPromise=require(_0x2411('0x6'));var Mustache=require('mustache');var util=require(_0x2411('0x7'));var path=require('path');var sox=require(_0x2411('0x8'));var csv=require(_0x2411('0x9'));var ejs=require(_0x2411('0xa'));var fs=require('fs');var fs_extra=require(_0x2411('0xb'));var _=require(_0x2411('0xc'));var squel=require('squel');var crypto=require(_0x2411('0xd'));var jsforce=require(_0x2411('0xe'));var deskjs=require(_0x2411('0xf'));var toCsv=require(_0x2411('0x9'));var querystring=require(_0x2411('0x10'));var Papa=require(_0x2411('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x2411('0x12'));var as=require(_0x2411('0x13'));var hardwareService=require(_0x2411('0x14'));var logger=require(_0x2411('0x15'))(_0x2411('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x2411('0x17'));var db=require('../../mysqldb')['db'];var integrations=require(_0x2411('0x18'));function respondWithStatusCode(_0x589982,_0x48c9c8){_0x48c9c8=_0x48c9c8||0xcc;return function(_0x44d981){if(_0x44d981){return _0x589982['sendStatus'](_0x48c9c8);}return _0x589982[_0x2411('0x19')](_0x48c9c8)[_0x2411('0x1a')]();};}function respondWithResult(_0x3433a6,_0x1dd46f){_0x1dd46f=_0x1dd46f||0xc8;return function(_0x35d091){if(_0x35d091){return _0x3433a6[_0x2411('0x19')](_0x1dd46f)[_0x2411('0x1b')](_0x35d091);}};}function respondWithFilteredResult(_0xaadb82,_0x247a7b){return function(_0x1c8c48){if(_0x1c8c48){var _0x2b4191=typeof _0x247a7b[_0x2411('0x1c')]===_0x2411('0x1d')&&typeof _0x247a7b[_0x2411('0x1e')]===_0x2411('0x1d');var _0xc0b611=_0x1c8c48[_0x2411('0x1f')];var _0x4f2026=_0x2b4191?0x0:_0x247a7b[_0x2411('0x1c')];var _0x4feb4a=_0x2b4191?_0x1c8c48['count']:_0x247a7b['offset']+_0x247a7b[_0x2411('0x1e')];var _0x47558d;if(_0x4feb4a>=_0xc0b611){_0x4feb4a=_0xc0b611;_0x47558d=0xc8;}else{_0x47558d=0xce;}_0xaadb82[_0x2411('0x19')](_0x47558d);return _0xaadb82['set'](_0x2411('0x20'),_0x4f2026+'-'+_0x4feb4a+'/'+_0xc0b611)[_0x2411('0x1b')](_0x1c8c48);}return null;};}function patchUpdates(_0x3a467e){return function(_0x1ed485){try{jsonpatch['apply'](_0x1ed485,_0x3a467e,!![]);}catch(_0x5cedfb){return BPromise['reject'](_0x5cedfb);}return _0x1ed485[_0x2411('0x21')]();};}function saveUpdates(_0x3ae2b2,_0x9cef62){return function(_0x3f3815){if(_0x3f3815){return _0x3f3815[_0x2411('0x22')](_0x3ae2b2)['then'](function(_0x38f0f1){return _0x38f0f1;});}return null;};}function removeEntity(_0x3b8069,_0x56fc92){return function(_0x3ab3d7){if(_0x3ab3d7){return _0x3ab3d7[_0x2411('0x23')]()[_0x2411('0x24')](function(){_0x3b8069[_0x2411('0x19')](0xcc)[_0x2411('0x1a')]();});}};}function handleEntityNotFound(_0x344dad,_0xce19b6){return function(_0x359ebc){if(!_0x359ebc){_0x344dad[_0x2411('0x25')](0x194);}return _0x359ebc;};}function handleError(_0x4b5227,_0x3cf982){_0x3cf982=_0x3cf982||0x1f4;return function(_0x5e1b0d){logger[_0x2411('0x26')](_0x5e1b0d[_0x2411('0x27')]);if(_0x5e1b0d['name']){delete _0x5e1b0d[_0x2411('0x28')];}_0x4b5227[_0x2411('0x19')](_0x3cf982)[_0x2411('0x29')](_0x5e1b0d);};}exports['index']=function(_0x23df36,_0x427f43){var _0x2723b1={},_0x43d768={},_0x5e22f8={'count':0x0,'rows':[]};var _0x24146a=_[_0x2411('0x2a')](db[_0x2411('0x2b')][_0x2411('0x2c')],function(_0xe75ef0){return{'name':_0xe75ef0['fieldName'],'type':_0xe75ef0[_0x2411('0x2d')][_0x2411('0x2e')]};});_0x43d768[_0x2411('0x2f')]=_[_0x2411('0x2a')](_0x24146a,_0x2411('0x28'));_0x43d768[_0x2411('0x30')]=_[_0x2411('0x31')](_0x23df36[_0x2411('0x30')]);_0x43d768[_0x2411('0x32')]=_['intersection'](_0x43d768[_0x2411('0x2f')],_0x43d768[_0x2411('0x30')]);_0x2723b1['attributes']=_[_0x2411('0x33')](_0x43d768[_0x2411('0x2f')],qs['fields'](_0x23df36[_0x2411('0x30')][_0x2411('0x34')]));_0x2723b1[_0x2411('0x35')]=_0x2723b1['attributes'][_0x2411('0x36')]?_0x2723b1[_0x2411('0x35')]:_0x43d768[_0x2411('0x2f')];if(!_0x23df36['query'][_0x2411('0x37')]('nolimit')){_0x2723b1[_0x2411('0x1e')]=qs['limit'](_0x23df36['query'][_0x2411('0x1e')]);_0x2723b1[_0x2411('0x1c')]=qs[_0x2411('0x1c')](_0x23df36[_0x2411('0x30')][_0x2411('0x1c')]);}_0x2723b1[_0x2411('0x38')]=qs[_0x2411('0x39')](_0x23df36[_0x2411('0x30')][_0x2411('0x39')]);_0x2723b1[_0x2411('0x3a')]=qs['filters'](_[_0x2411('0x3b')](_0x23df36[_0x2411('0x30')],_0x43d768[_0x2411('0x32')]),_0x24146a);if(_0x23df36[_0x2411('0x30')][_0x2411('0x3c')]){_0x2723b1['where']=_[_0x2411('0x3d')](_0x2723b1['where'],{'$or':_[_0x2411('0x2a')](_0x24146a,function(_0x192487){if(_0x192487[_0x2411('0x2d')]!=='VIRTUAL'){var _0xf9ae68={};_0xf9ae68[_0x192487[_0x2411('0x28')]]={'$like':'%'+_0x23df36['query'][_0x2411('0x3c')]+'%'};return _0xf9ae68;}})});}_0x2723b1=_[_0x2411('0x3d')]({},_0x2723b1,_0x23df36[_0x2411('0x3e')]);var _0x10bd44={'where':_0x2723b1[_0x2411('0x3a')]};return db[_0x2411('0x2b')][_0x2411('0x1f')](_0x10bd44)[_0x2411('0x24')](function(_0x3ac827){_0x5e22f8['count']=_0x3ac827;if(_0x23df36[_0x2411('0x30')]['includeAll']){_0x2723b1['include']=[{'all':!![]}];}return db[_0x2411('0x2b')][_0x2411('0x3f')](_0x2723b1);})[_0x2411('0x24')](function(_0x588c49){_0x5e22f8[_0x2411('0x40')]=_0x588c49;return _0x5e22f8;})[_0x2411('0x24')](respondWithFilteredResult(_0x427f43,_0x2723b1))[_0x2411('0x41')](handleError(_0x427f43,null));};exports[_0x2411('0x42')]=function(_0xd1c264,_0x287c23){var _0x37b1ea={'raw':![],'where':{'id':_0xd1c264[_0x2411('0x43')]['id']}},_0x4cf36b={};_0x4cf36b['model']=_['keys'](db['SugarcrmAccount']['rawAttributes']);_0x4cf36b['query']=_[_0x2411('0x31')](_0xd1c264[_0x2411('0x30')]);_0x4cf36b[_0x2411('0x32')]=_[_0x2411('0x33')](_0x4cf36b['model'],_0x4cf36b['query']);_0x37b1ea[_0x2411('0x35')]=_[_0x2411('0x33')](_0x4cf36b[_0x2411('0x2f')],qs[_0x2411('0x34')](_0xd1c264[_0x2411('0x30')][_0x2411('0x34')]));_0x37b1ea['attributes']=_0x37b1ea[_0x2411('0x35')][_0x2411('0x36')]?_0x37b1ea[_0x2411('0x35')]:_0x4cf36b[_0x2411('0x2f')];if(_0xd1c264['query'][_0x2411('0x44')]){_0x37b1ea[_0x2411('0x45')]=[{'all':!![]}];}_0x37b1ea=_[_0x2411('0x3d')]({},_0x37b1ea,_0xd1c264[_0x2411('0x3e')]);return db[_0x2411('0x2b')][_0x2411('0x46')](_0x37b1ea)[_0x2411('0x24')](handleEntityNotFound(_0x287c23,null))['then'](respondWithResult(_0x287c23,null))[_0x2411('0x41')](handleError(_0x287c23,null));};exports['create']=function(_0x513af1,_0x142a6d){return db[_0x2411('0x2b')][_0x2411('0x47')](_0x513af1[_0x2411('0x48')],{})[_0x2411('0x24')](respondWithResult(_0x142a6d,0xc9))[_0x2411('0x41')](handleError(_0x142a6d,null));};exports[_0x2411('0x22')]=function(_0x19909f,_0xd40fa0){if(_0x19909f[_0x2411('0x48')]['id']){delete _0x19909f[_0x2411('0x48')]['id'];}return db[_0x2411('0x2b')]['find']({'where':{'id':_0x19909f[_0x2411('0x43')]['id']}})[_0x2411('0x24')](handleEntityNotFound(_0xd40fa0,null))[_0x2411('0x24')](saveUpdates(_0x19909f['body'],null))[_0x2411('0x24')](respondWithResult(_0xd40fa0,null))['catch'](handleError(_0xd40fa0,null));};exports[_0x2411('0x23')]=function(_0x11cfc4,_0x549d2f){return db['SugarcrmAccount'][_0x2411('0x46')]({'where':{'id':_0x11cfc4[_0x2411('0x43')]['id']}})[_0x2411('0x24')](handleEntityNotFound(_0x549d2f,null))[_0x2411('0x24')](removeEntity(_0x549d2f,null))[_0x2411('0x41')](handleError(_0x549d2f,null));};exports[_0x2411('0x49')]=function(_0x425560,_0x4b6585,_0x55e29c){var _0x165f3f={};var _0x28cd88={};var _0xdcdcc6;var _0x3ad01a;return db[_0x2411('0x2b')][_0x2411('0x4a')]({'where':{'id':_0x425560[_0x2411('0x43')]['id']}})[_0x2411('0x24')](handleEntityNotFound(_0x4b6585,null))[_0x2411('0x24')](function(_0x59b239){if(_0x59b239){_0xdcdcc6=_0x59b239;_0x28cd88[_0x2411('0x2f')]=_[_0x2411('0x31')](db[_0x2411('0x4b')][_0x2411('0x2c')]);_0x28cd88[_0x2411('0x30')]=_[_0x2411('0x31')](_0x425560[_0x2411('0x30')]);_0x28cd88['filters']=_[_0x2411('0x33')](_0x28cd88[_0x2411('0x2f')],_0x28cd88[_0x2411('0x30')]);_0x165f3f[_0x2411('0x35')]=_[_0x2411('0x33')](_0x28cd88[_0x2411('0x2f')],qs[_0x2411('0x34')](_0x425560[_0x2411('0x30')]['fields']));_0x165f3f[_0x2411('0x35')]=_0x165f3f[_0x2411('0x35')]['length']?_0x165f3f['attributes']:_0x28cd88['model'];_0x165f3f['order']=qs[_0x2411('0x39')](_0x425560[_0x2411('0x30')][_0x2411('0x39')]);_0x165f3f[_0x2411('0x3a')]=qs[_0x2411('0x32')](_[_0x2411('0x3b')](_0x425560['query'],_0x28cd88['filters']));if(_0x425560[_0x2411('0x30')]['filter']){_0x165f3f[_0x2411('0x3a')]=_[_0x2411('0x3d')](_0x165f3f['where'],{'$or':_['map'](_0x165f3f['attributes'],function(_0xda2b0b){var _0x34bf0d={};_0x34bf0d[_0xda2b0b]={'$like':'%'+_0x425560[_0x2411('0x30')][_0x2411('0x3c')]+'%'};return _0x34bf0d;})});}_0x165f3f=_[_0x2411('0x3d')]({},_0x165f3f,_0x425560[_0x2411('0x3e')]);return _0xdcdcc6['getConfigurations'](_0x165f3f);}})[_0x2411('0x24')](function(_0x596c07){if(_0x596c07){_0x3ad01a=_0x596c07[_0x2411('0x36')];if(!_0x425560[_0x2411('0x30')]['hasOwnProperty'](_0x2411('0x4c'))){_0x165f3f['limit']=qs['limit'](_0x425560[_0x2411('0x30')][_0x2411('0x1e')]);_0x165f3f[_0x2411('0x1c')]=qs[_0x2411('0x1c')](_0x425560[_0x2411('0x30')]['offset']);}return _0xdcdcc6[_0x2411('0x49')](_0x165f3f);}})[_0x2411('0x24')](function(_0x2462b0){if(_0x2462b0){return _0x2462b0?{'count':_0x3ad01a,'rows':_0x2462b0}:null;}})[_0x2411('0x24')](respondWithResult(_0x4b6585,null))[_0x2411('0x41')](handleError(_0x4b6585,null));};exports['addConfiguration']=function(_0x4e19d6,_0x2ad73d,_0x137d9c){if(_0x4e19d6[_0x2411('0x48')]['id']){delete _0x4e19d6[_0x2411('0x48')]['id'];}return db[_0x2411('0x2b')]['findOne']({'where':{'id':_0x4e19d6[_0x2411('0x43')]['id']}})[_0x2411('0x24')](handleEntityNotFound(_0x2ad73d,null))[_0x2411('0x24')](function(_0x115bce){if(_0x115bce){_0x4e19d6['body'][_0x2411('0x4d')]=_0x115bce['id'];_0x4e19d6['body']['Subjects']=integrations['getSubjects'](_0x4e19d6['body'][_0x2411('0x4e')],_0x4e19d6['body']['type']);_0x4e19d6[_0x2411('0x48')][_0x2411('0x4f')]=integrations[_0x2411('0x50')](_0x4e19d6[_0x2411('0x48')]['channel'],_0x4e19d6[_0x2411('0x48')]['type']);return db[_0x2411('0x4b')]['create'](_0x4e19d6['body'],{'include':[{'model':db[_0x2411('0x51')],'as':_0x2411('0x52')},{'model':db[_0x2411('0x51')],'as':_0x2411('0x4f')}]});}return null;})[_0x2411('0x24')](respondWithResult(_0x2ad73d,null))[_0x2411('0x41')](handleError(_0x2ad73d,null));};exports[_0x2411('0x53')]=function(_0x27c597,_0x2b777a,_0xb7450d){var _0x4f2605='';var _0x4ec2ac=['id','name',_0x2411('0x54'),'created_by',_0x2411('0x55'),'date_start',_0x2411('0x56'),_0x2411('0x57'),_0x2411('0x58'),_0x2411('0x59'),_0x2411('0x5a'),'direction'];return db[_0x2411('0x2b')][_0x2411('0x4a')]({'where':{'id':_0x27c597['params']['id']},'attributes':['id',_0x2411('0x5b'),_0x2411('0x5c'),_0x2411('0x5d')]})[_0x2411('0x24')](handleEntityNotFound(_0x2b777a,null))['then'](function(_0x36f06e){if(_0x36f06e){_0x4f2605=_0x36f06e[_0x2411('0x5d')];var _0x19ab24=_0x4f2605['slice'](-0x1);if(_0x19ab24==='/'){_0x4f2605=_0x4f2605[_0x2411('0x5e')](0x0,_0x4f2605[_0x2411('0x5f')](_0x19ab24));}return rp({'method':_0x2411('0x60'),'uri':util[_0x2411('0x61')](_0x2411('0x62'),_0x4f2605,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0x2411('0x63'),'input_type':_0x2411('0x64'),'response_type':_0x2411('0x64'),'rest_data':JSON[_0x2411('0x65')]({'user_auth':{'user_name':_0x36f06e['username'],'password':_0x36f06e[_0x2411('0x5c')],'encryption':_0x2411('0x66')},'application':_0x2411('0x67')})}});}})['then'](function(_0x1f7af0){if(_0x1f7af0&&_0x1f7af0[_0x2411('0x28')]!==_0x2411('0x68')&&_0x1f7af0['name']!=='Password\x20Expired'){return rp({'method':_0x2411('0x60'),'uri':util[_0x2411('0x61')](_0x2411('0x62'),_0x4f2605,_0x2411('0x69')),'json':!![],'form':{'method':_0x2411('0x6a'),'input_type':_0x2411('0x64'),'response_type':_0x2411('0x64'),'rest_data':JSON[_0x2411('0x65')]({'session':_0x1f7af0['id'],'module_name':_0x2411('0x6b')})}})[_0x2411('0x24')](function(_0x375911){if(_0x375911){var _0x4bd16e=_['values'](_0x375911['module_fields']);_[_0x2411('0x6c')](_0x4bd16e,function(_0x5a949a){return _0x4ec2ac[_0x2411('0x6d')](_0x5a949a[_0x2411('0x28')]);});return{'count':_0x4bd16e[_0x2411('0x36')],'rows':_[_0x2411('0x2a')](_0x4bd16e,function(_0x12abf6){return{'id':_0x12abf6[_0x2411('0x28')],'name':_0x12abf6[_0x2411('0x6e')],'custom':_['endsWith'](_0x12abf6[_0x2411('0x28')],'_c')?!![]:![],'options':_0x12abf6[_0x2411('0x3e')]?_['map'](_[_0x2411('0x6f')](_0x12abf6[_0x2411('0x3e')]),function(_0x29f305){return{'name':_0x29f305[_0x2411('0x70')],'value':_0x29f305[_0x2411('0x28')]};}):[]};})};}})[_0x2411('0x24')](respondWithResult(_0x2b777a,null))[_0x2411('0x41')](function(_0x355e2b){var _0x46e907=_0x27c597[_0x2411('0x30')][_0x2411('0x71')]?0x1f4:_0x355e2b[_0x2411('0x72')]||0x1f4;logger['error'](_0x2411('0x73'),_0x2411('0x53'),_0x46e907,JSON[_0x2411('0x65')](_0x355e2b));delete _0x355e2b[_0x2411('0x28')];if(_0x46e907===0x191){_0x46e907=0x190;}_0x2b777a[_0x2411('0x19')](_0x46e907)[_0x2411('0x29')](_0x27c597['query']['test']?{'message':_0x2411('0x74'),'statusCode':_0x355e2b[_0x2411('0x72')]}:_0x355e2b);});}else{var _0x9e80c7=0x1f4;_0x2b777a['status'](_0x9e80c7)[_0x2411('0x29')]({'message':_0x2411('0x74'),'statusCode':0x190});}});};