fix: Response wrapping, error logging, and controller hardening (COA 3)
All checks were successful
Test Asgard Runner / test (push) Successful in 3s

- HttpExceptionFilter: Log actual error details for non-HttpExceptions (was silently swallowing 500s)
- ServersService: Return null fields instead of 404 for new licenses without servers
- NotificationsController: Wrap config responses as { config } to match frontend expectations
- WebstoreController: Wrap config responses as { config } to match frontend expectations
- ChatController: Replace ParseIntPipe with manual parseInt (400 on missing optional param)
- WipesController: Same ParseIntPipe fix for history limit param

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Vantz Stockwell
2026-02-15 22:52:25 -05:00
parent 78e97babf1
commit 9bca8bd2fc
6 changed files with 33 additions and 16 deletions

View File

@@ -7,7 +7,6 @@ import {
Body,
Param,
Query,
ParseIntPipe,
UseGuards,
} from '@nestjs/common';
import { ApiTags, ApiBearerAuth, ApiOperation, ApiQuery } from '@nestjs/swagger';
@@ -81,9 +80,10 @@ export class WipesController {
@ApiQuery({ name: 'limit', required: false, example: 50 })
getHistory(
@CurrentTenant() licenseId: string,
@Query('limit', new ParseIntPipe({ optional: true })) limit?: number,
@Query('limit') limit?: string,
) {
return this.wipesService.getHistory(licenseId, limit || 50);
const limitNum = limit ? parseInt(limit, 10) : 50;
return this.wipesService.getHistory(licenseId, limitNum);
}
@Post('trigger')