/API-SenDrive

API gérant la partie backend de la plateforme S'en Drive Solutions

Primary LanguagePHP

API-SenDrive

API gérant la partie backend de la plateforme S'en Drive Solutions.

Cet API, réalisé en PHP Objet, contient une multitude de fonctions renvoyant des données au format JSON.
Les requêtes devront être structurées de la sorte :

Pour les fonctions d'affichage (qui doivent retourner des données) :

get('http://localhost/API-SenDrive/senDrive.php',{  
            fonction:'nomDeLafonction',  
            Paramètre_1: 'valeur_1',  
            Paramètre_2: 'valeur_2',  
            ...,  
            Paramètre_n: 'valeur_n'  
            
            } ,function(data){  
            
            console.log(data)  
        })  

Pour les fonctions d'upload de données (qui doivent recevoir des données) :

post('http://localhost/API-SenDrive/senDrive.php',{
            fonction:'nomDeLafonction',
            Paramètre_1: 'valeur_1',
            Paramètre_2: 'valeur_2',
            ...,
            Paramètre_n: 'valeur_n'
            
            } ,function(data){
            
            console.log(data)
        })

Fonctions disponibles :

Fonctions d'affichage (get):

  • afficheChauffeurs () : Affichage de tous les chauffeurs.
  • afficheChauffeur(dateDebut, dateFin) : Affichage des chauffeurs disponibles entre les dates indiquées
  • connexion(login, password) : connexion des utilisateurs

IMPORTANT: Si réussie, la fonction retourne un array contenant les informations de l'utilisateur connecté et retoune false si non.

  • afficheVehicules() : Affichage de tous les véhicules
  • afficheVehicule(dateDebut, dateFin) : Affichage des véhicules disponibles entre les dates indiquées
  • afficheModele(id): Affichage d'un modèle selon l'id de la marque

NOTE : Si l'id de la marque n'est pas spécifié, tous les modèles seront affichés.

  • afficheMarques(): Affichage des marques des véhicules
  • filtreVehicule(filtre) : Affichage des critères de véhicule selon un filtre indiqué à la fois

IMPORTANT : Utiliser comme filtre, clim-oui pour afficher les véhicules climatisés et clim-non,
dans le cas contraire.

  • filtrage(idMarque, idModele, idType, idCarburant, climatisation, dateDebut, dateFin) : Affichage des véhicules selon les critères indiqués.

NOTE : Indiquer la valeur -1 à la place d'un critère pour l'ignorer.

  • supprimerVehicule(id) : Suppression de véhicule
  • afficheClients() : Affichage des clients
  • afficheReservations(choix) : Affichage des réservations selon le choix avec ou sans chauffeur.
  • afficheReservation(statut) : Affichage des réservations selon le statut : 'En cours', 'Annulé' ou 'Terminé'.
  • filtreReservationA(element, id, statut): Filtrage des reservations avec chauffeur selon l'élément qui est soit vehicule ou chauffeur
  • filtreReservationS(element, id, statut): Filtrage des reservations sans chauffeur selon l'élément qui est soit vehicule ou chauffeur
  • annulerReservation(idReservation) : Annulation d'une reservation
  • afficheUtilisateurs() : Affichage des utilisateurs
  • afficheUtilisateur(id) : Affichage d'un utilisateur spécifié par son id
  • afficheProprio() : Affichage des proprietaires

IMPORTANT : Les fonctions d'affichage retournent false si aucune donnée à afficher n'a été trouvée.

  • affichePersonnels : Affichage du personnel
  • affichePersonnel(id) : Affichage d'un membre du personnel selon son id
  • afficheDoc(nature) : Affichage des fichiers de documentation dont la nature est spécifiée

NOTE : Les natures disponibles sont :

  • contrat
  • fiche
  • processus
  • facture
  • gestion

NOTE : fiche indique les fiches d'état des lieux.

  • supprimerCaracVehicule(carac, id): Suppréssion d'un attribut de véhicule

NOTE : carac désigne un caractéristique de véhicule à supprimer soit marque, modele ou typeVehicule.

  • supprimerReservation(id) : Suppréssion d'une réservation
  • supprimerProprio(id) : Suppréssion d'un propriétaire

NOTE : Le propriétaire est aussi le Partenaire.

  • supprimerPersonnel(id): Suppression de personnel
  • supprimerChauffeur (id): Suppréssion de chauffeurs
  • affichePromo(statut): Affichage des promotions selon le statut spécifié

NOTE: Le statut est facultatif. S'il n'est pas indiqué, toutes les promotions En cours, Annulé comme Terminé sont affichées.

  • affichePromos(dateDebut, dateFin): Affichage des promotions comprises entre deux dates
  • supprimerPromo(id) : Suppréssion de promotion
  • afficheNavette(statut): Affichage des navettes

NOTE: Le statut est facultatif. S'il n'est pas indiqué, toutes les navettes En cours, Annulé comme Terminé sont affichées.

  • filtreNavette(idVehicule, idChauffeur, statut) : Affichage des navettes selon le vehicule ou le chauffeur

NOTE: Le statut est facultatif.

  • supprimerNavette(id): Suppression de navette
  • annulerNavette(id): Annulation de navette

Fonctions d'upload de données (post):

  • ajoutClient(nom, prenom, telephone, adresse, mail, destination) : Ajout de clients
  • ajoutReservation(idVehicule, idChauffeur, dateDebut, dateFin, destination) : Ajout d'une réservation

IMPORTANT: Il faudra ajouter d'abord le client ensuite la reservation vue que dans la table Reservation, il y'aura l'id du client en question.

  • modifierReservation(idReservation, idClient, idVehicule, idChauffeur, dateDebut, dateFin, statut, prix, destination) : Modification d'une réservation
  • ajoutUtilisateur(login, password, statut, numIdentite) : Ajout d'utilisateurs

IMPORTANT: L'utilisateur doit se trouver au préalable dans la table Personnel

  • modifierUtilisateur(id, login, statut, idPersonnel) : Modification d'un utilisateur

IMPORTANT: L'idPersonnel spécifié doit se trouver au préalable dans la table Personnel

  • changePassword(id, oldPassword, newPassword): Changement de mot de passe
  • ajoutProprio(raisonSociale, proprietaire, dateNaissance, numIdentite, telephone, adresse, email) : Ajout de propriétaire

IMPORTANT: Les raisons sociales possibles sont: Particulier et Professionnel.

  • modifProprio(idProprietaire, raisonSociale, proprietaire, dateNaissance, numIdentite, telephone, adresse, email) : Modification de propriétaire

  • ajoutVehicule(idMarque, idModele, idType, idProprietaire, idCarburant, dateDebut, dateFin, immatriculation, climatisation, nbPorte, nbPlace, description, prix, boiteDeVitesse): Ajout de véhicule

  • modifierVehicule(idVehicule, idMarque, idModele, idType, idProprietaire, idCarburant, dateDebut, dateFin, immatriculation, climatisation, nbPorte, nbPlace, description, prix, boiteDeVitesse) : Modification de véhicule

  • ajoutPersonnel(civilite, poste, nom, prenom, dateNaissance, numeroIdentite, adresse, telephone, email): Ajout du personnel

  • modifierPersonnel(idPersonnel, civilite, poste, nom, prenom, dateNaissance, numeroIdentite, adresse, telephone, email): Modification du personnel

  • ajoutFonction(poste): Ajout d'une fonction (poste) d'un personnel

  • ajoutChauffeur (prenom, nom, dateNaissance, numeroIdentite, permis, adresse, telephone, dateDebut, dateFin, commentaire): Ajout de chauffeurs

  • modifierChauffeur(idChauffeur, prenom, nom, dateNaissance, numeroIdentite, permis, adresse, telephone, dateDebut, dateFin, commentaire): Modification de chauffeurs

  • ajoutMarque(marque) : Ajout d'une marque de véhicule

  • ajoutModele(modele, id) : Ajout d'un modéle de véhicule

  • ajoutTypeVehicule(type) : Ajout d'un type de véhicule

  • modifierCaracVehicule(idCarac, carac, valeur, idMarque): Modification d'un attribut de véhicule

NOTE : Cet attribut est défini par carac et peut valoir soit marque, modele ou typeVehicule. Dans le cas où il vaut modele, il faudra renseigner le paramètre idMarque car le modèle d'un véhicule dépend de la marque. C'est le seul cas où l'idMarque est obligatoire.

  • ajoutPromo(idMarque, idModele, nom, taux, dateDebut, dateFin) : Ajout de promotion
  • modifierPromo(idPromo, idMarque, idModele, nom, taux, statut, dateDebut, dateFin) : Modification de promotion
  • ajoutNavette($nomClient, $prenomClient, $telephone, $adresse, $mail, $idVehicule, $idChauffeur, $date, $depart, $destination, $heureDebut, $heureFin, $prix): Ajout d'une navette

NOTE : Si l'idClient n'est pas spécifié, l'id du dernier client sera utilisé

  • modifierNavette(idNavette, idClient, idVehicule, idChauffeur, date, destination, heureDebut, heureFin, prix): Modification d'une navette

IMPORTANT : Dans le fichier connexion.class.php, il faudra mettre à jour la ligne au niveau du bloc "Try" en le remplaçant par :

$bdd = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $login, $password, array(PDO::MYSQL_ATTR_FOUND_ROWS => true));  

Cela permet de prendre en compte les lignes affectées par les modifications lors de l'utilisation de la fonction rowCount().

Module documentation :

Un fichier traitement.php est dédié à ce module, il est structuré comme suit :

traitement.php?nature=valeur1&cible=valeur2&id=valeur3  
  • La nature est soit photo pour indiquer que le fichier uploadé est une photo, soit doc pour indiquer que c'est un fichier de documentation.
  • En fonction de la nature indiquée, la cible peut prendre comme valeurs :
    1. Pour la nature photo :
      • utilisateur
      • chauffeur
      • vehicule
    2. Pour la nature doc :
      • contrat
      • fiche
      • processus
      • facture
      • gestion

NOTE : fiche indique les fiches d'état des lieux.

  • Lorsque la nature photo est choisie, il faudra préciser l'id de l'élément (utilisateur, chaufeur ou véhicule) à qui on souhaite associer cette photo. L'id n'est obligatoire que pour ce cas.

NOTE : À chaque upload d'un fichier, son chemin dans le serveur est mis à jour dans la base de données.

IMPORTANT : Les dossiers Images et documentation ainsi que l'ensemble de leurs sous-dossiers doivent posséder les droits d'écriture. Un CHMOD à 733 sera ainsi nécéssaire. La taille des fichiers est limitée à 5 Mo extensible jusqu'à 8 Mo.

  • supprimerDoc(id) : Suppression du fichier de documentation dont l'id est spécifié (s'utilise avec GET)