Sistema de calendario y reservas online: API disponibilidad java
Usamos cookies propias y de terceros para mejorar nuestros servicios y mostrar publicidad según tus preferencias. Si continúas navegando, consideramos que aceptas su uso. Más información aquí
Para obtener las horas libres de una agenda necesitarás saber previamente para que servicio y agenda las quieres obtener. El método empleado para obtener esta información es getFreeSlots.

A continuación vemos un ejemplo de como obtener todas las agendas de un centro, recuerda que puedes obtenerlas mediante xml o json, en este caso vamos a ver un ejemplo mediante xml:

public static void main(String[] args) throws Exception{
 CRestClient oRestClient = new CRestClient();

 String sFreeSlots = oRestClient.getFreeSlots("id_servicio", "id_agenda", "2013-09-20", "json", true);

 sFreeSlots="["+sFreeSlots+"]";
 JSONParser parser=new JSONParser();
 JSONArray obj=(JSONArray) parser.parse(sFreeSlots);
 HashMap hashFree=(HashMap)((JSONObject)obj.get(0)).get("slots");
 if(hashFree .get("status").equals("true")){
  hashFree.remove("status");
  Iterator it = hashFree.entrySet().iterator();
  while(it.hasNext()) {
   Map.Entry e = (Map.Entry)it.next();
   System.out.println(e.getKey());
   JSONArray someSlots = (JSONArray)e.getValue();
   for(int i=0;i     System.out.println(someSlots.get(i));
    int iMinutes = oRestClient.renderMinutes((String)someSlots.get(i));
    System.out.println(iMinutes);
   }
   someSlots.removeAll(someSlots);

  }
 }
  else{
  //error
 }


}

Podemos ver que la llamada al método getFreeSlots se compone de 5 parámetros:
String sFreeSlots = oRestClient.getFreeSlots("id_servicio", "id_agenda", "2013-09-20", "json", true);

Además es importante tener en cuenta el método renderMinutes. Esta función es una utilidad que se encarga de convertir el formato HH:MM en formato minutos desde las 00:00. Por ejemplo:

00:00 = 0
01:00 = 60
02:00 = 120

Son minutos desde las 00:00 de la noche. Esta función hay que tenerla en cuenta cuando se llame al método de crear un evento ya que las horas de inicio y fin se tienen que introducir en este formato.

Todas las peticiones son devueltas con un campo “status”. Ese campo indica si la petición fue correcta o falló.

En caso de fallo se devuelve un xml o json con el siguiente formato.

En todas las llamadas se devuelve un campo status que indica el resultado de la petición. En caso de que haya un error, dependiendo de si has solicitado la petición en json o en xml se devolverá con el siguiente formato:

xml
<?xml version='1.0' encoding='utf-8'?>
<services>
<status>false</status>
<id>error id</id>
<message>error message</message>
</services>

json
 {"services":
  {
   "status":false,
   "id":error id,
   "message":error message
  }
}

Si quieres saber más sobre esta función puedes acceder a la referencia completa.