package de.ph87.tools.group; import de.ph87.tools.group.requests.GroupChangePasswordRequest; import de.ph87.tools.group.requests.GroupChangeTitleRequest; import de.ph87.tools.group.requests.GroupJoinRequest; import de.ph87.tools.group.requests.GroupUserRequest; import de.ph87.tools.group.uuid.GroupUuid; import de.ph87.tools.user.uuid.UserPrivateUuid; import de.ph87.tools.user.uuid.UserPublicUuid; import jakarta.annotation.Nullable; import jakarta.servlet.http.HttpServletResponse; import lombok.NonNull; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.Set; @CrossOrigin @RestController @RequiredArgsConstructor @RequestMapping("Group") public class GroupController { private final GroupService groupService; private final GroupAccessService groupAccessService; @GetMapping("create") public GroupDto create(@Nullable final UserPrivateUuid privateUuid, @NonNull final HttpServletResponse response) { return groupService.create(privateUuid, response); } @PostMapping("canAccess") public boolean canAccess(@Nullable final UserPrivateUuid privateUuid, @NonNull final GroupUuid groupUuid) { return groupAccessService.canAccess(privateUuid, groupUuid); } @PostMapping("delete") public void delete(@NonNull final UserPrivateUuid privateUuid, @NonNull final GroupUuid groupUuid) { groupAccessService.delete(privateUuid, groupUuid); } @PostMapping("get") public GroupDto get(@NonNull final UserPrivateUuid privateUuid, @NonNull final GroupUuid groupUuid) { return groupService.get(privateUuid, groupUuid); } @NonNull @GetMapping("findAllJoined") public Set findAllJoined(@NonNull final UserPrivateUuid userUuid) { return groupService.findAllJoined(userUuid); } @NonNull @PostMapping("findAllCommon") public Set findAllCommon(@NonNull final UserPrivateUuid userUuid, @NonNull final UserPublicUuid targetUuid) { return groupService.findAllCommon(userUuid, targetUuid); } @PostMapping("join") public GroupDto join(@Nullable final UserPrivateUuid privateUuid, @NonNull @RequestBody final GroupJoinRequest request, @NonNull final HttpServletResponse response) { return groupService.join(privateUuid, request, response); } @PostMapping("kick") public void kick(@NonNull final UserPrivateUuid privateUuid, @NonNull @RequestBody final GroupUserRequest request) { groupService.kick(privateUuid, request); } @PostMapping("ban") public void ban(@NonNull final UserPrivateUuid privateUuid, @NonNull @RequestBody final GroupUserRequest request) { groupService.ban(privateUuid, request); } @PostMapping("unban") public void unban(@NonNull final UserPrivateUuid privateUuid, @NonNull @RequestBody final GroupUserRequest request) { groupService.unban(privateUuid, request); } @PostMapping("changeTitle") public GroupDto changeTitle(@NonNull final UserPrivateUuid privateUuid, @NonNull @RequestBody final GroupChangeTitleRequest request) { return groupService.changeTitle(privateUuid, request); } @PostMapping("changePassword") public GroupDto changePassword(@NonNull final UserPrivateUuid privateUuid, @NonNull @RequestBody final GroupChangePasswordRequest request) { return groupService.changePassword(privateUuid, request); } @PostMapping("leave") public void leave(@NonNull final UserPrivateUuid privateUuid, @NonNull final GroupUuid groupUuid) { groupService.leave(privateUuid, groupUuid); } }