managarten/services/mana-core-auth/src/feedback/feedback.controller.ts
Wuesteon 9c47119535 Fix wrong type
import, make auth and chat work
2025-12-04 23:25:25 +01:00

61 lines
1.8 KiB
TypeScript

import {
Controller,
Get,
Post,
Delete,
Body,
Param,
Query,
UseGuards,
Headers,
} from '@nestjs/common';
import { FeedbackService } from './feedback.service';
import { JwtAuthGuard } from '../common/guards/jwt-auth.guard';
import { OptionalAuthGuard } from '../common/guards/optional-auth.guard';
import { CurrentUser } from '../common/decorators/current-user.decorator';
import type { CurrentUserData } from '../common/decorators/current-user.decorator';
import { CreateFeedbackDto } from './dto';
import type { FeedbackQueryDto } from './dto';
@Controller('feedback')
export class FeedbackController {
constructor(private readonly feedbackService: FeedbackService) {}
@Post()
@UseGuards(JwtAuthGuard)
async createFeedback(
@CurrentUser() user: CurrentUserData,
@Body() dto: CreateFeedbackDto,
@Headers('x-app-id') appIdHeader?: string
) {
const appId = appIdHeader || 'unknown';
return this.feedbackService.createFeedback(user.userId, appId, dto);
}
@Get('public')
@UseGuards(OptionalAuthGuard)
async getPublicFeedback(
@CurrentUser() user: CurrentUserData | null,
@Query() query: FeedbackQueryDto
) {
return this.feedbackService.getPublicFeedback(user?.userId || null, query);
}
@Get('my')
@UseGuards(JwtAuthGuard)
async getMyFeedback(@CurrentUser() user: CurrentUserData, @Query('appId') appId?: string) {
return this.feedbackService.getMyFeedback(user.userId, appId);
}
@Post(':id/vote')
@UseGuards(JwtAuthGuard)
async vote(@CurrentUser() user: CurrentUserData, @Param('id') feedbackId: string) {
return this.feedbackService.vote(user.userId, feedbackId);
}
@Delete(':id/vote')
@UseGuards(JwtAuthGuard)
async unvote(@CurrentUser() user: CurrentUserData, @Param('id') feedbackId: string) {
return this.feedbackService.unvote(user.userId, feedbackId);
}
}