fix: Response wrapping, error logging, and controller hardening (COA 3)
All checks were successful
Test Asgard Runner / test (push) Successful in 3s
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:
@@ -17,7 +17,8 @@ export class ServersService {
|
||||
) {}
|
||||
|
||||
/**
|
||||
* Get server connection and config for a license
|
||||
* Get server connection and config for a license.
|
||||
* Returns null fields if no server has been set up yet.
|
||||
*/
|
||||
async getServer(licenseId: string) {
|
||||
const connection = await this.connectionRepo.findOne({
|
||||
@@ -28,11 +29,11 @@ export class ServersService {
|
||||
where: { license_id: licenseId },
|
||||
});
|
||||
|
||||
if (!connection || !config) {
|
||||
throw new NotFoundException('Server not found for this license');
|
||||
}
|
||||
|
||||
return { connection, config };
|
||||
return {
|
||||
connection: connection || null,
|
||||
config: config || null,
|
||||
setup_required: !connection || !config,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user