From 90d8975d1e34d004b34fd22a66f2e054207a56fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lukas=20Mau=C3=9F?= <lukas.mauss@mni.thm.de>
Date: Tue, 6 Mar 2018 13:59:58 +0100
Subject: [PATCH] Add room component which uses the room service functions

---
 src/app/app.module.ts               |  4 +++-
 src/app/room/room.component.html    |  3 +++
 src/app/room/room.component.scss    |  0
 src/app/room/room.component.spec.ts | 25 ++++++++++++++++++++
 src/app/room/room.component.ts      | 36 +++++++++++++++++++++++++++++
 5 files changed, 67 insertions(+), 1 deletion(-)
 create mode 100644 src/app/room/room.component.html
 create mode 100644 src/app/room/room.component.scss
 create mode 100644 src/app/room/room.component.spec.ts
 create mode 100644 src/app/room/room.component.ts

diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 7d13ff3ac..a20448387 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -48,7 +48,7 @@ import {
 import { HttpClientInMemoryWebApiModule } from 'angular-in-memory-web-api';
 import { HttpClientModule } from '@angular/common/http';
 import { InMemoryDataService } from './in-memory-data.service';
-import { InMemoryDataService } from './in-memory-data.service';
+import { RoomComponent } from './room/room.component';
 import { RoomCreationComponent } from './room-creation/room-creation.component';
 import { LoginScreenComponent } from './login-screen/login-screen.component';
 import { NotificationService } from './notification.service';
@@ -63,6 +63,8 @@ import { AuthenticationGuard } from './authentication.guard';
     PageNotFoundComponent,
     PasswordResetComponent,
     RegisterComponent,
+    RoomComponent,
+    RegisterComponent,
     RoomCreationComponent
   ],
   entryComponents: [
diff --git a/src/app/room/room.component.html b/src/app/room/room.component.html
new file mode 100644
index 000000000..d92b39db6
--- /dev/null
+++ b/src/app/room/room.component.html
@@ -0,0 +1,3 @@
+<p>
+  room works!
+</p>
diff --git a/src/app/room/room.component.scss b/src/app/room/room.component.scss
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/app/room/room.component.spec.ts b/src/app/room/room.component.spec.ts
new file mode 100644
index 000000000..f51b2a994
--- /dev/null
+++ b/src/app/room/room.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { RoomComponent } from './room.component';
+
+describe('RoomComponent', () => {
+  let component: RoomComponent;
+  let fixture: ComponentFixture<RoomComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ RoomComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(RoomComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/room/room.component.ts b/src/app/room/room.component.ts
new file mode 100644
index 000000000..248b9e7e9
--- /dev/null
+++ b/src/app/room/room.component.ts
@@ -0,0 +1,36 @@
+import { Component, OnInit } from '@angular/core';
+import { Room } from '../room';
+import { RoomService } from '../room.service';
+
+
+@Component({
+  selector: 'app-room',
+  templateUrl: './room.component.html',
+  styleUrls: ['./room.component.scss']
+})
+export class RoomComponent implements OnInit {
+
+  rooms: Room[];
+
+  constructor(private roomService: RoomService) {
+  }
+
+  ngOnInit() {
+    this.getRooms();
+  }
+
+  getRooms(): void {
+    this.roomService.getRooms().subscribe(rooms => this.rooms = rooms);
+  }
+
+  add(name: string): void {
+    name = name.trim();
+    if (!name) {
+      return;
+    }
+    this.roomService.addRoom({name} as Room).subscribe(room => {
+      this.rooms.push(room);
+    });
+  }
+
+}
-- 
GitLab