@DELETE
  @Path("{id}")
  public Response deleteResourceType(
      @PathParam("id") Long id, @Context HttpServletRequest request) {

    if (!AuthenticationUtils.isAdmin(request.getSession()))
      return Response.status(Response.Status.UNAUTHORIZED).build();

    final ResourceTypeService resourceTypeService = new ResourceTypeServiceImpl();
    final ResourceType resourceType = resourceTypeService.find(id);

    if (resourceType == null) {
      return Response.status(Response.Status.BAD_REQUEST).build();
    }
    try {
      resourceTypeService.delete(resourceType);
    } catch (RollbackException cve) {
      return Response.status(Response.Status.CONFLICT)
          .entity(
              "You can't delete a resource type because one resource is linked to a reservation")
          .build();
    }

    return Response.status(Response.Status.OK)
        .entity("ResourceType " + resourceType.getName() + " has been successfully deleted.")
        .build();
  }
  @PUT
  public Response createResourceType(
      @FormParam("name") final String name, @Context HttpServletRequest request) {

    if (!AuthenticationUtils.isAdmin(request.getSession()))
      return Response.status(Response.Status.UNAUTHORIZED).build();

    ResourceTypeService resourceTypeService = new ResourceTypeServiceImpl();

    final ResourceType resourceType = new ResourceType(name);

    resourceTypeService.create(resourceType);
    return Response.status(Response.Status.OK)
        .entity("ResourceType " + resourceType.getName() + " has been successfully created.")
        .build();
  }
  @POST
  public Response editResourceType(
      @FormParam("id") final Long id,
      @FormParam("name") final String name,
      @Context HttpServletRequest request) {

    if (!AuthenticationUtils.isAdmin(request.getSession()))
      return Response.status(Response.Status.UNAUTHORIZED).build();

    final ResourceTypeService resourceTypeService = new ResourceTypeServiceImpl();
    final ResourceType resourceType = resourceTypeService.find(id);

    if (resourceType == null) {
      return Response.status(Response.Status.BAD_REQUEST).build();
    }

    resourceType.setName(name);

    resourceTypeService.update(resourceType);
    return Response.status(Response.Status.OK)
        .entity("ResourceType " + resourceType.getName() + " has been successfully edited.")
        .build();
  }