OBTENER LAS HORAS DISPONIBLES DE UNA AGENDA

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:

getFreeSlots(«id_servicio», «id_agenda»,»2013-09-20″,»xml»,true);
 $oXml = new SimpleXMLElement($sFreeSlots);
 $someAvailableHours = $oXml->children();
 $sValue = (string)$someAvailableHours->status;
 $someFreeHours = array();
 if (strcasecmp($sValue, «true») == 0) {
  foreach ($oXml->children()->slot->hour as $sHour){
    $someFreeHours[] = (string)$sHour;
  }
  for ($i=0;$i<count($someFreeHours);$i++)
  {
   echo $someFreeHours[$i];
   echo $oRestClient->renderMinutes($someFreeHours[$i]);
  }
 }
 else {
  //error
}

?>

Podemos ver que la llamada al método getFreeSlots se compone de 5 parámetros:

$sFreeSlots = $oRestClient->getFreeSlots(«id_servicio», «id_agenda»,»2013-09-20″,»xml»,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.