mirror of
https://github.com/docmost/docmost.git
synced 2026-05-07 06:23:06 +08:00
879aa2c3d8
* feat: watchers notification and email preferences * fix: email copy * digests * clean up * fix * clean up * move backlinks queue-up to history processor * fix * fix keys * feat: group notifications * filter * adjust email digest window
56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
HttpCode,
|
|
HttpStatus,
|
|
Post,
|
|
UseGuards,
|
|
} from '@nestjs/common';
|
|
import { NotificationService } from './notification.service';
|
|
import { AuthUser } from '../../common/decorators/auth-user.decorator';
|
|
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';
|
|
import { User } from '@docmost/db/types/entity.types';
|
|
import { ListNotificationsDto, MarkNotificationsReadDto } from './dto/notification.dto';
|
|
|
|
@UseGuards(JwtAuthGuard)
|
|
@Controller('notifications')
|
|
export class NotificationController {
|
|
constructor(private readonly notificationService: NotificationService) {}
|
|
|
|
@HttpCode(HttpStatus.OK)
|
|
@Post('/')
|
|
async getNotifications(
|
|
@Body() dto: ListNotificationsDto,
|
|
@AuthUser() user: User,
|
|
) {
|
|
return this.notificationService.findByUserId(user.id, dto, dto.type);
|
|
}
|
|
|
|
@HttpCode(HttpStatus.OK)
|
|
@Post('unread-count')
|
|
async getUnreadCount(@AuthUser() user: User) {
|
|
const count = await this.notificationService.getUnreadCount(user.id);
|
|
return { count };
|
|
}
|
|
|
|
@HttpCode(HttpStatus.OK)
|
|
@Post('mark-read')
|
|
async markAsRead(
|
|
@Body() dto: MarkNotificationsReadDto,
|
|
@AuthUser() user: User,
|
|
) {
|
|
if (dto.notificationIds?.length) {
|
|
await this.notificationService.markMultipleAsRead(
|
|
dto.notificationIds,
|
|
user.id,
|
|
);
|
|
}
|
|
}
|
|
|
|
@HttpCode(HttpStatus.OK)
|
|
@Post('mark-all-read')
|
|
async markAllAsRead(@AuthUser() user: User) {
|
|
await this.notificationService.markAllAsRead(user.id);
|
|
}
|
|
}
|