Files
memegoat/backend/src/api-keys/api-keys.controller.ts
Mathis HERRIOT 5671ba60a6 feat(dto): enforce field length constraints across DTOs
Add `@MaxLength` validations to limit string field lengths in multiple DTOs, ensuring consistent data validation and integrity. Integrate `CreateApiKeyDto` in the API keys controller for improved type safety.
2026-01-14 20:41:45 +01:00

43 lines
1.0 KiB
TypeScript

import {
Body,
Controller,
Delete,
Get,
Param,
Post,
Req,
UseGuards,
} from "@nestjs/common";
import { AuthGuard } from "../auth/guards/auth.guard";
import type { AuthenticatedRequest } from "../common/interfaces/request.interface";
import { ApiKeysService } from "./api-keys.service";
import { CreateApiKeyDto } from "./dto/create-api-key.dto";
@Controller("api-keys")
@UseGuards(AuthGuard)
export class ApiKeysController {
constructor(private readonly apiKeysService: ApiKeysService) {}
@Post()
create(
@Req() req: AuthenticatedRequest,
@Body() createApiKeyDto: CreateApiKeyDto,
) {
return this.apiKeysService.create(
req.user.sub,
createApiKeyDto.name,
createApiKeyDto.expiresAt ? new Date(createApiKeyDto.expiresAt) : undefined,
);
}
@Get()
findAll(@Req() req: AuthenticatedRequest) {
return this.apiKeysService.findAll(req.user.sub);
}
@Delete(":id")
revoke(@Req() req: AuthenticatedRequest, @Param("id") id: string) {
return this.apiKeysService.revoke(req.user.sub, id);
}
}