Skip to content
Snippets Groups Projects
Commit b0a899be authored by Tom Käsler's avatar Tom Käsler Committed by Lukas Mauß
Browse files

Add moderator model/service

Add empty dialog for managing moderators for a room
parent f312a674
Branches
Tags
No related merge requests found
......@@ -32,6 +32,7 @@ import { AppConfig } from './app.config';
import { ThemeModule } from '../theme/theme.module';
import { ServiceWorkerModule } from '@angular/service-worker';
import { environment } from '../environments/environment';
import { ModeratorService } from './services/http/moderator.service';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { HttpClient } from '@angular/common/http';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
......@@ -101,6 +102,7 @@ export function initializeApp(appConfig: AppConfig) {
MarkedOptions,
UserService,
VoteService,
ModeratorService,
WsConnectorService,
{
provide: MatDialogRef,
......
import { Component, Inject, OnInit } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material';
import { NotificationService } from '../../../../services/util/notification.service';
import { TranslateService } from '@ngx-translate/core';
import { ModeratorService } from '../../../../services/http/moderator.service';
import { RoomCreatorPageComponent } from '../../room-creator-page/room-creator-page.component';
import { LanguageService } from '../../../../services/util/language.service';
@Component({
selector: 'app-moderators',
templateUrl: './moderators.component.html',
styleUrls: ['./moderators.component.scss']
})
export class ModeratorsComponent implements OnInit {
constructor(public dialogRef: MatDialogRef<RoomCreatorPageComponent>,
public dialog: MatDialog,
public notificationService: NotificationService,
public translationService: TranslateService,
protected moderatorService: ModeratorService,
protected langService: LanguageService,
@Inject(MAT_DIALOG_DATA) public data: any) {
langService.langEmitter.subscribe(lang => translationService.use(lang));
}
ngOnInit() {
}
}
......@@ -22,6 +22,7 @@ import { ContentListComponent } from './content-list/content-list.component';
import { ContentEditComponent } from './_dialogs/content-edit/content-edit.component';
import { ContentPresentationComponent } from './content-presentation/content-presentation.component';
import { CommentExportComponent } from './_dialogs/comment-export/comment-export.component';
import { ModeratorsComponent } from './_dialogs/moderators/moderators';
@NgModule({
imports: [
......@@ -52,7 +53,8 @@ import { CommentExportComponent } from './_dialogs/comment-export/comment-export
ContentListComponent,
ContentEditComponent,
ContentPresentationComponent,
CommentExportComponent
CommentExportComponent,
ModeratorsComponent
],
entryComponents: [
RoomDeleteComponent,
......
export class Moderator {
userId: string;
loginId: string;
constructor(
userId: string = '',
loginId: string = ''
) {
this.userId = userId;
this.loginId = loginId;
}
}
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { Moderator } from '../../models/moderator';
import { catchError, tap } from 'rxjs/operators';
import { BaseHttpService } from './base-http.service';
const httpOptions = {
headers: new HttpHeaders({ 'Content-Type': 'application/json' })
};
@Injectable()
export class ModeratorService extends BaseHttpService {
private apiUrl = {
base: '/api',
room: '/room',
moderator: '/moderator',
find: '/find'
};
constructor(private http: HttpClient) {
super();
}
get(roomId: string): Observable<Moderator[]> {
const url = `${this.apiUrl.base + this.apiUrl.room}/${roomId + this.apiUrl.moderator}`;
return this.http.get(url, httpOptions).pipe(
tap(_ => ''),
catchError(this.handleError<any>('getModerator'))
);
}
put(roomId: string, userId: string) {
const url = `${this.apiUrl.base + this.apiUrl.room}/${roomId + this.apiUrl.moderator}/${userId}`;
return this.http.put(url, httpOptions).pipe(
tap(_ => ''),
catchError(this.handleError<any>('putModerator'))
);
}
delete(roomId: string, userId: string) {
const url = `${this.apiUrl.base + this.apiUrl.room}/${roomId + this.apiUrl.moderator}/${userId}`;
return this.http.delete(url, httpOptions).pipe(
tap(_ => ''),
catchError(this.handleError<any>('deleteModerator'))
);
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment