Dotnet: Update Apps
revenz opened this issue · comments
Need to implement ability to update apps in the dotnet rewrite
Legacy Node code
async updateApps(req, res)
{
console.log('Updating Applications');
const dir = __dirname + '/../temp';
if(fs.existsSync(dir) == false){
console.log('Creating temporary directory');
fs.mkdirSync(dir, {recursive: true});
}
let appsUrl = 'https://github.com/revenz/Fenrus/raw/master/apps.zip?t=' + new Date().getTime();
let zipfile = dir + '/' + new Utils().newGuid();
try
{
let appHelper = AppHelper.getInstance();
if(!appHelper.count())
appHelper.load();
let previous = appHelper.count() || 0;
console.log('Previous application count: ' + previous);
await HttpHelper.download(appsUrl, zipfile);
const zip = new StreamZip.async({ file: zipfile});
const count = await zip.extract(null, './apps');
console.log(`Extracted ${count} entries`);
await zip.close();
console.log('Successfully updated applications');
appHelper.load();
let updated = appHelper.count() || 0;
console.log('Updated application list in memory');
res.status(200).send(`Updated ${count} applications.\n\n${updated - previous} new app${updated - previous == 1 ? '' : 's'}`).end();
}
catch(err)
{
console.log('Failed to update applications: ' + err);
res.status(500).send('' + err).end();
}
}
done