Table des matières

Tool Sync : API de Web Services

Service de pilotage à distance du composant

Les Web services permettent une interaction de briques logicielles externes avec le composant.

tool_sync_set_config( service, confkey, confvalue )

Synopsys : Cette fonction permet de modifier à distance n'importe quel paramètre de configuration de l'outil de synchronisation.

Tables de configuration de service

Service : courses

Clef Valeurs
fileuploadlocation nom de fichier
filedeletelocation nom de fichier
filedeleteidentifier id, shortname, idnumber
fileexistlocation nom de fichier
existfileidentifier id, shortname, idnumber
fileresetlocation nom de fichier
fileresetidentifier id, shortname, idnumber
forceupdate 0 ou 1

Service : users

Clef Valeurs
filelocation nom de fichier
primaryidentity id, idnumber, username, email

Service : enrols

Clef Valeurs
filelocation nom de fichier
courseidentifier id, idnumber, shortname
useridentifier id, idnumber, username, email

Service : cohorts

Clef Valeurs
filelocation nom de fichier
useridentifier id, idnumber, username, email
cohortidentifier id, idnumber
autocreate 0 ou 1
syncdelete 0 ou 1

tool_sync_commit_file( draftitemid )

Synopsis : Cette fonction permet de déplacer un fichier préalablement téléchargé en zone draft vers son emplacement final dans le système de fichiers de l'outil de synchronisation.

Exemple de mise en oeuvre en PHP :

      $path = '<location_of_the_file>';
      
      $params = array('token' => '<valid_token>',
                      'itemid' => 0,
                      'filearea' => 'draft');
      
      $uploadurl = '<moodle_url>/webservice/upload.php';
      $ch = curl_init($uploadurl);
      
      $curlfile = new CURLFile($path, 'x-application/zip', basename($path));
      $params['resourcefile'] = $curlfile;
      
      curl_setopt($ch, CURLOPT_POST, true);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
      
      echo "Firing CUrl $uploadurl ... \n";
      if (!$result = curl_exec($ch)) {
          echo "CURL Error : ".curl_error($ch)."\n";
          return;
      }
       
      $result = json_decode($result);
      $filerec = array_pop($result);
      
      // Now commit the file.
      
      $params = array('wstoken' => '<valid_token>',
                      'wsfunction' => 'tool_sync_commit_file',
                      'moodlewsrestformat' => 'json',
                      'draftitemid' => $filerec->itemid);
      
      $commiturl = '<moodle_url>/webservice/rest/server.php';
      
      $this->send($commiturl, $params);

tool_synch_process( service, action )

Synopsis : Déclenche le traitement de synchronisation approprié sur la base de la configuration actuelle de l'outil.

tool_sync_deploy_course( categorysourceid, categoryid, templatesourceid, templateid, shortname, fullname, idnumber, replacements)

Synopsis : Permet de déployer un cours sur la base d'une archive de cours existante ou d'une sauvegarde disponible dans le système de fichiers.

(*) Syntaxe en cours d'expérimentation / documentation à développer

Exemple de séquence de déclenchement externe

Pour une opération pilotée de l'extérieur, voici la séquence complète d'opérations à effectuer :

Service d'unification des manoeuvres des objets métiers primaires

Ce service est destiné à compléter ou prendre la main sur les Web Services standards de Moodle, lorsque ces derniers sont en carence d'unification d'API en particulier en ce qui concerne les identifiants primaires des objets métiers principaux de Moodle.

Ce plan de service ajoutera des fonctions manquates à l'API standard, ou proposera une signature alternative pour les fonctions qui ne présentent pas de possibilité d'utiliser les identifiants externes ou alternatifs sur les objets métiers à manoeuvrer.

En général, on s'accorde de pouvoir fournir toutes les entrées possibles d'identification sur les bases suivantes :

Entité Identifiants possibles
Cours id, shortname, idnumber
Utilisateur id, username(@mnethostid), idnumber, email
Cohorte id, idnumber
Groupe de cours id, IDCours@name
Role id, shortname

Actuellement implémenté


Retour au guide technique - Retour à l'index du composant - Retour au catalogue