From b65c8a7340a534bafd15782177cbd100e42c2eb8 Mon Sep 17 00:00:00 2001 From: sBubshait Date: Tue, 22 Jul 2025 10:34:08 +0300 Subject: [PATCH] feat: make /accept invitations takes JSON instead of URL encoded input --- .../controller/InvitationController.java | 9 +++---- .../wesal/dto/AcceptInvitationRequest.java | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 backend/src/main/java/online/wesal/wesal/dto/AcceptInvitationRequest.java diff --git a/backend/src/main/java/online/wesal/wesal/controller/InvitationController.java b/backend/src/main/java/online/wesal/wesal/controller/InvitationController.java index e3d9e11..7dc2058 100644 --- a/backend/src/main/java/online/wesal/wesal/controller/InvitationController.java +++ b/backend/src/main/java/online/wesal/wesal/controller/InvitationController.java @@ -3,6 +3,7 @@ package online.wesal.wesal.controller; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; +import online.wesal.wesal.dto.AcceptInvitationRequest; import online.wesal.wesal.dto.ApiResponse; import online.wesal.wesal.dto.CategorizedInvitationsResponse; import online.wesal.wesal.dto.CreateInvitationRequest; @@ -98,16 +99,12 @@ public class InvitationController { @PostMapping("/accept") @Operation(summary = "Accept invitation", description = "Accept an invitation by ID") public ResponseEntity> acceptInvitation( - @RequestParam Long id, + @Valid @RequestBody AcceptInvitationRequest request, Authentication authentication) { - if (id == null || id <= 0) { - return ResponseEntity.badRequest().body(ApiResponse.error("Valid invitation ID is required")); - } - try { String userEmail = authentication.getName(); - invitationService.acceptInvitation(id, userEmail); + invitationService.acceptInvitation(request.getId(), userEmail); return ResponseEntity.ok(new ApiResponse<>(true)); } catch (RuntimeException e) { return ResponseEntity.badRequest().body(ApiResponse.error(e.getMessage())); diff --git a/backend/src/main/java/online/wesal/wesal/dto/AcceptInvitationRequest.java b/backend/src/main/java/online/wesal/wesal/dto/AcceptInvitationRequest.java new file mode 100644 index 0000000..088e8cc --- /dev/null +++ b/backend/src/main/java/online/wesal/wesal/dto/AcceptInvitationRequest.java @@ -0,0 +1,25 @@ +package online.wesal.wesal.dto; + +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Positive; + +public class AcceptInvitationRequest { + + @NotNull(message = "Invitation ID is required") + @Positive(message = "Invitation ID must be positive") + private Long id; + + public AcceptInvitationRequest() {} + + public AcceptInvitationRequest(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } +} \ No newline at end of file