From b12ab08e95adf3e6f18a2cc744592fd850f6909c Mon Sep 17 00:00:00 2001
From: semenovo <oleg.semenov@student.reutlingen-university.de>
Date: Fri, 17 Jul 2020 18:31:02 +0200
Subject: [PATCH] filled components create group

---
 frontend/{src => }/manifest.yml               |  0
 .../create-group/create-group.component.html  |  2 ++
 .../create-group/create-group.component.ts    | 13 +++++++++++++
 .../src/app/services/data-provider.service.ts | 19 +++++++++++++++++++
 4 files changed, 34 insertions(+)
 rename frontend/{src => }/manifest.yml (100%)

diff --git a/frontend/src/manifest.yml b/frontend/manifest.yml
similarity index 100%
rename from frontend/src/manifest.yml
rename to frontend/manifest.yml
diff --git a/frontend/src/app/components/create-group/create-group.component.html b/frontend/src/app/components/create-group/create-group.component.html
index 868d30f..53dac64 100644
--- a/frontend/src/app/components/create-group/create-group.component.html
+++ b/frontend/src/app/components/create-group/create-group.component.html
@@ -25,5 +25,7 @@
         <span class="badge">{{group.id}}</span> {{'Gruppe'}}
       </li>
     </ul>
+    <button id="newGroup" (click)="clickToCreate()">Gruppe erstellen
+    </button>
   </div>
 </div>
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 cdbb1fe..075e267 100644
--- a/frontend/src/app/components/create-group/create-group.component.ts
+++ b/frontend/src/app/components/create-group/create-group.component.ts
@@ -19,6 +19,7 @@ export class CreateGroupComponent implements OnInit {
   selectedModule:ModulesDO;
   selectedFaculty:FacultyDO;
   selectedGroup: GroupDO;
+  newGroup: GroupDO;
 
   constructor(private route: ActivatedRoute,private dataService: DataProviderService) {}
 
@@ -40,6 +41,11 @@ export class CreateGroupComponent implements OnInit {
     this.selectedGroup = groups;
   }
 
+  clickToCreate(): void {
+    this.newGroup = new GroupDO();
+    this.createGroup(this.newGroup);
+  }
+
   getAllFaculties() {
     this.route.params.subscribe((params)=> {
       this.dataService.getFacultyData().then((response) => {
@@ -63,4 +69,11 @@ export class CreateGroupComponent implements OnInit {
       })
     })
   }
+
+  createGroup(group: GroupDO) {
+    this.route.params.subscribe((params) => {
+      this.dataService.createGroupData(group).then((response) => {
+      })
+    })
+  }
 }
diff --git a/frontend/src/app/services/data-provider.service.ts b/frontend/src/app/services/data-provider.service.ts
index 9b8ef2b..c655bd8 100644
--- a/frontend/src/app/services/data-provider.service.ts
+++ b/frontend/src/app/services/data-provider.service.ts
@@ -69,4 +69,23 @@ export class DataProviderService {
         });
     });
   }
+
+  createGroupData(group: GroupDO): Promise<RequestResponse<GroupDO>> {
+    return new Promise((resolve, reject) => {
+      this.httpClient.post<GroupDO>('http://localhost:8080/groups/new', group).toPromise().then(
+        (group: GroupDO) => {
+          resolve({type: ResponseType.SUCCESS, payload: group});
+        }, (error: HttpErrorResponse) => {
+          if(error.status === 0) {
+            reject({type: ResponseType.CONNECTION_PROBLEM});
+          } else if(error.status === 400) {
+            reject({type: ResponseType.BAD_REQUEST});
+          } else if(error.status === 500) {
+            reject({type: ResponseType.INTERNAL_SERVER_ERROR});
+          } else {
+            reject({type: ResponseType.FAILURE});
+          }
+        });
+    });
+  }
 }
-- 
GitLab