diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 619bdd7efa315b4b3515b06397d3e0ab0577d348..4fa276da2ca34157f2dd8753015c8c9f0d20b69c 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -35,7 +35,7 @@ const routes: Routes = [ path: 'room/:roomId/comments', component: CommentComponent, canActivate: [AuthenticationGuard], - data: {roles: [UserRole.CREATOR] } + data: { roles: [UserRole.CREATOR] } }, { path: 'room/:roomId/create-comment', component: CreateCommentComponent, diff --git a/src/app/comment.service.ts b/src/app/comment.service.ts index 7acaa5a05df7ffe7ee042c2b7d925174e32cd90d..129c5da8d59a991ccbffd5c67522a0f43b7ad783 100644 --- a/src/app/comment.service.ts +++ b/src/app/comment.service.ts @@ -2,29 +2,41 @@ import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable } from 'rxjs/Observable'; import { Comment } from './comment'; +import { catchError, tap } from 'rxjs/operators'; +import { ErrorHandlingService } from './error-handling.service'; const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }; @Injectable() -export class CommentService { +export class CommentService extends ErrorHandlingService { private commentsUrl = 'api/comments'; constructor( private http: HttpClient ) { + super(); } addComment(comment: Comment): Observable<Comment> { - return this.http.post<Comment>(this.commentsUrl, comment, httpOptions); + return this.http.post<Comment>(this.commentsUrl, comment, httpOptions).pipe( + tap (_ => ''), + catchError(this.handleError<Comment>('addComment')) + ); } deleteComment(comment: Comment): Observable<Comment> { const url = `${this.commentsUrl}/${comment.id}`; - return this.http.delete<Comment>(url, httpOptions); + return this.http.delete<Comment>(url, httpOptions).pipe( + tap (_ => ''), + catchError(this.handleError<Comment>('deleteComment')) + ); } getComments(roomId: string): Observable<Comment[]> { const url = `${this.commentsUrl}/?roomId=${roomId}`; - return this.http.get<Comment[]>(url); + return this.http.get<Comment[]>(url).pipe( + tap (_ => ''), + catchError(this.handleError<Comment[]>('getComments', [])) + ); } }