feat: make /accept invitations takes JSON instead of URL encoded input

This commit is contained in:
sBubshait 2025-07-22 10:34:08 +03:00
parent fde42dd414
commit b65c8a7340
2 changed files with 28 additions and 6 deletions

View File

@ -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<ApiResponse<Void>> 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()));

View File

@ -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;
}
}