diff --git a/src/app/components/shared/feedback-barometer-page/feedback-barometer-page.component.ts b/src/app/components/shared/feedback-barometer-page/feedback-barometer-page.component.ts index a8b0b4c252a956c0ca9046922ad87e47cb12e33f..4be55a5e1ad307728e11ce53787fa1448674688e 100644 --- a/src/app/components/shared/feedback-barometer-page/feedback-barometer-page.component.ts +++ b/src/app/components/shared/feedback-barometer-page/feedback-barometer-page.component.ts @@ -5,8 +5,7 @@ import { UserRole } from '../../../models/user-roles.enum'; import { NotificationService } from '../../../services/util/notification.service'; import { RxStompService } from '@stomp/ng2-stompjs'; import { Message } from '@stomp/stompjs'; -import { CreateFeedback } from '../../../models/messages/create-feedback'; -import { GetFeedback } from '../../../models/messages/get-feedback'; +import { WsFeedbackService } from '../../../services/websockets/ws-feedback.service'; /* ToDo: Use TranslateService */ @@ -29,6 +28,7 @@ export class FeedbackBarometerPageComponent implements OnInit { private authenticationService: AuthenticationService, private notification: NotificationService, private rxStompService: RxStompService, + private wsFeedbackService: WsFeedbackService, private route: ActivatedRoute, ) { this.roomId = localStorage.getItem(`roomId`); } @@ -36,16 +36,11 @@ export class FeedbackBarometerPageComponent implements OnInit { ngOnInit() { this.userRole = this.authenticationService.getRole(); - this.rxStompService.watch(`/queue/${this.roomId}.feedback.stream`).subscribe((message: Message) => { + this.rxStompService.watch(`/topic/${this.roomId}.feedback.stream`).subscribe((message: Message) => { this.parseIncomingMessage(message); }); - const getFeedback = new GetFeedback(); - - this.rxStompService.publish({ - destination: `/backend/queue/${this.roomId}.feedback.query`, - body: JSON.stringify(getFeedback) - }); + this.wsFeedbackService.get(this.roomId); } private updateFeedback(data) { @@ -57,11 +52,7 @@ export class FeedbackBarometerPageComponent implements OnInit { } submitFeedback(state: number) { - const createFeedback = new CreateFeedback(state); - this.rxStompService.publish({ - destination: `/backend/queue/${this.roomId}.feedback.command`, - body: JSON.stringify(createFeedback) - }); + this.wsFeedbackService.send(state, this.roomId); } toggle() { diff --git a/src/app/services/websockets/ws-feedback.service.ts b/src/app/services/websockets/ws-feedback.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..68bbb9d020661186517c8258a074f2e78f4c1c5b --- /dev/null +++ b/src/app/services/websockets/ws-feedback.service.ts @@ -0,0 +1,28 @@ +import { Injectable } from '@angular/core'; +import { RxStompService } from '@stomp/ng2-stompjs'; +import { CreateFeedback } from '../../models/messages/create-feedback'; +import { GetFeedback } from '../../models/messages/get-feedback'; + +@Injectable({ + providedIn: 'root' +}) +export class WsFeedbackService { + constructor(private rxStompService: RxStompService) {} + + send(feedback: number, roomId: string) { + const createFeedback = new CreateFeedback(feedback); + this.rxStompService.publish({ + destination: `/backend/queue/${roomId}.feedback.command`, + body: JSON.stringify(createFeedback) + }); + } + + get(roomId: string) { + const getFeedback = new GetFeedback(); + + this.rxStompService.publish({ + destination: `/backend/queue/${roomId}.feedback.query`, + body: JSON.stringify(getFeedback) + }); + } +}