Una de las opciones que nos ofrece la API de Bookitit es obtener el listado de clientes que tenemos en nuestro panel, de esta forma podríamos utilizar esta petición para poder sincronizar estos clientes con los de nuestro sistema o simplemente para obtener información de ellos. A esta función hay que suministrar dos fechas, fecha de inicio y fecha de fin. Con ellas indicaremos que queremos obtener los clientes que se crearon entre estas fechas. La diferencia de días máxima que se puede introducir es de 30.

public static void main(String[] args) throws Exception{

 CRestClient oRestClient = new CRestClient();

 String sClients = oRestClient.getClients(«json», true, «2014-01-01», «2014-01-30»);
 sClients=»[«+sClients+»]»;
 JSONParser parser=new JSONParser();
 JSONArray obj=(JSONArray) parser.parse(sClients);
 HashMap hashClients=(HashMap)((JSONObject)obj.get(0)).get(«clients»);
 if(hashClients.get(«status»).equals(«true»)){
  hashClients.remove(«status»);
  Iterator it = hashClients.entrySet().iterator();
  while(it.hasNext()) {
   Map.Entry e = (Map.Entry)it.next();
   System.out.println(e.getKey());
   JSONObject oClient = (JSONObject)e.getValue();
   System.out.println(oClient.get(«id»));
   System.out.println(oClient.get(«user_id»));
   System.out.println(oClient.get(«name»));
  System.out.println(oClient.get(«cellphone»));

  }
 }
 else{
  //error
 }

}

Podemos ver que la llamada al método getClients sólo se pasan 4 parámetros:

String sClients = oRestClient.getClients(«json», true, «2014-01-01», «2014-01-30»);

Para esta petición hay que tener en cuenta que entre los campos que se devuelven aparecerá el id_cliente y el id_usuario. Bookitit diferencia entre clientes y usuarios. Básicamente un cliente es un usuario sin acceso web, mientras que un usuario es un usuario con acceso web. Cuando se habla de acceso web es que tiene acceso para reservar a través del widget.

Estos valores hay que tenerlos en cuenta si se va a crear un evento o cita a través de la API ya que nos pedirá un id de usuario. Este id de usuario será el de acceso web (user_id).

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.