27 lines
818 B
TypeScript
27 lines
818 B
TypeScript
import { Controller, Get, Post, Delete, Body, Param, UseGuards } from '@nestjs/common';
|
|
import { ApiKeysService } from './api-keys.service';
|
|
import { JwtAuthGuard } from './jwt-auth.guard';
|
|
|
|
@Controller('api/api-keys')
|
|
@UseGuards(JwtAuthGuard)
|
|
export class ApiKeysController {
|
|
constructor(private readonly apiKeysService: ApiKeysService) {}
|
|
|
|
@Post()
|
|
async create(@Body() body: { name: string; expiresDays?: number }) {
|
|
// Note: The plainKey is only returned here once.
|
|
return this.apiKeysService.createApiKey(body.name, body.expiresDays);
|
|
}
|
|
|
|
@Get()
|
|
async findAll() {
|
|
// Note: This returns hashed keys and prefixes, not the plain keys.
|
|
return this.apiKeysService.listKeys();
|
|
}
|
|
|
|
@Delete(':id')
|
|
async remove(@Param('id') id: string) {
|
|
return this.apiKeysService.deleteKey(id);
|
|
}
|
|
}
|