[résolu] SOAP PHP et calendrier de ressource

Salut,

Bon, je galère comme pas possible pour récupérer les données d’un calendrier d’une ressource.
Mon besoin: récupérer les événements des x jours à venir d’un calendrier de ressource (une salle de réunion par exemple), pour les afficher sur une page Web.

Avec le code suivant, j’arrive à afficher les données du calendrier d’un utilisateur (ici l’user est ctentacule@domain.fr)

?php

$serv = new SoapClient('http://@IP_DU_SERVEUR_BM/soap/proxy?wsdl', array('cache_wsdl' => WSDL_CACHE_NONE));
$login = $serv->login(array('arg0' => 'admin0@global.virt', 'arg1' => '0ebe3c45-5969-452-a459-5c707ca439fa', 'arg2' => 'soap'));
$token = $login->return;
if($token->sessionId) {
        //var_dump($serv->__getFunctions());
        $datatest = array ('arg0' => $token, 'arg1' => 'ctentacule@domain.fr', 'arg2' => 'VEVENT');
        var_dump($serv-> getAllEvents($datatest));
        

//        var_dump($serv-> listCalendars(array('arg0' => $token)));
$serv->logout(array('arg0' => $token));
} else {
  echo "invalid login/password";
}

Mais, impossible de trouver comment récupérer les données d’un calendrier de ressource. On m’a mis sur une piste en me disant qu’il faudrait passer par la fonction find.
Et là … je suis totalement perdu… La doc indique ça pour la fonction find:

find

OccurrenceFactory find(AccessToken token,
                     CalendarQuery cq)
                       throws AuthFault,
                              ServerFault

Throws:
    AuthFault
    ServerFault

en gros, j’en fais quoi ? elle fonctionne comment ? parce que j’ai beau lire la doc, un calendarQuery, je vois pas trop ce que s’est.
Bon, forcément, si au départ j’étais dev et pas sysadmin, ça serait surement plus simple…

Alex perplex

Un CalendarQuery est un objet fourni par notre API. Il est décrit ici.

En java, l’utilisation donne quelque chose du genre:

Set<Integer> calendars = new HashSet<Integer>();
calendars.add(resource.getCalendarId());
cq.setCalendars(calendars);
OccurrenceFactory of = cal.find(token, cq);

assertEquals(1, of.getEvents().size());

avec resource du type Resource.

Et plus explicitement le CalendarQuery est un objet pour requeter les calendrier, donc permet de saisir les critères, puis envoyer la requête et récupérer en résultat la liste des événements correspondants
Cordialement