ServiceWeb vols
Attention ! Cette fonctionnalité apparaîtra en mars 2018 avec la version 3.3.
Ce service Web remplace l'ancienne version qui utilisait SOAP. Maintenant, il utilise l'envoi d'objets encodé en JSON sur une liaison cryptée (HTTPS).
L'ancienne version pourra encore être utilisée en 2018. Pour ceci, vous devez mettre en place l'utilisateur décrit ci-dessous, le mot de passe étant celui du club (utilisé par le module PDA ou PC).
Sommaire
Authentification
Pour accéder au service Web, il faut créer un utilisateur dédié.
Cet utilisateur se voit affecter un rôle limité à l'accès au service Web des vols.
/**
* Exécution d'un requête vers le serveur
*
* @param string $fonction Action à exécuter
* @param array $params Tableau des variables à transmettre
* @return object
*/
function sendGivav($fonction,$params)
{
// Données de connexion
$post = array(
'assoc' => '524901'
,'utilisateur' => 'sw.vol'
,'mot_de_passe' => 'mon mot de passe'
);
$post = array_merge($post,$params);
$post_string = ;
foreach ($post as $key => $value) {
$post_string .= $key . '=' . $value . '&';
}
$post_string = rtrim($post_string,'&');
// Requête
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost:10095/givav.php/gvsw/vol/' . $fonction);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_SSLVERSION,3);
$response = curl_exec($ch);
if ($response === false) {
if (is_numeric(curl_errno($ch)) and function_exists('curl_strerror')) {
throw new Exception('Curl error : ' . curl_strerror(curl_errno($ch)));
} else {
throw new Exception('Curl error : ' . curl_errno($ch));
}
}
curl_close($ch);
return json_decode($response);
}
Cette fonction montre comment envoyer une requête en PHP au service Web des vols.
Les variables $fontion et $params sont expliquées plus loin.
Liste des aéronefs
Cette fonction permet de récupérer la liste des aéronefs.
// Liste des aéronefs
$aeronefs = sendGivav('getAeronef',array('actif' => true,'planeur' => true,'avion' => true,'ulm' => true,'tmg' => true,'simulateur' => false));
print_r($aeronefs);
Ce code PHP demande au serveur de lui retourner les aéronefs actifs sauf les simulateurs.
La variable $fonction a comme valeur getAeronef, le tableau $params contient :
- actif : (booléen) true pour retourner uniquement les aéronefs actifs.
- planeur : (booléen) true pour retourner les planeurs.
- avion : (booléen) true pour retourner les avions.
- ulm : (booléen) true pour retourner les ULM.
- tmg : (booléen) true pour retourner les TMG.
- simulateur : (booléen) true pour retourner les simulateurs.
[0] => stdClass Object
(
[id_aeronef] => 23
[immatriculation] => F-BRKD
[nom_type] => MS 893
[no_concours] =>
[categorie] => A
[nb_places] => 4
[treuillable] =>
[remorquable] =>
[turbo] =>
[autonome] => 1
[saisie_moteur] => C
[remorqueur] => 1
[saisie_remorque] => C
[flarm_id] =>
[actif] => 1
[situation] => B
)
[1] => stdClass Object
(
[id_aeronef] => 444
[immatriculation] => F-CCDF
[nom_type] => ASK 21
[no_concours] => DF
[categorie] => P
[nb_places] => 2
[treuillable] => 1
[remorquable] => 1
[turbo] =>
[autonome] =>
[saisie_moteur] =>
[remorqueur] =>
[saisie_remorque] =>
[flarm_id] => DDDCBF
[actif] => 1
[situation] => C
)
Voici deux aéronefs retournés par le serveur.
// Aéronef
class Aeronef
{
/**
* Identifiant unique de l'aéronef
*
* @var integer
*/
public $id_aeronef;
/**
* Immatriculation
*
* @var string
*/
public $immatriculation;
/**
* Type de l'aéronef
*
* @var string
*/
public $nom_type;
/**
* Numéro de concours
*
* @var string
*/
public $no_concours;
/**
* Catégorie d'aéronef P = planeur, A = avion, U = UML, T = TMG, S = simulateur
*
* @var string
*/
public $categorie;
/**
* Nombre de places
*
* @var integer
*/
public $nb_places;
/**
* Est-il treuillable ? (Planeur, ULM)
*
* @var boolean
*/
public $treuillable;
/**
* Est-il remorquable ? (Planeur, ULM)
*
* @var boolean
*/
public $remorquable;
/**
* Le planeur est-il équipé d'un turbo ? (Planeur)
*
* @var boolean
*/
public $turbo;
/**
* L'aéronef décolle-t-il seul ? (Planeur, ULM)
*
* @var boolean
*/
public $autonome;
/**
* Mode de saisie du temps moteur (autonome ou turbo) T = Heures, minutes et secondes, C = Centièmes, H = Horamètre début et fin
*
* @var string
*/
public $saisie_moteur;
/**
* Cet aéronef est-il un remorqueur ? (Avion, ULM, TMG)
*
* @var boolean
*/
public $remorqueur;
/**
* Mode de saisie du temps de remorquage (remorqueur) T = Heures, minutes et secondes, C = Centièmes, H = Horamètre début et fin
*
* @var string
*/
public $saisie_remorque;
/**
* Identifiant unique du FLARM
*
* @var string
*/
public $flarm_id;
/**
* Est-il actif ?
*
* @var boolean
*/
public $actif;
/**
* Situation par rapport au club : C = club, P = privé, B = banalisé, E = extérieur
*
* @var string
*/
public $situation;
}
Ci-dessus, la description de l'objet retourné pour un aéronef.
Liste des treuils
Cette fonction permet de récupérer la liste des treuils.
// Liste des treuils
$treuils = sendGivav('getTreuil',array('actif' => true));
print_r($treuils);
Ce code PHP demande au serveur de lui retourner les treuils actifs.
La variable $fonction a comme valeur getTreuil, le tableau $params contient :
- actif : (booléen) true pour retourner uniquement les treuils actifs.
[0] => stdClass Object
(
[id_treuil] => 2
[nom] => TOST 1
[exterieur] =>
[actif] => 1
)
[1] => stdClass Object
(
[id_treuil] => 1
[nom] => TOST 2
[exterieur] =>
[actif] => 1
)
[2] => stdClass Object
(
[id_treuil] => 3
[nom] => Treuil extérieur (autre club)
[exterieur] => 1
[actif] => 1
)
Voici trois treuils retournés par le serveur.
// Treuil
class Treuil
{
/**
* Identifiant unique du treuil
*
* @var integer
*/
public $id_treuil;
/**
* Nom
*
* @var string
*/
public $nom;
/**
* Est-ce un treuil extérieur ?
*
* @var boolean
*/
public $exterieur;
/**
* Le treuil est-il actif ?
*
* @var boolean
*/
public $actif;
}
Ci-dessus, la description de l'objet retourné pour un treuil.
Liste des pilotes
Cette fonction permet de récupérer la liste des pilotes.
// Liste des pilotes
$pilotes = sendGivav('getPilote',array('actif' => true,'planeur' => true,'avion' => true,'ulm' => true));
print_r($pilotes);
Ce code PHP demande au serveur de lui retourner les pilotes actifs quelque soit l'activité pratiquée.
La variable $fonction a comme valeur getPilote, le tableau $params contient :
- actif : (booléen) true pour retourner uniquement les pilote actifs. Si false, les pilotes actifs dans les 3 ans sont retournés.
- planeur : (booléen) true pour retourner les pilote qui participent à l'activité planeurs.
- avion : (booléen) true pour retourner les pilote qui participent à l'activité avions.
- ulm : (booléen) true pour retourner les pilote qui participent à l'activité ULM.
[28] => stdClass Object
(
[code] => P2272
[nom_prenom] => MOREAU CHRISTOPHE
[actif] => 1
[planeur] => 1
[avion] => 1
[ulm] =>
[instructeur_planeur] => 1
[instructeur_avion] =>
[instructeur_ulm] =>
[vi_planeur] => 1
[vi_avion] =>
[vi_ulm] =>
[remorqueur] =>
[treuilleur] => 1
)
Voici un pilote retourné par le serveur.
// Pilote
class Pilote
{
/**
* 'P' + Numéro national
*
* @var string
*/
public $code;
/**
* Nom et prénom
*
* @var string
*/
public $nom_prenom;
/**
* Le pilote est-il actif ?
*
* @var boolean
*/
public $actif;
/**
* Participe-t-il à l'activite planeur ?
*
* @var boolean
*/
public $planeur;
/**
* Participe-t-il à l'activite avion ?
*
* @var boolean
*/
public $avion;
/**
* Participe-t-il à l'activite ULM ?
*
* @var boolean
*/
public $ulm;
/**
* Est-ce un instructeur planeur ?
*
* @var boolean
*/
public $instructeur_planeur;
/**
* Est-ce un instructeur avion ?
*
* @var boolean
*/
public $instructeur_avion;
/**
* Est-ce un instructeur ULM ?
*
* @var boolean
*/
public $instructeur_ulm;
/**
* Est-ce un pilote VI planeur ?
*
* @var boolean
*/
public $vi_planeur;
/**
* Est-ce un pilote VI avion ?
*
* @var boolean
*/
public $vi_avion;
/**
* Est-ce un pilote VI ULM ?
*
* @var boolean
*/
public $vi_ulm;
/**
* Est-ce un pilote remorqueur ?
*
* @var boolean
*/
public $remorqueur;
/**
* Est-ce un pilote treuilleur ?
*
* @var boolean
*/
public $treuilleur;
}
Ci-dessus, la description de l'objet retourné pour un pilote.
Liste des clubs
Cette fonction permet de récupérer la liste des clubs ou sections.
// Liste des clubs
$clubs = sendGivav('getClub',array('actif' => true));
print_r($clubs);
Ce code PHP demande au serveur de lui retourner les clubs actifs.
La variable $fonction a comme valeur getClub, le tableau $params contient :
- actif : (booléen) true pour retourner uniquement les clubs actifs.
[36] => stdClass Object
(
[code] => C41101225
[nom] => VOL A VOILE YONNAIS
[actif] => 1
)
Voici un club retourné par le serveur.
// Club ou section
class Club
{
/**
* 'C' + numéro de compte comptable
*
* @var string
*/
public $code;
/**
* Nom
*
* @var string
*/
public $nom;
/**
* Le club est-il actif ?
*
* @var boolean
*/
public $actif;
}
Ci-dessus, la description de l'objet retourné pour un club.
Liste des comptes internes
Cette fonction permet de récupérer la liste des comptes internes.
// Liste des comptes internes
$compte_internes = sendGivav('getCompteInterne',array('actif' => true));
print_r($compte_internes);
Ce code PHP demande au serveur de lui retourner les comptes internes actifs.
La variable $fonction a comme valeur getCompteInterne, le tableau $params contient :
- actif : (booléen) true pour retourner uniquement les comptes actifs.
[0] => stdClass Object
(
[code] => I41100606
[nom] => ASVV Divers
[actif] => 1
)
Voici un compte interne retourné par le serveur.
// Compte interne
class CompteInterne
{
/**
* 'I' + numéro de compte comptable
*
* @var string
*/
public $code;
/**
* Nom
*
* @var string
*/
public $nom;
/**
* Le compte est-il actif ?
*
* @var boolean
*/
public $actif;
}
Ci-dessus, la description de l'objet retourné pour un compte interne.
Liste des types de vol
Cette fonction permet de récupérer la liste des types de vol.
// Liste des types de vols
$types_vol = sendGivav('getTypeVol',array('planeur' => true,'avion' => true,'ulm' => true,'tmg' => true,'simulateur' => false));
print_r($types_vol);
Ce code PHP demande au serveur de lui retourner les type de vols actifs pour toutes les activités sauf le simulateur.
La variable $fonction a comme valeur getTypeVol, le tableau $params contient :
- planeur : (booléen) true pour retourner les types utilisables pour les planeurs.
- avion : (booléen) true pour retourner les types utilisables pour les avions.
- ulm : (booléen) true pour retourner les types utilisables pour les ULM.
- tmg : (booléen) true pour retourner les types utilisables pour les TMG.
- simulateur : (booléen) true pour retourner les types utilisables pour les simulateurs.
[5] => stdClass Object
(
[id_tarif_type_vol] => 5
[nom] => 6 VI perso
[caracteristique] => 5
[planeur] => 1
[avion] => 1
[ulm] => 1
[tmg] => 1
[simulateur] => 1
)
Voici un type de vol retourné par le serveur.
// Type de vol
class TypeVol
{
/**
* Identifiant unique
*
* @var integer
*/
public $id_tarif_type_vol;
/**
* Nom
*
* @var string
*/
public $nom;
/**
* Caractéristique : 1 = Vol en solo, 2 = Vol à deux, 3 = Vol s'instruction, 4 = VI club, 5 = VI personnel
*
* @var integer
*/
public $caracteristique;
/**
* Ce type de vol peut-il être utilisé pour un vol en planeur ?
*
* @var boolean
*/
public $planeur;
/**
* Ce type de vol peut-il être utilisé pour un vol en avion ?
*
* @var boolean
*/
public $avion;
/**
* Ce type de vol peut-il être utilisé pour un vol en ULM ?
*
* @var boolean
*/
public $ulm;
/**
* Ce type de vol peut-il être utilisé pour un vol en TMG ?
*
* @var boolean
*/
public $tmg;
/**
* Ce type de vol peut-il être utilisé pour un vol en simulateur ?
*
* @var boolean
*/
public $simulateur;
}
Ci-dessus, la description de l'objet retourné pour un type de vol.
Liste des types de remorquage
Cette fonction permet de récupérer la liste des types de remorquage.
// Liste des types de remorquage
$types_remo = sendGivav('getTypeRemo',array());
print_r($types_remo);
Ce code PHP demande au serveur de lui retourner les type de remorquage actifs.
La variable $fonction a comme valeur getTypeRemo, le tableau $params est vide.
[0] => stdClass Object
(
[id_remorque] => 3
[nom] => Forf. 500m
[saisie_temps] =>
[defaut] => 1
)
[1] => stdClass Object
(
[id_remorque] => 2
[nom] => Temps passé
[saisie_temps] => 1
[defaut] =>
)
Voici des types de remorquage retournés par le serveur.
// Type de remorquage
class TypeRemo
{
/**
* Identifiant unique
*
* @var integer
*/
public $id_remorque;
/**
* Nom
*
* @var string
*/
public $nom;
/**
* Doit-on saisir le temps de remorquage ?
*
* @var boolean
*/
public $saisie_temps;
/**
* Est-ce le type de remorquage par défaut ?
*
* @var boolean
*/
public $defaut;
}
Ci-dessus, la description de l'objet retourné pour un type de remorquage.
Envoi d'un vol
Cette fonction permet de récupérer la liste des types de remorquage.
// Liste des types de remorquage
$types_remo = sendGivav('getTypeRemo',array());
print_r($types_remo);
Ce code PHP demande au serveur de lui retourner les type de remorquage actifs.
La variable $fonction a comme valeur getTypeRemo, le tableau $params est vide.
[0] => stdClass Object
(
[id_remorque] => 3
[nom] => Forf. 500m
[saisie_temps] =>
[defaut] => 1
)
[1] => stdClass Object
(
[id_remorque] => 2
[nom] => Temps passé
[saisie_temps] => 1
[defaut] =>
)
Voici des types de remorquage retournés par le serveur.
// Type de remorquage
class TypeRemo
{
/**
* Identifiant unique
*
* @var integer
*/
public $id_remorque;
/**
* Nom
*
* @var string
*/
public $nom;
/**
* Doit-on saisir le temps de remorquage ?
*
* @var boolean
*/
public $saisie_temps;
/**
* Est-ce le type de remorquage par défaut ?
*
* @var boolean
*/
public $defaut;
}
Ci-dessus, la description de l'objet retourné pour un type de remorquage.