Built motion from commit d1eab355.|2.6.28
[motion2.git] / server / api / plugin / plugin.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 _0xb098=['unlinkSync','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','webhookGet','resolve','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','format','%s%s','headers','content-type','endsWith','statusCode','\x27PATH\x27\x20parameter\x20not\x20specified','content-length','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','extract-zip','archiver','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','end','status','json','undefined','count','offset','limit','set','save','then','destroy','get','Plugins','UserProfileResource','sendStatus','error','stack','name','index','rawAttributes','fieldName','key','model','map','query','intersection','attributes','fields','length','nolimit','order','sort','pick','filters','filter','where','merge','type','options','includeAll','include','Plugin','findAll','catch','show','params','find','download','join','root','server/files/plugins','createWriteStream','zip','warning','code','Sequelize','Error\x20while\x20generating\x20the\x20zip\x20archive','Error','pipe','**/*','dirname','basename','node_modules/**/*','close','existsSync','Plugin\x20not\x20found','%s.zip','Error\x20while\x20downloading\x20the\x20plugin','info','Download\x20completed','Temporary\x20file\x20removed','upload','filename','extname','file','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','0777','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','some','Plugin\x20manifest\x20missing','readFileSync','manifest.json','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','Invalid\x20manifest:\x20parameters\x20missing','parameters','Invalid\x20manifest:\x20views\x20missing','views','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','icon','html','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','script','create','body','role','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','send'];(function(_0x20845e,_0x211e78){var _0x28cf2b=function(_0x31d613){while(--_0x31d613){_0x20845e['push'](_0x20845e['shift']());}};_0x28cf2b(++_0x211e78);}(_0xb098,0xc1));var _0x8b09=function(_0x39d28a,_0x1a049a){_0x39d28a=_0x39d28a-0x0;var _0x1e4614=_0xb098[_0x39d28a];return _0x1e4614;};'use strict';var emlformat=require(_0x8b09('0x0'));var rimraf=require(_0x8b09('0x1'));var zipdir=require(_0x8b09('0x2'));var jsonpatch=require(_0x8b09('0x3'));var rp=require(_0x8b09('0x4'));var moment=require(_0x8b09('0x5'));var BPromise=require(_0x8b09('0x6'));var Mustache=require(_0x8b09('0x7'));var util=require('util');var path=require(_0x8b09('0x8'));var sox=require(_0x8b09('0x9'));var csv=require(_0x8b09('0xa'));var ejs=require(_0x8b09('0xb'));var fs=require('fs');var fs_extra=require(_0x8b09('0xc'));var _=require(_0x8b09('0xd'));var squel=require(_0x8b09('0xe'));var crypto=require(_0x8b09('0xf'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x8b09('0x10'));var Papa=require(_0x8b09('0x11'));var extract=require(_0x8b09('0x12'));var rimraf=require('rimraf');var archiver=require(_0x8b09('0x13'));var Redis=require('ioredis');var authService=require(_0x8b09('0x14'));var qs=require(_0x8b09('0x15'));var as=require(_0x8b09('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8b09('0x17'))(_0x8b09('0x18'));var utils=require(_0x8b09('0x19'));var config=require(_0x8b09('0x1a'));var licenseUtil=require(_0x8b09('0x1b'));var db=require(_0x8b09('0x1c'))['db'];config[_0x8b09('0x1d')]=_[_0x8b09('0x1e')](config[_0x8b09('0x1d')],{'host':_0x8b09('0x1f'),'port':0x18eb});var socket=require(_0x8b09('0x20'))(new Redis(config[_0x8b09('0x1d')]));require(_0x8b09('0x21'))[_0x8b09('0x22')](socket);function respondWithStatusCode(_0x316ac9,_0x415071){_0x415071=_0x415071||0xcc;return function(_0x4f34c5){if(_0x4f34c5){return _0x316ac9['sendStatus'](_0x415071);}return _0x316ac9['status'](_0x415071)[_0x8b09('0x23')]();};}function respondWithResult(_0x4e698d,_0x4184f0){_0x4184f0=_0x4184f0||0xc8;return function(_0x260ff3){if(_0x260ff3){return _0x4e698d[_0x8b09('0x24')](_0x4184f0)[_0x8b09('0x25')](_0x260ff3);}};}function respondWithFilteredResult(_0x5e17ea,_0xcec008){return function(_0x4e6c5e){if(_0x4e6c5e){var _0x4e34cb=typeof _0xcec008['offset']===_0x8b09('0x26')&&typeof _0xcec008['limit']==='undefined';var _0x82c1bf=_0x4e6c5e[_0x8b09('0x27')];var _0x8c00f8=_0x4e34cb?0x0:_0xcec008[_0x8b09('0x28')];var _0x99e15d=_0x4e34cb?_0x4e6c5e[_0x8b09('0x27')]:_0xcec008[_0x8b09('0x28')]+_0xcec008[_0x8b09('0x29')];var _0x3bbdd7;if(_0x99e15d>=_0x82c1bf){_0x99e15d=_0x82c1bf;_0x3bbdd7=0xc8;}else{_0x3bbdd7=0xce;}_0x5e17ea['status'](_0x3bbdd7);return _0x5e17ea[_0x8b09('0x2a')]('Content-Range',_0x8c00f8+'-'+_0x99e15d+'/'+_0x82c1bf)[_0x8b09('0x25')](_0x4e6c5e);}return null;};}function patchUpdates(_0x3ceee7){return function(_0x5b70f9){try{jsonpatch['apply'](_0x5b70f9,_0x3ceee7,!![]);}catch(_0x33ffe7){return BPromise['reject'](_0x33ffe7);}return _0x5b70f9[_0x8b09('0x2b')]();};}function saveUpdates(_0x9b40d9,_0x517ac5){return function(_0x6072b2){if(_0x6072b2){return _0x6072b2['update'](_0x9b40d9)[_0x8b09('0x2c')](function(_0x34a588){return _0x34a588;});}return null;};}function removeEntity(_0x336f5c,_0x26be7f){return function(_0x16c91c){if(_0x16c91c){return _0x16c91c[_0x8b09('0x2d')]()[_0x8b09('0x2c')](function(){var _0x23a087=_0x16c91c[_0x8b09('0x2e')]({'plain':!![]});var _0x2edd6b=_0x8b09('0x2f');return db[_0x8b09('0x30')][_0x8b09('0x2d')]({'where':{'type':_0x2edd6b,'resourceId':_0x23a087['id']}})['then'](function(){return _0x16c91c;});})[_0x8b09('0x2c')](function(){_0x336f5c[_0x8b09('0x24')](0xcc)[_0x8b09('0x23')]();});}};}function handleEntityNotFound(_0x235b64,_0x17b3a1){return function(_0x3635c9){if(!_0x3635c9){_0x235b64[_0x8b09('0x31')](0x194);}return _0x3635c9;};}function handleError(_0x470d62,_0x21c328){_0x21c328=_0x21c328||0x1f4;return function(_0xe5b76a){logger[_0x8b09('0x32')](_0xe5b76a[_0x8b09('0x33')]);if(_0xe5b76a[_0x8b09('0x34')]){delete _0xe5b76a['name'];}_0x470d62['status'](_0x21c328)['send'](_0xe5b76a);};}exports[_0x8b09('0x35')]=function(_0x5a1fed,_0x45ac73){var _0x1f6644={},_0x43cdee={},_0x6f9f62={'count':0x0,'rows':[]};var _0x1972ae=_['map'](db['Plugin'][_0x8b09('0x36')],function(_0x13c840){return{'name':_0x13c840[_0x8b09('0x37')],'type':_0x13c840['type'][_0x8b09('0x38')]};});_0x43cdee[_0x8b09('0x39')]=_[_0x8b09('0x3a')](_0x1972ae,_0x8b09('0x34'));_0x43cdee[_0x8b09('0x3b')]=_['keys'](_0x5a1fed[_0x8b09('0x3b')]);_0x43cdee['filters']=_[_0x8b09('0x3c')](_0x43cdee[_0x8b09('0x39')],_0x43cdee[_0x8b09('0x3b')]);_0x1f6644[_0x8b09('0x3d')]=_['intersection'](_0x43cdee['model'],qs['fields'](_0x5a1fed[_0x8b09('0x3b')][_0x8b09('0x3e')]));_0x1f6644['attributes']=_0x1f6644[_0x8b09('0x3d')][_0x8b09('0x3f')]?_0x1f6644[_0x8b09('0x3d')]:_0x43cdee['model'];if(!_0x5a1fed[_0x8b09('0x3b')]['hasOwnProperty'](_0x8b09('0x40'))){_0x1f6644[_0x8b09('0x29')]=qs['limit'](_0x5a1fed[_0x8b09('0x3b')]['limit']);_0x1f6644[_0x8b09('0x28')]=qs[_0x8b09('0x28')](_0x5a1fed[_0x8b09('0x3b')]['offset']);}_0x1f6644[_0x8b09('0x41')]=qs['sort'](_0x5a1fed[_0x8b09('0x3b')][_0x8b09('0x42')]);_0x1f6644['where']=qs['filters'](_[_0x8b09('0x43')](_0x5a1fed[_0x8b09('0x3b')],_0x43cdee[_0x8b09('0x44')]),_0x1972ae);if(_0x5a1fed['query'][_0x8b09('0x45')]){_0x1f6644[_0x8b09('0x46')]=_[_0x8b09('0x47')](_0x1f6644[_0x8b09('0x46')],{'$or':_[_0x8b09('0x3a')](_0x1972ae,function(_0x230773){if(_0x230773[_0x8b09('0x48')]!=='VIRTUAL'){var _0x448234={};_0x448234[_0x230773[_0x8b09('0x34')]]={'$like':'%'+_0x5a1fed['query'][_0x8b09('0x45')]+'%'};return _0x448234;}})});}_0x1f6644=_[_0x8b09('0x47')]({},_0x1f6644,_0x5a1fed[_0x8b09('0x49')]);var _0x1b5b80={'where':_0x1f6644[_0x8b09('0x46')]};return db['Plugin'][_0x8b09('0x27')](_0x1b5b80)['then'](function(_0x4f253f){_0x6f9f62['count']=_0x4f253f;if(_0x5a1fed['query'][_0x8b09('0x4a')]){_0x1f6644[_0x8b09('0x4b')]=[{'all':!![]}];}return db[_0x8b09('0x4c')][_0x8b09('0x4d')](_0x1f6644);})[_0x8b09('0x2c')](function(_0xa59447){_0x6f9f62['rows']=_0xa59447;return _0x6f9f62;})[_0x8b09('0x2c')](respondWithFilteredResult(_0x45ac73,_0x1f6644))[_0x8b09('0x4e')](handleError(_0x45ac73,null));};exports[_0x8b09('0x4f')]=function(_0x500cfa,_0x600a2b){var _0x4b9ffc={'raw':!![],'where':{'id':_0x500cfa[_0x8b09('0x50')]['id']}},_0x52ff99={};_0x52ff99[_0x8b09('0x39')]=_['keys'](db[_0x8b09('0x4c')][_0x8b09('0x36')]);_0x52ff99[_0x8b09('0x3b')]=_['keys'](_0x500cfa[_0x8b09('0x3b')]);_0x52ff99[_0x8b09('0x44')]=_[_0x8b09('0x3c')](_0x52ff99['model'],_0x52ff99['query']);_0x4b9ffc['attributes']=_['intersection'](_0x52ff99[_0x8b09('0x39')],qs[_0x8b09('0x3e')](_0x500cfa[_0x8b09('0x3b')][_0x8b09('0x3e')]));_0x4b9ffc[_0x8b09('0x3d')]=_0x4b9ffc[_0x8b09('0x3d')]['length']?_0x4b9ffc[_0x8b09('0x3d')]:_0x52ff99['model'];if(_0x500cfa[_0x8b09('0x3b')][_0x8b09('0x4a')]){_0x4b9ffc[_0x8b09('0x4b')]=[{'all':!![]}];}_0x4b9ffc=_[_0x8b09('0x47')]({},_0x4b9ffc,_0x500cfa[_0x8b09('0x49')]);return db['Plugin'][_0x8b09('0x51')](_0x4b9ffc)[_0x8b09('0x2c')](handleEntityNotFound(_0x600a2b,null))[_0x8b09('0x2c')](respondWithResult(_0x600a2b,null))[_0x8b09('0x4e')](handleError(_0x600a2b,null));};exports[_0x8b09('0x52')]=function(_0x10fc9b,_0x1a1d23,_0x413125){return db['Plugin']['find']({'where':{'id':_0x10fc9b[_0x8b09('0x50')]['id']},'attributes':['name','path'],'raw':!![]})[_0x8b09('0x2c')](handleEntityNotFound(_0x1a1d23,null))[_0x8b09('0x2c')](function(_0x324cb6){if(_0x324cb6){var _0x3887f7=path[_0x8b09('0x53')](config[_0x8b09('0x54')],_0x8b09('0x55'),util['format']('%s.zip',path['basename'](_0x324cb6[_0x8b09('0x8')])));var _0x36b794=fs[_0x8b09('0x56')](_0x3887f7);var _0x7ab65e=archiver(_0x8b09('0x57'),{'zlib':{'level':0x9}});_0x7ab65e['on'](_0x8b09('0x58'),function(_0x531047){if(_0x531047[_0x8b09('0x59')]==='ENOENT'){logger[_0x8b09('0x32')](_0x531047);}else{throw new db[(_0x8b09('0x5a'))]['Error'](_0x8b09('0x5b'));}});_0x7ab65e['on']('error',function(_0x8b78d8){throw new db[(_0x8b09('0x5a'))][(_0x8b09('0x5c'))](_0x8b09('0x5b'));});_0x7ab65e[_0x8b09('0x5d')](_0x36b794);_0x7ab65e['glob'](_0x8b09('0x5e'),{'cwd':path[_0x8b09('0x53')](config['root'],'server/files/plugins',path[_0x8b09('0x5f')](_0x324cb6['path'])),'ignore':[path[_0x8b09('0x53')](path[_0x8b09('0x60')](_0x324cb6[_0x8b09('0x8')]),_0x8b09('0x61')),path[_0x8b09('0x53')](path['basename'](_0x324cb6[_0x8b09('0x8')]),'attachments/**/*')],'nodir':!![]})['finalize']();_0x36b794['on'](_0x8b09('0x62'),function(){if(!fs[_0x8b09('0x63')](_0x3887f7)){throw new db[(_0x8b09('0x5a'))][(_0x8b09('0x5c'))](_0x8b09('0x64'));}return _0x1a1d23[_0x8b09('0x52')](_0x3887f7,util['format'](_0x8b09('0x65'),path[_0x8b09('0x60')](_0x324cb6[_0x8b09('0x8')])),function(_0x5cebeb){if(_0x5cebeb){throw new db[(_0x8b09('0x5a'))][(_0x8b09('0x5c'))](_0x8b09('0x66'));}fs['unlinkSync'](_0x3887f7);logger[_0x8b09('0x67')](_0x8b09('0x68'));logger[_0x8b09('0x67')](_0x8b09('0x69'));});});}return null;})[_0x8b09('0x4e')](handleError(_0x1a1d23,null));};exports[_0x8b09('0x6a')]=function(_0x4bcf9d,_0x816e28,_0x37cf2e){var _0x7ca3d1=path[_0x8b09('0x60')](_0x4bcf9d['file'][_0x8b09('0x6b')],path[_0x8b09('0x6c')](_0x4bcf9d[_0x8b09('0x6d')][_0x8b09('0x6b')]));var _0x3fe135=path[_0x8b09('0x53')](config[_0x8b09('0x54')],_0x8b09('0x55'),_0x4bcf9d[_0x8b09('0x6d')]['filename']);var _0x5ad459=path['join'](config[_0x8b09('0x54')],_0x8b09('0x55'),_0x7ca3d1);logger[_0x8b09('0x67')](_0x8b09('0x6e'),_0x3fe135);logger[_0x8b09('0x67')](_0x8b09('0x6f'),_0x5ad459);try{fs['chmodSync'](_0x3fe135,parseInt(_0x8b09('0x70'),0x8));extract(_0x3fe135,{'dir':_0x5ad459},function(_0x55039a){if(_0x55039a){logger[_0x8b09('0x32')](_0x55039a);handleError(_0x55039a,!![]);};var _0x2cf12c=fs['readdirSync'](_0x5ad459);if(_0x2cf12c['length']>0x1){removeReferences(_0x3fe135,_0x5ad459);logger['error'](_0x8b09('0x71'));return _0x37cf2e(new Error(_0x8b09('0x71')));}var _0x22d631=fs[_0x8b09('0x72')](path[_0x8b09('0x53')](_0x5ad459,_0x2cf12c[0x0]));if(_0x22d631[_0x8b09('0x73')]()){removeReferences(_0x3fe135,_0x5ad459);logger[_0x8b09('0x32')](_0x8b09('0x71'));return _0x37cf2e(new Error(_0x8b09('0x71')));}if(_0x22d631[_0x8b09('0x74')]()){var _0x3ef36f=fs['readdirSync'](path[_0x8b09('0x53')](_0x5ad459,_0x2cf12c[0x0]));if(_0x3ef36f[_0x8b09('0x3f')]===0x0){removeReferences(_0x3fe135,_0x5ad459);logger[_0x8b09('0x32')]('Invalid\x20plugin\x20structure');return _0x37cf2e(new Error('Invalid\x20plugin\x20structure'));}var _0x295ecf=_0x3ef36f[_0x8b09('0x75')](function(_0x52a7db){return _0x52a7db==='manifest.json';});if(!_0x295ecf){return _0x37cf2e(new Error(_0x8b09('0x76')));}var _0x4f8aa1=fs[_0x8b09('0x77')](path['join'](_0x5ad459,_0x2cf12c[0x0],_0x8b09('0x78')));var _0x587795=JSON['parse'](_0x4f8aa1);if(_0x8b09('0x26')==typeof _0x587795[_0x8b09('0x34')]){return _0x37cf2e(new Error(_0x8b09('0x79')));}if(_0x8b09('0x26')==typeof _0x587795[_0x8b09('0x48')]){return _0x37cf2e(new Error(_0x8b09('0x7a')));}if('undefined'==typeof _0x587795[_0x8b09('0x7b')]){return _0x37cf2e(new Error(_0x8b09('0x7c')));}if(_0x8b09('0x26')==typeof _0x587795['parameters']){return _0x37cf2e(new Error(_0x8b09('0x7d')));}if(_0x587795[_0x8b09('0x48')]==='html'){if(_0x8b09('0x26')==typeof _0x587795[_0x8b09('0x7e')]['views']){return _0x37cf2e(new Error(_0x8b09('0x7f')));}if('undefined'==typeof _0x587795['parameters'][_0x8b09('0x80')][_0x8b09('0x81')]&&_0x8b09('0x26')==typeof _0x587795[_0x8b09('0x7e')][_0x8b09('0x80')][_0x8b09('0x82')]){return _0x37cf2e(new Error(_0x8b09('0x83')));}}else if(_0x587795['type']==='script'){if(_0x8b09('0x26')==typeof _0x587795[_0x8b09('0x7e')][_0x8b09('0x84')]){return _0x37cf2e(new Error(_0x8b09('0x85')));}if(_0x8b09('0x26')==typeof _0x587795[_0x8b09('0x7e')][_0x8b09('0x86')]){return _0x37cf2e(new Error('Invalid\x20manifest:\x20script\x20path\x20missing'));}}else{return _0x37cf2e(new Error(_0x8b09('0x87')));}var _0x491f21=_0x587795[_0x8b09('0x34')];var _0x57a5c0=_0x587795[_0x8b09('0x88')];var _0x376e24=_0x587795[_0x8b09('0x48')];var _0x40ab95=_0x587795[_0x8b09('0x89')]?_0x587795['sidebar']:'always';var _0xe7ef4f=_0x587795[_0x8b09('0x8a')]?_0x587795[_0x8b09('0x8a')]:'icon-apps';var _0x3ffe57='';var _0x3c3fe7='';var _0x3a990a='';var _0x861baf='';var _0x1af220=_0x587795[_0x8b09('0x7b')];if(_0x376e24===_0x8b09('0x8b')){if(_0x8b09('0x26')!=typeof _0x587795[_0x8b09('0x7e')][_0x8b09('0x80')][_0x8b09('0x81')]){var _0x53f248=_0x587795[_0x8b09('0x7e')]['views']['admin'];if(!/^(f|ht)tps?:\/\//i[_0x8b09('0x8c')](_0x53f248)){_0x3ffe57=path[_0x8b09('0x53')](_0x8b09('0x8d'),_0x7ca3d1,_0x2cf12c[0x0],_0x53f248);}else{_0x3ffe57=_0x53f248;}}else{logger['info'](_0x8b09('0x8e'));}if(_0x8b09('0x26')!=typeof _0x587795[_0x8b09('0x7e')]['views'][_0x8b09('0x82')]){var _0x119ba0=_0x587795['parameters']['views'][_0x8b09('0x82')];if(!/^(f|ht)tps?:\/\//i['test'](_0x119ba0)){_0x3c3fe7=path[_0x8b09('0x53')]('plugins',_0x7ca3d1,_0x2cf12c[0x0],_0x119ba0);}else{_0x3c3fe7=_0x119ba0;}}else{logger['info'](_0x8b09('0x8f'));}}else if(_0x376e24===_0x8b09('0x90')){_0x3a990a=_0x587795[_0x8b09('0x7e')][_0x8b09('0x84')];_0x861baf=_0x587795[_0x8b09('0x7e')]['scriptPath'];if(_0x8b09('0x26')!=typeof _0x587795[_0x8b09('0x7e')][_0x8b09('0x80')]){if(_0x8b09('0x26')!=typeof _0x587795[_0x8b09('0x7e')][_0x8b09('0x80')][_0x8b09('0x81')]){var _0x53f248=_0x587795[_0x8b09('0x7e')][_0x8b09('0x80')][_0x8b09('0x81')];if(!/^(f|ht)tps?:\/\//i[_0x8b09('0x8c')](_0x53f248)){_0x3ffe57=path[_0x8b09('0x53')](_0x8b09('0x8d'),_0x7ca3d1,_0x2cf12c[0x0],_0x53f248);}else{_0x3ffe57=_0x53f248;}}if('undefined'!=typeof _0x587795[_0x8b09('0x7e')][_0x8b09('0x80')][_0x8b09('0x82')]){var _0x119ba0=_0x587795[_0x8b09('0x7e')]['views'][_0x8b09('0x82')];if(!/^(f|ht)tps?:\/\//i[_0x8b09('0x8c')](_0x119ba0)){_0x3c3fe7=path[_0x8b09('0x53')](_0x8b09('0x8d'),_0x7ca3d1,_0x2cf12c[0x0],_0x119ba0);}else{_0x3c3fe7=_0x119ba0;}}}}var _0x2c483f={'name':_0x491f21,'description':_0x57a5c0,'path':path[_0x8b09('0x53')](_0x7ca3d1,_0x2cf12c[0x0]),'type':_0x376e24,'sidebar':_0x40ab95,'icon':_0xe7ef4f,'adminUrl':_0x3ffe57,'agentUrl':_0x3c3fe7,'scriptName':_0x3a990a,'scriptPath':_0x861baf,'version':_0x1af220};removeReferences(_0x3fe135,null);return db[_0x8b09('0x4c')][_0x8b09('0x91')](_0x2c483f)[_0x8b09('0x2c')](function(_0x3e138d){var _0x3a36e4={'role':_0x4bcf9d[_0x8b09('0x92')][_0x8b09('0x93')],'userProfileId':_0x4bcf9d[_0x8b09('0x92')]['userProfileId']};if(!_0x3a36e4)throw new Error(_0x8b09('0x94'));if(_0x3a36e4['role']==='user'){var _0x405139=_0x3e138d[_0x8b09('0x2e')]({'plain':!![]});return db[_0x8b09('0x95')][_0x8b09('0x51')]({'where':{'name':_0x8b09('0x2f'),'userProfileId':_0x3a36e4[_0x8b09('0x96')]},'raw':!![]})['then'](function(_0x39d3e5){if(_0x39d3e5&&_0x39d3e5[_0x8b09('0x97')]===0x0){return db['UserProfileResource'][_0x8b09('0x91')]({'name':_0x405139['name'],'resourceId':_0x405139['id'],'type':_0x39d3e5[_0x8b09('0x34')],'sectionId':_0x39d3e5['id']},{})[_0x8b09('0x2c')](function(){return _0x3e138d;});}else{return _0x3e138d;}})[_0x8b09('0x4e')](function(_0x2d969c){logger[_0x8b09('0x32')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2d969c);throw _0x2d969c;});}return _0x3e138d;})[_0x8b09('0x2c')](respondWithResult(_0x816e28,null))[_0x8b09('0x4e')](handleError(_0x816e28,null));}});}catch(_0x1ab3bb){_0x816e28['status'](0x1f4)[_0x8b09('0x98')](_0x1ab3bb);}};function removeReferences(_0x53a676,_0x241bcd){try{if(_0x53a676){fs[_0x8b09('0x99')](_0x53a676);logger[_0x8b09('0x67')](_0x8b09('0x9a'));}if(_0x241bcd){rimraf(_0x241bcd,function(){});logger[_0x8b09('0x67')](_0x8b09('0x9b'));}}catch(_0x25e481){logger[_0x8b09('0x32')](_0x25e481);}}exports['update']=function(_0x55813b,_0x3eafab,_0x20f649){return db[_0x8b09('0x4c')][_0x8b09('0x51')]({'where':{'id':_0x55813b['params']['id']}})[_0x8b09('0x2c')](handleEntityNotFound(_0x3eafab,null))[_0x8b09('0x2c')](saveUpdates(_0x55813b['body'],null))[_0x8b09('0x2c')](respondWithResult(_0x3eafab,null))[_0x8b09('0x4e')](handleError(_0x3eafab,null));};exports[_0x8b09('0x9c')]=function(_0x4094a8,_0x10c1f4,_0x4e577b){return db[_0x8b09('0x4c')][_0x8b09('0x51')]({'where':{'id':_0x4094a8['params']['id']}})[_0x8b09('0x2c')](function(_0x209cc9){if(_0x209cc9){return _0x209cc9[_0x8b09('0x2d')]();}})['then'](function(_0x25377c){rimraf(path['join'](config['root'],_0x8b09('0x55'),path[_0x8b09('0x5f')](_0x25377c[_0x8b09('0x8')])),function(){});return _0x25377c;})[_0x8b09('0x2c')](handleEntityNotFound(_0x10c1f4,null))[_0x8b09('0x2c')](respondWithStatusCode(_0x10c1f4,null))[_0x8b09('0x4e')](handleError(_0x10c1f4,null));};exports[_0x8b09('0x9d')]=function(_0x4dcc7d,_0xf43bd0,_0x45dee3){return BPromise[_0x8b09('0x9e')]()[_0x8b09('0x2c')](function(){if(!_0x4dcc7d[_0x8b09('0x3b')][_0x8b09('0x8')]){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0x4dcc7d[_0x8b09('0x3b')][_0x8b09('0x9f')]){throw new Error(_0x8b09('0xa0'));}var _0x2bc6f3=_0x4dcc7d[_0x8b09('0x3b')][_0x8b09('0xa1')]?_0x4dcc7d[_0x8b09('0x3b')][_0x8b09('0xa1')]+':'+_0x4dcc7d[_0x8b09('0x3b')][_0x8b09('0x9f')]:_0x8b09('0xa2')+_0x4dcc7d[_0x8b09('0x3b')][_0x8b09('0x9f')];var _0x2fc0eb=_0x4dcc7d[_0x8b09('0x3b')][_0x8b09('0x25')]?_0x4dcc7d[_0x8b09('0x3b')][_0x8b09('0x25')]:!![];var _0x25655b=_0x4dcc7d[_0x8b09('0x3b')][_0x8b09('0xa3')]?_0x4dcc7d[_0x8b09('0x3b')][_0x8b09('0xa3')]:null;var _0x356d1f={'method':_0x4dcc7d[_0x8b09('0xa4')],'uri':util[_0x8b09('0xa5')](_0x8b09('0xa6'),_0x2bc6f3,_0x4dcc7d[_0x8b09('0x3b')][_0x8b09('0x8')]),'json':_0x2fc0eb,'resolveWithFullResponse':!![],'encoding':_0x25655b,'qs':_0x4dcc7d[_0x8b09('0x3b')]};if(_0x4dcc7d[_0x8b09('0xa7')]){_0x356d1f[_0x8b09('0xa7')]=_0x4dcc7d[_0x8b09('0xa7')];if(_0x356d1f[_0x8b09('0xa7')]['content-length']){delete _0x356d1f[_0x8b09('0xa7')]['content-length'];}}if(_0x356d1f[_0x8b09('0xa7')][_0x8b09('0xa8')]){delete _0x356d1f[_0x8b09('0xa7')][_0x8b09('0xa8')];}return rp(_0x356d1f);})[_0x8b09('0x2c')](function(_0x3ed898){if(_0x3ed898){_0xf43bd0[_0x8b09('0x2a')](_0x3ed898[_0x8b09('0xa7')]);logger['info'](_0x3ed898[_0x8b09('0x92')]);if(_[_0x8b09('0xa9')](_0x4dcc7d['query']['path'],_0x8b09('0x52'))&&_0x3ed898[_0x8b09('0xaa')]==0x1f4){return _0xf43bd0['sendStatus'](_0x3ed898[_0x8b09('0xaa')]);}else{return _0xf43bd0[_0x8b09('0x24')](_0x3ed898['statusCode'])['send'](_0x3ed898['body']);}}else{return _0xf43bd0[_0x8b09('0x31')](0xc8);}})[_0x8b09('0x4e')](handleError(_0xf43bd0,null));};exports['webhookPost']=function(_0x349eaa,_0x417ab3,_0x2e7573){return BPromise[_0x8b09('0x9e')]()['then'](function(){if(!_0x349eaa[_0x8b09('0x3b')][_0x8b09('0x8')]){throw new Error(_0x8b09('0xab'));}if(!_0x349eaa[_0x8b09('0x3b')][_0x8b09('0x9f')]){throw new Error(_0x8b09('0xa0'));}var _0x4bd9df=_0x349eaa[_0x8b09('0x3b')][_0x8b09('0xa1')]?_0x349eaa['query'][_0x8b09('0xa1')]+':'+_0x349eaa['query'][_0x8b09('0x9f')]:_0x8b09('0xa2')+_0x349eaa['query'][_0x8b09('0x9f')];var _0xf14e74=_0x349eaa['query'][_0x8b09('0x25')]?_0x349eaa['query'][_0x8b09('0x25')]:!![];var _0x32e265=_0x349eaa[_0x8b09('0x3b')]['encoding']?_0x349eaa['query'][_0x8b09('0xa3')]:null;var _0xc31239={'method':_0x349eaa[_0x8b09('0xa4')],'uri':util[_0x8b09('0xa5')](_0x8b09('0xa6'),_0x4bd9df,_0x349eaa[_0x8b09('0x3b')][_0x8b09('0x8')]),'json':_0xf14e74,'resolveWithFullResponse':!![],'encoding':_0x32e265,'body':_0x349eaa['body']};if(_0x349eaa['headers']){_0xc31239['headers']=_0x349eaa[_0x8b09('0xa7')];if(_0xc31239[_0x8b09('0xa7')][_0x8b09('0xac')]){delete _0xc31239[_0x8b09('0xa7')][_0x8b09('0xac')];}}if(_0xc31239[_0x8b09('0xa7')]['content-type']){delete _0xc31239[_0x8b09('0xa7')][_0x8b09('0xa8')];}return rp(_0xc31239);})[_0x8b09('0x2c')](function(_0x5ab57a){if(_0x5ab57a){_0x417ab3[_0x8b09('0x2a')](_0x5ab57a['headers']);logger['info'](_0x5ab57a[_0x8b09('0x92')]);return _0x417ab3[_0x8b09('0x24')](_0x5ab57a['statusCode'])[_0x8b09('0x98')](_0x5ab57a[_0x8b09('0x92')]);}else{return _0x417ab3[_0x8b09('0x31')](0xc8);}})[_0x8b09('0x4e')](handleError(_0x417ab3,null));};