class RequestController extends AbstractController {

    @PostMapping(value = {"/requests/{id}/watch"}, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ResponseBody
    public String toggleWatchRequest(Principal principal, @PathVariable Long id) {
        RequestDto request = requestService.findRequest(id);
        if (request.isLoggedInUserIsWatcher()) {
            request.setLoggedInUserIsWatcher(false);
            requestService.removeWatcherFromRequest(principal, id);
        } else {
            request.setLoggedInUserIsWatcher(true);
            requestService.addWatcherToRequest(principal, id);
        }
        RequestView requestview = mappers.map(RequestDto.class, RequestView.class, request);

        return getAsJson(requestview);
    }

    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);

}