diff --git a/src/main/java/me/akito123321/valoStrats/rest/controller/GroupRestAPI.java b/src/main/java/me/akito123321/valoStrats/rest/controller/GroupRestAPI.java index 6dcf7ba..c0b73d7 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/controller/GroupRestAPI.java +++ b/src/main/java/me/akito123321/valoStrats/rest/controller/GroupRestAPI.java @@ -133,6 +133,47 @@ public class GroupRestAPI { return ResponseEntity.ok(group); } + + @PostMapping("/{id}/strat-type") + public ResponseEntity addStratType(@PathVariable String id, @RequestBody String typeName) { + StratsUser user = getUser(); + + Group group = groupService.getGroupById(id); + if (group == null) { + return ResponseEntity.notFound().build(); + } + if (!group.getMembers().contains(user)) { + return ResponseEntity.status(HttpStatus.FORBIDDEN).build(); + } + if(group.getStratTypes().contains(typeName)) { + return ResponseEntity.status(HttpStatus.CONFLICT).build(); + } + + group.getStratTypes().add(typeName); + + groupService.saveGroup(group); + + return ResponseEntity.ok(group); + } + + @DeleteMapping("/{id}/strat-type/{typeName}") + public ResponseEntity removeStratType(@PathVariable String id, @PathVariable String typeName) { + StratsUser user = getUser(); + + Group group = groupService.getGroupById(id); + if (group == null | !group.getStratTypes().contains(typeName)) { + return ResponseEntity.notFound().build(); + } + if (!group.getMembers().contains(user)) { + return ResponseEntity.status(HttpStatus.FORBIDDEN).build(); + } + + group.getStratTypes().remove(typeName); + + groupService.saveGroup(group); + + return ResponseEntity.ok(group); + } @PostMapping("/{id}/member") public ResponseEntity addUserToGroup(@PathVariable String id, @RequestBody String userId) { diff --git a/src/main/java/me/akito123321/valoStrats/schemas/Profile.java b/src/main/java/me/akito123321/valoStrats/schemas/Profile.java index 3eb743e..4922703 100644 --- a/src/main/java/me/akito123321/valoStrats/schemas/Profile.java +++ b/src/main/java/me/akito123321/valoStrats/schemas/Profile.java @@ -17,6 +17,10 @@ public class Profile { @Lob @Column(length = Integer.MAX_VALUE) private byte[] image; + + public Profile() { + + } public Profile(String name, byte[] image) { super();