ba3de96b0bf9a3ce2c8c3429d788952a46f7d8ba
[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 _0xf45d=['getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','getFields','assigned_user_id','created_by','duration_hours','parent_id','parent_type','parent_name','direction','remoteUri','slice','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','username','password','PLAIN','Invalid\x20Login','Password\x20Expired','Calls','values','module_fields','remove','includes','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','send','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','count','Content-Range','save','update','destroy','then','stack','name','index','rawAttributes','fieldName','map','keys','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','limit','order','sort','where','pick','filter','merge','type','SugarcrmAccount','catch','show','params','includeAll','options','find','create','body','getConfigurations','findOne','SugarcrmConfiguration','nolimit','addConfiguration','Subjects'];(function(_0x1feb65,_0x59d59b){var _0xb2dbb3=function(_0x13c353){while(--_0x13c353){_0x1feb65['push'](_0x1feb65['shift']());}};_0xb2dbb3(++_0x59d59b);}(_0xf45d,0x9a));var _0xdf45=function(_0x503ef4,_0x4b6903){_0x503ef4=_0x503ef4-0x0;var _0xd3aeb=_0xf45d[_0x503ef4];return _0xd3aeb;};'use strict';var emlformat=require(_0xdf45('0x0'));var rimraf=require(_0xdf45('0x1'));var zipdir=require(_0xdf45('0x2'));var jsonpatch=require(_0xdf45('0x3'));var rp=require(_0xdf45('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xdf45('0x5'));var util=require(_0xdf45('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xdf45('0x7'));var ejs=require(_0xdf45('0x8'));var fs=require('fs');var fs_extra=require(_0xdf45('0x9'));var _=require(_0xdf45('0xa'));var squel=require(_0xdf45('0xb'));var crypto=require(_0xdf45('0xc'));var jsforce=require(_0xdf45('0xd'));var deskjs=require(_0xdf45('0xe'));var toCsv=require(_0xdf45('0x7'));var querystring=require(_0xdf45('0xf'));var Papa=require('papaparse');var Redis=require(_0xdf45('0x10'));var authService=require(_0xdf45('0x11'));var qs=require(_0xdf45('0x12'));var as=require(_0xdf45('0x13'));var hardwareService=require(_0xdf45('0x14'));var logger=require(_0xdf45('0x15'))('api');var utils=require(_0xdf45('0x16'));var config=require(_0xdf45('0x17'));var licenseUtil=require(_0xdf45('0x18'));var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x56be00,_0x5d8bf2){_0x5d8bf2=_0x5d8bf2||0xcc;return function(_0x5bdd7d){if(_0x5bdd7d){return _0x56be00[_0xdf45('0x19')](_0x5d8bf2);}return _0x56be00[_0xdf45('0x1a')](_0x5d8bf2)[_0xdf45('0x1b')]();};}function respondWithResult(_0x131c37,_0x451937){_0x451937=_0x451937||0xc8;return function(_0x24c67c){if(_0x24c67c){return _0x131c37[_0xdf45('0x1a')](_0x451937)[_0xdf45('0x1c')](_0x24c67c);}};}function respondWithFilteredResult(_0x137fae,_0x455459){return function(_0x59f0aa){if(_0x59f0aa){var _0x49040e=typeof _0x455459[_0xdf45('0x1d')]==='undefined'&&typeof _0x455459['limit']==='undefined';var _0x53d866=_0x59f0aa[_0xdf45('0x1e')];var _0x1d23a9=_0x49040e?0x0:_0x455459[_0xdf45('0x1d')];var _0x9d62ae=_0x49040e?_0x59f0aa[_0xdf45('0x1e')]:_0x455459[_0xdf45('0x1d')]+_0x455459['limit'];var _0x2fb5e8;if(_0x9d62ae>=_0x53d866){_0x9d62ae=_0x53d866;_0x2fb5e8=0xc8;}else{_0x2fb5e8=0xce;}_0x137fae[_0xdf45('0x1a')](_0x2fb5e8);return _0x137fae['set'](_0xdf45('0x1f'),_0x1d23a9+'-'+_0x9d62ae+'/'+_0x53d866)['json'](_0x59f0aa);}return null;};}function patchUpdates(_0x449d3c){return function(_0x40b8e3){try{jsonpatch['apply'](_0x40b8e3,_0x449d3c,!![]);}catch(_0x26fd71){return BPromise['reject'](_0x26fd71);}return _0x40b8e3[_0xdf45('0x20')]();};}function saveUpdates(_0x1a6e0d,_0xc6fa7e){return function(_0x2ea4ac){if(_0x2ea4ac){return _0x2ea4ac[_0xdf45('0x21')](_0x1a6e0d)['then'](function(_0x49c38c){return _0x49c38c;});}return null;};}function removeEntity(_0x5ba1f0,_0x82bd3d){return function(_0x41ca9e){if(_0x41ca9e){return _0x41ca9e[_0xdf45('0x22')]()[_0xdf45('0x23')](function(){_0x5ba1f0['status'](0xcc)[_0xdf45('0x1b')]();});}};}function handleEntityNotFound(_0x3ae1f1,_0x517ed9){return function(_0x10a3fc){if(!_0x10a3fc){_0x3ae1f1[_0xdf45('0x19')](0x194);}return _0x10a3fc;};}function handleError(_0x3ca689,_0x5a2fc6){_0x5a2fc6=_0x5a2fc6||0x1f4;return function(_0x56b826){logger['error'](_0x56b826[_0xdf45('0x24')]);if(_0x56b826[_0xdf45('0x25')]){delete _0x56b826[_0xdf45('0x25')];}_0x3ca689[_0xdf45('0x1a')](_0x5a2fc6)['send'](_0x56b826);};}exports[_0xdf45('0x26')]=function(_0x584cae,_0xce5e62){var _0x325d37={},_0x1978a1={},_0x2b9664={'count':0x0,'rows':[]};var _0x288d53=_['map'](db['SugarcrmAccount'][_0xdf45('0x27')],function(_0x57ef4f){return{'name':_0x57ef4f[_0xdf45('0x28')],'type':_0x57ef4f['type']['key']};});_0x1978a1['model']=_[_0xdf45('0x29')](_0x288d53,_0xdf45('0x25'));_0x1978a1['query']=_[_0xdf45('0x2a')](_0x584cae[_0xdf45('0x2b')]);_0x1978a1[_0xdf45('0x2c')]=_[_0xdf45('0x2d')](_0x1978a1[_0xdf45('0x2e')],_0x1978a1[_0xdf45('0x2b')]);_0x325d37['attributes']=_[_0xdf45('0x2d')](_0x1978a1[_0xdf45('0x2e')],qs[_0xdf45('0x2f')](_0x584cae[_0xdf45('0x2b')]['fields']));_0x325d37[_0xdf45('0x30')]=_0x325d37['attributes'][_0xdf45('0x31')]?_0x325d37[_0xdf45('0x30')]:_0x1978a1[_0xdf45('0x2e')];if(!_0x584cae['query'][_0xdf45('0x32')]('nolimit')){_0x325d37[_0xdf45('0x33')]=qs[_0xdf45('0x33')](_0x584cae[_0xdf45('0x2b')][_0xdf45('0x33')]);_0x325d37[_0xdf45('0x1d')]=qs[_0xdf45('0x1d')](_0x584cae[_0xdf45('0x2b')][_0xdf45('0x1d')]);}_0x325d37[_0xdf45('0x34')]=qs[_0xdf45('0x35')](_0x584cae[_0xdf45('0x2b')][_0xdf45('0x35')]);_0x325d37[_0xdf45('0x36')]=qs[_0xdf45('0x2c')](_[_0xdf45('0x37')](_0x584cae[_0xdf45('0x2b')],_0x1978a1['filters']),_0x288d53);if(_0x584cae[_0xdf45('0x2b')][_0xdf45('0x38')]){_0x325d37[_0xdf45('0x36')]=_[_0xdf45('0x39')](_0x325d37['where'],{'$or':_[_0xdf45('0x29')](_0x288d53,function(_0xe0d9f5){if(_0xe0d9f5[_0xdf45('0x3a')]!=='VIRTUAL'){var _0x3f64ff={};_0x3f64ff[_0xe0d9f5[_0xdf45('0x25')]]={'$like':'%'+_0x584cae['query'][_0xdf45('0x38')]+'%'};return _0x3f64ff;}})});}_0x325d37=_['merge']({},_0x325d37,_0x584cae['options']);var _0x3c084f={'where':_0x325d37[_0xdf45('0x36')]};return db[_0xdf45('0x3b')][_0xdf45('0x1e')](_0x3c084f)[_0xdf45('0x23')](function(_0x4b3718){_0x2b9664['count']=_0x4b3718;if(_0x584cae[_0xdf45('0x2b')]['includeAll']){_0x325d37['include']=[{'all':!![]}];}return db[_0xdf45('0x3b')]['findAll'](_0x325d37);})[_0xdf45('0x23')](function(_0x5d8ebc){_0x2b9664['rows']=_0x5d8ebc;return _0x2b9664;})[_0xdf45('0x23')](respondWithFilteredResult(_0xce5e62,_0x325d37))[_0xdf45('0x3c')](handleError(_0xce5e62,null));};exports[_0xdf45('0x3d')]=function(_0x8fe711,_0x585efc){var _0x2e2dd2={'raw':![],'where':{'id':_0x8fe711[_0xdf45('0x3e')]['id']}},_0x2493ac={};_0x2493ac[_0xdf45('0x2e')]=_['keys'](db['SugarcrmAccount'][_0xdf45('0x27')]);_0x2493ac['query']=_[_0xdf45('0x2a')](_0x8fe711[_0xdf45('0x2b')]);_0x2493ac[_0xdf45('0x2c')]=_[_0xdf45('0x2d')](_0x2493ac[_0xdf45('0x2e')],_0x2493ac[_0xdf45('0x2b')]);_0x2e2dd2[_0xdf45('0x30')]=_[_0xdf45('0x2d')](_0x2493ac['model'],qs['fields'](_0x8fe711[_0xdf45('0x2b')][_0xdf45('0x2f')]));_0x2e2dd2[_0xdf45('0x30')]=_0x2e2dd2['attributes'][_0xdf45('0x31')]?_0x2e2dd2[_0xdf45('0x30')]:_0x2493ac['model'];if(_0x8fe711[_0xdf45('0x2b')][_0xdf45('0x3f')]){_0x2e2dd2['include']=[{'all':!![]}];}_0x2e2dd2=_[_0xdf45('0x39')]({},_0x2e2dd2,_0x8fe711[_0xdf45('0x40')]);return db[_0xdf45('0x3b')][_0xdf45('0x41')](_0x2e2dd2)[_0xdf45('0x23')](handleEntityNotFound(_0x585efc,null))[_0xdf45('0x23')](respondWithResult(_0x585efc,null))['catch'](handleError(_0x585efc,null));};exports[_0xdf45('0x42')]=function(_0x3d4a79,_0x262592){return db[_0xdf45('0x3b')][_0xdf45('0x42')](_0x3d4a79[_0xdf45('0x43')],{})[_0xdf45('0x23')](respondWithResult(_0x262592,0xc9))[_0xdf45('0x3c')](handleError(_0x262592,null));};exports['update']=function(_0xae85db,_0x5495b0){if(_0xae85db[_0xdf45('0x43')]['id']){delete _0xae85db['body']['id'];}return db[_0xdf45('0x3b')][_0xdf45('0x41')]({'where':{'id':_0xae85db['params']['id']}})[_0xdf45('0x23')](handleEntityNotFound(_0x5495b0,null))[_0xdf45('0x23')](saveUpdates(_0xae85db[_0xdf45('0x43')],null))[_0xdf45('0x23')](respondWithResult(_0x5495b0,null))[_0xdf45('0x3c')](handleError(_0x5495b0,null));};exports[_0xdf45('0x22')]=function(_0x34f9cb,_0x59c89e){return db[_0xdf45('0x3b')][_0xdf45('0x41')]({'where':{'id':_0x34f9cb[_0xdf45('0x3e')]['id']}})['then'](handleEntityNotFound(_0x59c89e,null))['then'](removeEntity(_0x59c89e,null))[_0xdf45('0x3c')](handleError(_0x59c89e,null));};exports[_0xdf45('0x44')]=function(_0xd75b54,_0x1a42f8,_0x3f49f3){var _0x39d311={};var _0x2b6ad3={};var _0x1b5052;var _0xa8f1e2;return db[_0xdf45('0x3b')][_0xdf45('0x45')]({'where':{'id':_0xd75b54[_0xdf45('0x3e')]['id']}})[_0xdf45('0x23')](handleEntityNotFound(_0x1a42f8,null))[_0xdf45('0x23')](function(_0x347e7c){if(_0x347e7c){_0x1b5052=_0x347e7c;_0x2b6ad3[_0xdf45('0x2e')]=_[_0xdf45('0x2a')](db[_0xdf45('0x46')][_0xdf45('0x27')]);_0x2b6ad3[_0xdf45('0x2b')]=_[_0xdf45('0x2a')](_0xd75b54[_0xdf45('0x2b')]);_0x2b6ad3[_0xdf45('0x2c')]=_[_0xdf45('0x2d')](_0x2b6ad3['model'],_0x2b6ad3['query']);_0x39d311[_0xdf45('0x30')]=_['intersection'](_0x2b6ad3[_0xdf45('0x2e')],qs['fields'](_0xd75b54['query'][_0xdf45('0x2f')]));_0x39d311[_0xdf45('0x30')]=_0x39d311[_0xdf45('0x30')][_0xdf45('0x31')]?_0x39d311[_0xdf45('0x30')]:_0x2b6ad3[_0xdf45('0x2e')];_0x39d311[_0xdf45('0x34')]=qs['sort'](_0xd75b54[_0xdf45('0x2b')][_0xdf45('0x35')]);_0x39d311[_0xdf45('0x36')]=qs[_0xdf45('0x2c')](_[_0xdf45('0x37')](_0xd75b54[_0xdf45('0x2b')],_0x2b6ad3[_0xdf45('0x2c')]));if(_0xd75b54[_0xdf45('0x2b')]['filter']){_0x39d311[_0xdf45('0x36')]=_[_0xdf45('0x39')](_0x39d311[_0xdf45('0x36')],{'$or':_[_0xdf45('0x29')](_0x39d311['attributes'],function(_0x1080f3){var _0x52b11d={};_0x52b11d[_0x1080f3]={'$like':'%'+_0xd75b54['query'][_0xdf45('0x38')]+'%'};return _0x52b11d;})});}_0x39d311=_[_0xdf45('0x39')]({},_0x39d311,_0xd75b54[_0xdf45('0x40')]);return _0x1b5052[_0xdf45('0x44')](_0x39d311);}})[_0xdf45('0x23')](function(_0x5ad6af){if(_0x5ad6af){_0xa8f1e2=_0x5ad6af[_0xdf45('0x31')];if(!_0xd75b54['query'][_0xdf45('0x32')](_0xdf45('0x47'))){_0x39d311[_0xdf45('0x33')]=qs['limit'](_0xd75b54['query'][_0xdf45('0x33')]);_0x39d311[_0xdf45('0x1d')]=qs[_0xdf45('0x1d')](_0xd75b54[_0xdf45('0x2b')][_0xdf45('0x1d')]);}return _0x1b5052['getConfigurations'](_0x39d311);}})['then'](function(_0x481f18){if(_0x481f18){return _0x481f18?{'count':_0xa8f1e2,'rows':_0x481f18}:null;}})['then'](respondWithResult(_0x1a42f8,null))['catch'](handleError(_0x1a42f8,null));};exports[_0xdf45('0x48')]=function(_0x5ce47a,_0x153643,_0xbda834){if(_0x5ce47a[_0xdf45('0x43')]['id']){delete _0x5ce47a[_0xdf45('0x43')]['id'];}return db[_0xdf45('0x3b')][_0xdf45('0x45')]({'where':{'id':_0x5ce47a['params']['id']}})[_0xdf45('0x23')](handleEntityNotFound(_0x153643,null))[_0xdf45('0x23')](function(_0x479853){if(_0x479853){_0x5ce47a[_0xdf45('0x43')]['AccountId']=_0x479853['id'];_0x5ce47a[_0xdf45('0x43')][_0xdf45('0x49')]=integrations[_0xdf45('0x4a')](_0x5ce47a[_0xdf45('0x43')][_0xdf45('0x4b')],_0x5ce47a[_0xdf45('0x43')][_0xdf45('0x3a')]);_0x5ce47a[_0xdf45('0x43')][_0xdf45('0x4c')]=integrations[_0xdf45('0x4d')](_0x5ce47a['body'][_0xdf45('0x4b')],_0x5ce47a[_0xdf45('0x43')][_0xdf45('0x3a')]);return db[_0xdf45('0x46')][_0xdf45('0x42')](_0x5ce47a['body'],{'include':[{'model':db[_0xdf45('0x4e')],'as':_0xdf45('0x49')},{'model':db[_0xdf45('0x4e')],'as':_0xdf45('0x4c')}]});}return null;})[_0xdf45('0x23')](respondWithResult(_0x153643,null))[_0xdf45('0x3c')](handleError(_0x153643,null));};exports[_0xdf45('0x4f')]=function(_0x2da5c5,_0x1f871a,_0x1ecd1a){var _0x52dd31='';var _0x3c9d7a=['id','name',_0xdf45('0x50'),_0xdf45('0x51'),'description','date_start',_0xdf45('0x52'),'duration_minutes',_0xdf45('0x53'),_0xdf45('0x54'),_0xdf45('0x55'),_0xdf45('0x56')];return db[_0xdf45('0x3b')]['findOne']({'where':{'id':_0x2da5c5[_0xdf45('0x3e')]['id']},'attributes':['id','username','password',_0xdf45('0x57')]})['then'](handleEntityNotFound(_0x1f871a,null))[_0xdf45('0x23')](function(_0xdceb13){if(_0xdceb13){_0x52dd31=_0xdceb13[_0xdf45('0x57')];var _0x37dcc0=_0x52dd31[_0xdf45('0x58')](-0x1);if(_0x37dcc0==='/'){_0x52dd31=_0x52dd31[_0xdf45('0x59')](0x0,_0x52dd31[_0xdf45('0x5a')](_0x37dcc0));}return rp({'method':_0xdf45('0x5b'),'uri':util[_0xdf45('0x5c')](_0xdf45('0x5d'),_0x52dd31,_0xdf45('0x5e')),'json':!![],'form':{'method':_0xdf45('0x5f'),'input_type':_0xdf45('0x60'),'response_type':_0xdf45('0x60'),'rest_data':JSON[_0xdf45('0x61')]({'user_auth':{'user_name':_0xdceb13[_0xdf45('0x62')],'password':_0xdceb13[_0xdf45('0x63')],'encryption':_0xdf45('0x64')},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0xdf45('0x23')](function(_0x234aed){if(_0x234aed&&_0x234aed[_0xdf45('0x25')]!==_0xdf45('0x65')&&_0x234aed[_0xdf45('0x25')]!==_0xdf45('0x66')){return rp({'method':_0xdf45('0x5b'),'uri':util['format']('%s%s',_0x52dd31,_0xdf45('0x5e')),'json':!![],'form':{'method':'get_module_fields','input_type':_0xdf45('0x60'),'response_type':_0xdf45('0x60'),'rest_data':JSON[_0xdf45('0x61')]({'session':_0x234aed['id'],'module_name':_0xdf45('0x67')})}})[_0xdf45('0x23')](function(_0xff2619){if(_0xff2619){var _0x2a647a=_[_0xdf45('0x68')](_0xff2619[_0xdf45('0x69')]);_[_0xdf45('0x6a')](_0x2a647a,function(_0x1e83a1){return _0x3c9d7a[_0xdf45('0x6b')](_0x1e83a1[_0xdf45('0x25')]);});return{'count':_0x2a647a['length'],'rows':_[_0xdf45('0x29')](_0x2a647a,function(_0x5e19b2){return{'id':_0x5e19b2[_0xdf45('0x25')],'name':_0x5e19b2[_0xdf45('0x6c')],'custom':_['endsWith'](_0x5e19b2[_0xdf45('0x25')],'_c')?!![]:![],'options':_0x5e19b2[_0xdf45('0x40')]?_[_0xdf45('0x29')](_[_0xdf45('0x68')](_0x5e19b2['options']),function(_0x3df38d){return{'name':_0x3df38d['value'],'value':_0x3df38d[_0xdf45('0x25')]};}):[]};})};}})[_0xdf45('0x23')](respondWithResult(_0x1f871a,null))[_0xdf45('0x3c')](function(_0x577e83){var _0x3fd7f4=_0x2da5c5['query'][_0xdf45('0x6d')]?0x1f4:_0x577e83[_0xdf45('0x6e')]||0x1f4;logger['error'](_0xdf45('0x6f'),_0xdf45('0x4f'),_0x3fd7f4,JSON['stringify'](_0x577e83));delete _0x577e83[_0xdf45('0x25')];if(_0x3fd7f4===0x191){_0x3fd7f4=0x190;}_0x1f871a[_0xdf45('0x1a')](_0x3fd7f4)['send'](_0x2da5c5['query'][_0xdf45('0x6d')]?{'message':_0xdf45('0x70'),'statusCode':_0x577e83['statusCode']}:_0x577e83);});}else{var _0x1d1089=0x1f4;_0x1f871a[_0xdf45('0x1a')](_0x1d1089)[_0xdf45('0x71')]({'message':_0xdf45('0x70'),'statusCode':0x190});}});};