comments implement
This commit is contained in:
1 parent
9e0bef2527
commit
4b6ecfbf5d
41 files changed
+1350
-13
No files matched your search
@@ -0,0 +1,28 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { Observable, Subject } from 'rxjs';
|
||||
import { CommentDto } from '../dto/comment.dto.js';
|
||||
|
||||
export type CommentEventType = 'comment.created' | 'comment.updated' | 'comment.deleted';
|
||||
|
||||
export interface CommentEvent {
|
||||
type: CommentEventType;
|
||||
comment: CommentDto;
|
||||
}
|
||||
|
||||
/**
|
||||
* In-process шина событий comment-модуля для SSE-подписчиков
|
||||
* (по аналогии с IssueEventsService). Работает в пределах одного
|
||||
* инстанса приложения — для нескольких инстансов понадобится Redis pub/sub.
|
||||
*/
|
||||
@Injectable()
|
||||
export class CommentEventsService {
|
||||
private readonly events$ = new Subject<CommentEvent>();
|
||||
|
||||
emit(type: CommentEventType, comment: CommentDto): void {
|
||||
this.events$.next({ type, comment });
|
||||
}
|
||||
|
||||
onEvents(): Observable<CommentEvent> {
|
||||
return this.events$.asObservable();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user