ToolJet/server/src/controllers/metadata.controller.ts
Kiran Ashok d3df7c3123
Bugfix :: Onboarded data saved to telemetry (#5205)
* feat :: onboarded data forwarded to telemetry

* fix :: called temeltry api on setup sucees

* revert merge

* update endpoints for new onboarding data

* adding try catch

* added try catch for APIs

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
2023-01-09 17:33:50 +05:30

53 lines
1.6 KiB
TypeScript

import { Controller, Get, Request, Post, UseGuards } from '@nestjs/common';
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,
});
}
@UseGuards(JwtAuthGuard)
@Get()
async getMetadata(@Request() req) {
const metadata = await this.metadataService.getMetaData();
const data = metadata.data;
let latestVersion = data['latest_version'];
let versionIgnored = data['version_ignored'] || false;
const onboarded = data['onboarded'];
if (process.env.NODE_ENV == 'production') {
if (
process.env.CHECK_FOR_UPDATES &&
process.env.CHECK_FOR_UPDATES != '0' &&
process.env.CHECK_FOR_UPDATES != 'false'
) {
const result = await this.metadataService.checkForUpdates(metadata);
latestVersion = result.latestVersion;
versionIgnored = false;
}
if (!process.env.DISABLE_TOOLJET_TELEMETRY) {
void this.metadataService.sendTelemetryData(metadata);
}
}
return {
installed_version: globalThis.TOOLJET_VERSION,
latest_version: latestVersion,
onboarded: onboarded,
version_ignored: versionIgnored,
};
}
}