@POST
  @Consumes(MediaType.APPLICATION_JSON)
  public Response addEvent(Event event) {
    if (authenticated) {
      Event evt = new Event(event);

      String sql =
          "INSERT INTO event (eventName, eventDescription, dateFrom, dateTo) VALUES( '"
              + evt.getEventName()
              + "', '"
              + evt.getEventDescription()
              + "', '"
              + evt.getDateFromString()
              + "'"
              + ",'"
              + evt.getDateToString()
              + "')";
      try {
        sqlCon.getStatement().executeUpdate(sql);
        return Response.status(Status.ACCEPTED).build();
      } catch (Exception e) {
        e.printStackTrace();
        return Response.status(Status.BAD_REQUEST).build();
      } finally {
        sqlCon.closeConnection();
      }
    } else {
      return Response.status(Status.FORBIDDEN).build();
    }
  }
 @DELETE
 @Path("/{eventId}")
 public Response deleteEvent(@PathParam("eventId") String eventId) {
   if (authenticated) {
     try {
       sqlCon.getStatement().executeUpdate("DELETE FROM event WHERE eventId = " + eventId);
       return Response.status(Status.ACCEPTED).build();
     } catch (Exception e) {
       e.printStackTrace();
       return Response.status(Status.BAD_REQUEST).build();
     } finally {
       sqlCon.closeConnection();
     }
   } else {
     return Response.status(Status.FORBIDDEN).build();
   }
 }
  @GET
  @Produces(MediaType.APPLICATION_JSON)
  @Path("register/{userId}")
  public Response getEventsAvailableForRegistration(@PathParam("userId") String userId) {

    List<Event> events = new ArrayList<Event>();
    if (authenticated) {
      try {

        ResultSet rs =
            sqlCon
                .getStatement()
                .executeQuery(
                    "SELECT event.eventId, event.eventName, event.eventDescription, event.dateFrom, event.dateTo "
                        + "FROM event where not exists ( select eventId from user_event where event.eventId = user_event.eventId "
                        + "AND user_event.userId = "
                        + userId
                        + " );");

        while (rs.next()) {
          Event event = new Event();

          long eventId = Long.parseLong(rs.getString("eventId"));
          event.setEventId(eventId);
          event.setEventName(rs.getString("eventName"));
          event.setEventDescription(rs.getString("eventDescription"));
          Calendar cal = new GregorianCalendar();
          cal.set(2012, Calendar.AUGUST, 15, 15, 30);
          // event.setDateFrom(cal);
          // event.setDateTo(rs.getString("dateTo"));

          events.add(event);
        }
      } catch (Exception e) {
        e.printStackTrace();
      } finally {
        sqlCon.closeConnection();
      }

      GenericEntity<List<Event>> entity = new GenericEntity<List<Event>>(events) {};
      return Response.status(Status.ACCEPTED).entity(entity).build();
    } else {
      return Response.status(Status.FORBIDDEN).build();
    }
  }
 @POST
 @Path("/register/{userId}/{eventId}")
 // @Consumes(MediaType.APPLICATION_JSON)
 public Response registerUserForEvent(
     @PathParam("userId") String userId, @PathParam("eventId") String eventId) {
   if (authenticated) {
     String sql =
         "INSERT INTO user_event (userId, eventId) VALUES(" + userId + ", " + eventId + ")";
     try {
       sqlCon.getStatement().executeUpdate(sql);
       return Response.status(Status.ACCEPTED).build();
     } catch (SQLException e) {
       e.printStackTrace();
       return Response.status(Status.BAD_REQUEST).build();
     }
   } else {
     return Response.status(Status.FORBIDDEN).build();
   }
 }
  @PUT
  @Path("/{eventId}")
  @Consumes(MediaType.APPLICATION_JSON)
  public Response updateEvent(Event event, @PathParam("eventId") String eventId) {
    if (authenticated) {
      Event evt = new Event(event);

      String sql =
          "UPDATE event SET eventName = '"
              + evt.getEventName()
              + "', eventDescription = "
              + "'"
              + evt.getEventDescription()
              + "', dateFrom = "
              + "'"
              + evt.getDateFrom()
              + "'"
              + ", dateTo = "
              + "'"
              + evt.getDateTo()
              + "'"
              + " WHERE eventId ="
              + eventId;

      try {
        sqlCon.getStatement().executeUpdate(sql);
        return Response.status(Status.ACCEPTED).build();
      } catch (Exception e) {
        e.printStackTrace();
        return Response.status(Status.BAD_REQUEST).build();
      } finally {
        sqlCon.closeConnection();
      }
    } else {
      return Response.status(Status.FORBIDDEN).build();
    }
  }
  @GET
  @Produces(MediaType.APPLICATION_JSON)
  public Response getEvents() {

    List<Event> events = new ArrayList<Event>();
    if (authenticated) {
      try {

        ResultSet rs = sqlCon.getStatement().executeQuery("SELECT * FROM event");

        while (rs.next()) {
          Event event = new Event();

          long eventId = Long.parseLong(rs.getString("eventId"));
          event.setEventId(eventId);
          event.setEventName(rs.getString("eventName"));
          event.setEventDescription(rs.getString("eventDescription"));
          Calendar cal = new GregorianCalendar();
          cal.set(2012, Calendar.AUGUST, 15, 15, 30);
          // event.setDateFrom(cal);
          // event.setDateTo(rs.getString("dateTo"));

          events.add(event);
        }
      } catch (Exception e) {
        e.printStackTrace();
      } finally {
        sqlCon.closeConnection();
      }

      GenericEntity<List<Event>> entity = new GenericEntity<List<Event>>(events) {};
      return Response.status(Status.ACCEPTED).entity(entity).build();
    } else {
      return Response.status(Status.FORBIDDEN).build();
    }
  }