HouseholdInvitationController.java
package com.hwhub.backend.presentation.rest.invitation;
import com.hwhub.backend.application.service.HouseholdInvitationService;
import com.hwhub.backend.domain.model.HouseholdInvitationModel;
import com.hwhub.backend.presentation.rest.invitation.dto.InvitationResponce;
import com.hwhub.backend.security.CurrentUserId;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/household-invitations")
@RequiredArgsConstructor
public class HouseholdInvitationController {
private final HouseholdInvitationService service;
@Operation(security = {})
@GetMapping("/{token}")
public InvitationResponce getInvitation(@PathVariable("token") String token) {
HouseholdInvitationModel model = service.getInvitation(token);
return InvitationResponce.fromModel(model);
}
@PostMapping("/{token}/accept")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void accept(@PathVariable("token") String token, @CurrentUserId Long loginUserId) {
service.acceptInvitation(token, loginUserId);
}
@PostMapping("/{token}/decline")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void decline(@PathVariable("token") String token, @CurrentUserId Long loginUserId) {
service.declineInvitation(token, loginUserId);
}
@PostMapping("/{token}/revoke")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void revoke(@PathVariable("token") String token, @CurrentUserId Long loginUserId) {
service.revokeInvitation(token, loginUserId);
}
}