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 868d30f433e533501a895194af0dc2e678832b83..53dac6413fabb36725b2609b9cb45478d8fc45ce 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 cdbb1feab7d9158c0078ebc67083add4cb1e6247..075e2671a4f581859cfa445c6945a3c87579388c 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 9b8ef2b4536102a5a4b71be3ac96987fc75b3f78..c655bd8126c0cc47ff909843e1fc35b310787edd 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}); + } + }); + }); + } }