From 077f2d80c8d9359daec5b40fc100c214139b9041 Mon Sep 17 00:00:00 2001
From: semenovo <oleg.semenov@student.reutlingen-university.de>
Date: Fri, 17 Jul 2020 19:19:17 +0200
Subject: [PATCH] implemented frontend group creations

---
 .../create-group/create-group.component.ts    | 28 +++++++++++++------
 frontend/src/app/types/groupDO.ts             | 17 ++++++++---
 frontend/src/app/types/modulesDO.ts           |  7 ++++-
 3 files changed, 38 insertions(+), 14 deletions(-)

diff --git a/frontend/src/app/components/create-group/create-group.component.ts b/frontend/src/app/components/create-group/create-group.component.ts
index 075e267..85980dd 100644
--- a/frontend/src/app/components/create-group/create-group.component.ts
+++ b/frontend/src/app/components/create-group/create-group.component.ts
@@ -2,8 +2,9 @@ import {Component, Input, OnInit} from '@angular/core';
 import {FacultyDO} from "../../types/facultyDO";
 import {ModulesDO} from "../../types/modulesDO";
 import {GroupDO} from "../../types/groupDO";
-import {ActivatedRoute} from "@angular/router";
+import {ActivatedRoute, Router} from "@angular/router";
 import {DataProviderService} from "../../services/data-provider.service";
+import {ResponseType} from "../../types/response-type";
 
 @Component({
   selector: 'app-create-group-page',
@@ -20,8 +21,9 @@ export class CreateGroupComponent implements OnInit {
   selectedFaculty:FacultyDO;
   selectedGroup: GroupDO;
   newGroup: GroupDO;
+  errorMessage: string;
 
-  constructor(private route: ActivatedRoute,private dataService: DataProviderService) {}
+  constructor(private router: Router, private route: ActivatedRoute,private dataService: DataProviderService) {}
 
   ngOnInit(): void {
     this.getAllFaculties();
@@ -42,8 +44,7 @@ export class CreateGroupComponent implements OnInit {
   }
 
   clickToCreate(): void {
-    this.newGroup = new GroupDO();
-    this.createGroup(this.newGroup);
+    this.createGroup();
   }
 
   getAllFaculties() {
@@ -70,10 +71,19 @@ export class CreateGroupComponent implements OnInit {
     })
   }
 
-  createGroup(group: GroupDO) {
-    this.route.params.subscribe((params) => {
-      this.dataService.createGroupData(group).then((response) => {
-      })
-    })
+  createGroup() {
+    let newID = this.modules.length + 1;
+    let moduleId = this.selectedModule.getId;
+    this.newGroup = new GroupDO(newID, moduleId, '', '');
+    this.dataService.createGroupData(this.newGroup).then((group) => {
+      this.router.navigateByUrl('/new', {state: {group: this.newGroup}});
+    }, (error) => {
+      if(error.type === ResponseType.CONNECTION_PROBLEM) {
+        this.errorMessage = 'Connection Problem';
+      } else {
+        this.errorMessage = 'Unknown error happened!';
+        }
+      }
+    );
   }
 }
diff --git a/frontend/src/app/types/groupDO.ts b/frontend/src/app/types/groupDO.ts
index 65a9d97..2b99a4c 100644
--- a/frontend/src/app/types/groupDO.ts
+++ b/frontend/src/app/types/groupDO.ts
@@ -1,6 +1,15 @@
 export class GroupDO {
-  id: number;
-  modulid: number;
-  status: string;
-  date: string;
+
+  private id: number;
+  private modulid: number;
+  private status: string;
+  private date: string;
+
+  constructor(private iD: number, private moduleId:
+              number, private statuS: string, datE: string) {
+    this.id = iD;
+    this.modulid = moduleId;
+    this.status = statuS;
+    this.date = datE;
+  }
 }
diff --git a/frontend/src/app/types/modulesDO.ts b/frontend/src/app/types/modulesDO.ts
index 2065676..54d8b18 100644
--- a/frontend/src/app/types/modulesDO.ts
+++ b/frontend/src/app/types/modulesDO.ts
@@ -1,4 +1,9 @@
 export class ModulesDO {
-  id: number;
+
+  private id: number;
   titel: string;
+
+  get getId(): number {
+    return this.id;
+  }
 }
-- 
GitLab