Files
Automata/packages/cli/src/license/license.controller.ts
कारतोफ्फेलस्क्रिप्ट™ 876bcbb04c fix(core): Make enterprise trial requests via the backend (no-changelog) (#9784)
2024-06-17 19:56:52 +02:00

41 lines
1.2 KiB
TypeScript

import { Get, Post, RestController, GlobalScope } from '@/decorators';
import { AuthenticatedRequest, LicenseRequest } from '@/requests';
import { LicenseService } from './license.service';
@RestController('/license')
export class LicenseController {
constructor(private readonly licenseService: LicenseService) {}
@Get('/')
async getLicenseData() {
return await this.licenseService.getLicenseData();
}
@Post('/enterprise/request_trial')
@GlobalScope('license:manage')
async requestEnterpriseTrial(req: AuthenticatedRequest) {
await this.licenseService.requestEnterpriseTrial(req.user);
}
@Post('/activate')
@GlobalScope('license:manage')
async activateLicense(req: LicenseRequest.Activate) {
const { activationKey } = req.body;
await this.licenseService.activateLicense(activationKey);
return await this.getTokenAndData();
}
@Post('/renew')
@GlobalScope('license:manage')
async renewLicense() {
await this.licenseService.renewLicense();
return await this.getTokenAndData();
}
private async getTokenAndData() {
const managementToken = this.licenseService.getManagementJwt();
const data = await this.licenseService.getLicenseData();
return { ...data, managementToken };
}
}