42 lines
1.5 KiB
TypeScript
Executable File
42 lines
1.5 KiB
TypeScript
Executable File
import { Controller, Get, Param, Patch, Query } from "@nestjs/common";
|
|
import { ApiOperation, ApiTags } from "@nestjs/swagger";
|
|
|
|
import { SearchNotificationQueryDto } from "./DTO/search-notification-query.dto";
|
|
import { NotificationsService } from "./providers/notifications.service";
|
|
import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
|
|
import { Pagination } from "../../common/decorators/pagination.decorator";
|
|
import { UserDec } from "../../common/decorators/user.decorator";
|
|
import { ParamDto } from "../../common/DTO/param.dto";
|
|
|
|
@Controller("notifications")
|
|
@ApiTags("Notifications")
|
|
@AuthGuards()
|
|
export class NotificationController {
|
|
constructor(private readonly notificationService: NotificationsService) {}
|
|
|
|
//********************* */
|
|
|
|
@ApiOperation({ summary: "all notifications by user" })
|
|
@Pagination()
|
|
@Get()
|
|
getAllNotifications(@UserDec("id") userId: string, @Query() queryDto: SearchNotificationQueryDto) {
|
|
return this.notificationService.getAllNotifications(queryDto, userId);
|
|
}
|
|
|
|
//********************* */
|
|
|
|
@ApiOperation({ summary: "mark user notification as read" })
|
|
@Patch(":id/read")
|
|
markAsRead(@Param() paramDto: ParamDto, @UserDec("id") userId: string) {
|
|
return this.notificationService.markAsRead(paramDto.id, userId);
|
|
}
|
|
|
|
//********************* */
|
|
|
|
@ApiOperation({ summary: "mark user all notification as read" })
|
|
@Patch("read-all")
|
|
markAllAsRead(@UserDec("id") userId: string) {
|
|
return this.notificationService.markAllAsRead(userId);
|
|
}
|
|
}
|