ToolJet/server/src/controllers/metadata.controller.ts

55 lines
1.6 KiB
TypeScript
Raw Normal View History

import { Controller, Get, Post, UseGuards } from '@nestjs/common';
2021-07-26 17:14:14 +00:00
import { MetadataService } from '@services/metadata.service';
import { JwtAuthGuard } from '../modules/auth/jwt-auth.guard';
@Controller('metadata')
export class MetadataController {
constructor(private metadataService: MetadataService) {}
@UseGuards(JwtAuthGuard)
@Post('skip_version')
async skipVersion() {
const metadata = await this.metadataService.getMetaData();
const data = metadata.data;
await this.metadataService.updateMetaData({
ignored_version: data['latest_version'],
version_ignored: true,
2021-07-26 17:14:14 +00:00
});
}
@Get()
async getMetadata() {
2021-07-26 17:14:14 +00:00
const metadata = await this.metadataService.getMetaData();
const data = metadata.data;
let latestVersion = data['latest_version'];
let versionIgnored = data['version_ignored'] || false;
const instanceId = metadata['id'];
2021-07-26 17:14:14 +00:00
const onboarded = data['onboarded'];
if (process.env.NODE_ENV == 'production') {
if (
process.env.CHECK_FOR_UPDATES === '1' ||
process.env.CHECK_FOR_UPDATES === 'true' ||
!process.env.CHECK_FOR_UPDATES
) {
const result = await this.metadataService.checkForUpdates(metadata);
latestVersion = result.latestVersion;
versionIgnored = false;
}
2023-04-27 06:54:01 +00:00
if (process.env.DISABLE_TOOLJET_TELEMETRY !== 'true') {
void this.metadataService.sendTelemetryData(metadata);
}
2021-07-26 17:14:14 +00:00
}
return {
instance_id: instanceId,
installed_version: globalThis.TOOLJET_VERSION,
2021-07-26 17:14:14 +00:00
latest_version: latestVersion,
onboarded: onboarded,
version_ignored: versionIgnored,
};
2021-07-26 17:14:14 +00:00
}
}