class RequestController extends AbstractController {

    @PostMapping("/requests/{id}/claim")
    public ModelAndView claimRequest(Principal principal, @PathVariable Long id, @Valid UserClaimRequest userClaimRequest, RedirectAttributes redirectAttributes) {
        if (!profileService.getUserProfile(principal).userOwnsAddress(userClaimRequest.getAddress())) {
            return redirectView(redirectAttributes)
                    .withDangerMessage("Please update <a href=\"/profile\">your profile</a> with a correct ether address.")
                    .url("/requests/" + id)
                    .build();
        }
        RequestDto request = requestService.findRequest(id);
        claimService.claim(principal,
                           userClaimRequest);
        return redirectView(redirectAttributes)
                .withSuccessMessage("Your claim has been requested and is waiting for approval.")
                .url("/requests/" + id)
                .build();
    }

    public  RequestController(final SecurityContextService securityContextService,
                             final RequestService requestService,
                             final PendingFundService pendingFundService,
                             final StatisticsService statisticsService,
                             final ProfileService profileService, FundService fundService,
                             final RefundService refundService,
                             final ClaimService claimService,
                             final FiatService fiatService,
                             final PlatformIssueService platformIssueService,
                             final ObjectMapper objectMapper,
                             final Mappers mappers);

}