07dfd7e840
Backend 958→0 errors, frontend 98→0 errors. Builds and tsc clean. Echte Fixes: - Auth: AuthenticatedUser/AuthenticatedRequest, JwtStrategy + alle 5 Controller von `@Request() req: any` auf typisierten Request umgestellt - Error-Handling: neuer getErrorMessage/Stack/Code/getResponseData-Helper; alle 50 `catch (err: any)`-Blöcke auf `unknown` + Helper umgestellt - 24 echte Bugs: require-await, require-imports→ES-Imports, useless-escape, misused-promises, tote Imports/Vars, leere catch-Blöcke kommentiert - document-pipeline: OCR-Ergebnis wird nicht gespeichert (als TODO markiert) Pragmatisch auf warn herabgestuft (untypisierte Paperless-NGX-API): no-unsafe-*, restrict-template-expressions, no-base-to-string, no-explicit-any (FE), react-refresh/only-export-components Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
67 lines
1.5 KiB
TypeScript
67 lines
1.5 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
Get,
|
|
HttpCode,
|
|
Post,
|
|
Put,
|
|
Request,
|
|
} from '@nestjs/common';
|
|
import {
|
|
UserSettingsService,
|
|
type UpdateUserSettingsInput,
|
|
} from './user-settings.service';
|
|
import { RequirePermissions } from '../auth/permissions.decorator';
|
|
import { Permission } from '../auth/permissions.enum';
|
|
import type { AuthenticatedRequest } from '../auth/authenticated-request';
|
|
|
|
@Controller('api/user-settings')
|
|
export class UserSettingsController {
|
|
constructor(private readonly userSettingsService: UserSettingsService) {}
|
|
|
|
@Get()
|
|
async getSettings(@Request() req: AuthenticatedRequest) {
|
|
return this.userSettingsService.getSettings(
|
|
req.user!.userId,
|
|
req.user!.email,
|
|
req.user!.preferredUsername ?? undefined,
|
|
req.user!.groups,
|
|
);
|
|
}
|
|
|
|
@Put()
|
|
async updateSettings(
|
|
@Request() req: AuthenticatedRequest,
|
|
@Body() body: UpdateUserSettingsInput,
|
|
) {
|
|
return this.userSettingsService.updateSettings(
|
|
req.user!.userId,
|
|
body,
|
|
req.user!.email,
|
|
req.user!.preferredUsername ?? undefined,
|
|
req.user!.groups,
|
|
);
|
|
}
|
|
|
|
@Get('senders')
|
|
async getSenders(@Request() req: AuthenticatedRequest) {
|
|
return this.userSettingsService.getAvailableSenders(req.user!.userId);
|
|
}
|
|
|
|
@Post('test-smtp')
|
|
@HttpCode(200)
|
|
@RequirePermissions(Permission.MANAGE_SETTINGS)
|
|
async testSmtp(
|
|
@Body()
|
|
body: {
|
|
host: string;
|
|
port: number;
|
|
secure: boolean;
|
|
user: string;
|
|
pass: string;
|
|
},
|
|
) {
|
|
return this.userSettingsService.testSmtp(body);
|
|
}
|
|
}
|