| import { |
| Body, |
| Controller, |
| Delete, |
| Get, |
| HttpException, |
| Param, |
| Post, |
| } from '@nestjs/common'; |
| import { GetUserFromRequest } from '@gitroom/nestjs-libraries/user/user.from.request'; |
| import { User } from '@prisma/client'; |
| import { ApiTags } from '@nestjs/swagger'; |
| import { AnnouncementsService } from '@gitroom/nestjs-libraries/database/prisma/announcements/announcements.service'; |
| import { AnnouncementDto } from '@gitroom/nestjs-libraries/dtos/announcements/announcements.dto'; |
|
|
| @ApiTags('Announcements') |
| @Controller('/announcements') |
| export class AnnouncementsController { |
| constructor(private _announcementsService: AnnouncementsService) {} |
|
|
| @Get('/') |
| async getAnnouncements() { |
| return this._announcementsService.getAnnouncements(); |
| } |
|
|
| @Post('/') |
| async createAnnouncement( |
| @GetUserFromRequest() user: User, |
| @Body() body: AnnouncementDto |
| ) { |
| if (!user.isSuperAdmin) { |
| throw new HttpException('Unauthorized', 400); |
| } |
| return this._announcementsService.createAnnouncement(body); |
| } |
|
|
| @Delete('/:id') |
| async deleteAnnouncement( |
| @GetUserFromRequest() user: User, |
| @Param('id') id: string |
| ) { |
| if (!user.isSuperAdmin) { |
| throw new HttpException('Unauthorized', 400); |
| } |
| return this._announcementsService.deleteAnnouncement(id); |
| } |
| } |
|
|