diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/GroupController.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/GroupController.java index 90e7b988dba61214b5413a4efdfd1b319a88ea36..d895eb6ff89155a35ff3ac6d00f67eae171613e4 100644 --- a/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/GroupController.java +++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/GroupController.java @@ -59,26 +59,30 @@ public class GroupController { * @param groupRequest the group to create * @return a ResponseEntity containing the created group if it was created successfully, or a 400 if it wasn't */ - @PostMapping("/{username}") - public ResponseEntity<Group> createGroup(@RequestBody Group group, - @PathVariable("username") String username) { + @PostMapping("/group") + public ResponseEntity<GroupResponse> createGroup(@RequestBody GroupRequest groupRequest) { - if(group.getGroupName().equals("") || - userService.getUserFromUsername(username).isEmpty() || - groupService.getGroupById(group.getGroupId()).isPresent()) { + if(groupRequest.groupName().equals("") || + userService.getUserFromUsername(groupRequest.username()).isEmpty() || + groupService.getGroupByName(groupRequest.groupName()).isPresent()) { return ResponseEntity.badRequest().build(); } + Group group = new Group(); + group.setGroupName(groupRequest.groupName()); - Group group1 = groupService.createGroup(group); - group1.addUser(UserGroupAsso.builder() + Group createdGroup = groupService.createGroup(group); + createdGroup.addUser(UserGroupAsso.builder() .groupAuthority("ADMIN") - .group(group1) - .user(userService.getUserFromUsername(username).get()) + .group(createdGroup) + .user(userService.getUserFromUsername(groupRequest.username()).get()) .build()); - return groupService.updateGroup(group1).map(ResponseEntity::ok) - .orElseGet(() -> ResponseEntity.badRequest().build()); + GroupResponse groupResponse = new GroupResponse(createdGroup.getGroupId(), createdGroup.getLinkCode()); + + groupService.updateGroup(createdGroup); + + return ResponseEntity.ok(groupResponse); } /** @@ -184,11 +188,10 @@ public class GroupController { * @return a ResponseEntity object containing an HTTP status code and the newly created UserGroupAsso object, * or a ResponseEntity object with an HTTP status code indicating that the request was not successful */ - @PostMapping("/connection/{username}/{linkCode}") - public ResponseEntity<?> addConnection(@PathVariable("username") String username, - @PathVariable("linkCode") String linkCode){ - return groupService.getGroupByLinkCode(linkCode) - .flatMap(group -> userService.getUserFromUsername(username) + @PostMapping("/connection") + public ResponseEntity<?> addConnection(@RequestBody GroupConnectionRequest groupConnectionRequest){ + return groupService.getGroupByLinkCode(groupConnectionRequest.linkCode()) + .flatMap(group -> userService.getUserFromUsername(groupConnectionRequest.username()) .flatMap(user -> { UserGroupAsso userGroupAsso = UserGroupAsso.builder() .group(group)