@POST @Path("/{registrationId}") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public Response postUpdate( @Context HttpServletRequest request, @PathParam("registrationId") UUID id, String body) throws Exception { authService.guardAuthenticatedUser(request); Either<String, RegistrationsUpdate> map = ArgoUtils.parseEither(body) .right() .map(x -> x.getNode("tuple")) .right() .bind(RegistrationsRestService::registrationsUpdate); if (map.isLeft()) return Response.serverError().build(); RegistrationsUpdate ru = map.right().value(); try (Connection c = dataSource.getConnection()) { c.setAutoCommit(false); if (!registrationsSqlMapper.one(c, id).isSome()) return Response.status(Status.NOT_FOUND).build(); registrationsSqlMapper.update( c, id, ru.billingCompany, ru.badge, ru.dietaryRequirements, ru.bundle); c.commit(); } return Response.ok().build(); }