Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
85.71% covered (warning)
85.71%
6 / 7
CRAP
96.97% covered (success)
96.97%
32 / 33
MedecinRepo
0.00% covered (danger)
0.00%
0 / 1
85.71% covered (warning)
85.71%
6 / 7
17
96.97% covered (success)
96.97%
32 / 33
 getById
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
4 / 4
 add
0.00% covered (danger)
0.00%
0 / 1
3.01
88.89% covered (warning)
88.89%
8 / 9
 delete
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
3 / 3
 search
100.00% covered (success)
100.00%
1 / 1
6
100.00% covered (success)
100.00%
8 / 8
 getPatients
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
5 / 5
 getAll
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 update
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
<?php
/**
 * Created by PhpStorm.
 * User: seekdasky
 * Date: 02/12/15
 * Time: 12:36
 */
class MedecinRepo
{
    public static function getById($id){
        if(!StaticRepo::checkParam($id, 'Numeric')) return false;
        $req = StaticRepo::getConnexion()->prepare('SELECT * FROM Medecin WHERE Id = :id');
        $req->execute(['id' => $id]);
        return StaticRepo::delNumeric( $req->fetch(), true );
    }
    public static function add($civilite,$prenom,$nom){
        if(!StaticRepo::checkParam($civilite,'Civilite') | !StaticRepo::checkParam($prenom,'String45') | !StaticRepo::checkParam($nom,'String45')) return false;
        $req = StaticRepo::getConnexion()->prepare('INSERT INTO Medecin VALUES (DEFAULT,:civilite,:prenom,:nom)');
        $result = $req->execute(['civilite' => $civilite,
            'nom' => $nom,
            'prenom' => $prenom
        ]);
        //PDO renvoie un ID sous forme de char, on transtype
        $id = StaticRepo::getConnexion()->lastInsertId();
        settype($id, 'integer');
        if($result) return $id;
        else        return false;
    }
    public static function delete($idMedecin){
        if(!StaticRepo::checkParam($idMedecin,'Numeric')) return false;
        $req = StaticRepo::getConnexion()->prepare('DELETE FROM Medecin WHERE Id = :id');
        return $req->execute(['id' => $idMedecin]);
    }
    public static function search($nom, $prenom){
        if( !StaticRepo::checkParam($prenom,'String45') | !StaticRepo::checkParam($nom,'String45') ) return false;
        // on définit les valeurs (peuvent être nulles)
        $optPrenom = ( $prenom != 'null' && StaticRepo::checkParam($prenom,'String45') ) ? '%'.$prenom.'%' : '%';
        $optNom    = ( $nom    != 'null' && StaticRepo::checkParam($nom,   'String45') ) ? '%'.$nom.'%'    : '%';
        $req = StaticRepo::getConnexion()->query("SELECT Id, Civilite, Prenom, Nom
            FROM Medecin
            WHERE Nom LIKE '".$optNom."'
            AND Prenom LIKE '".$optPrenom."'
            ORDER BY Nom, Prenom ASC");
        return StaticRepo::delNumeric( $req->fetchAll() );
    }
    public static function getPatients($idMedecin){
        if(!StaticRepo::checkParam($idMedecin,'Numeric')) return false;
        $req = StaticRepo::getConnexion()->prepare('SELECT Patient.* FROM Patient,Medecin
                    WHERE Medecin.Id = :id
                    AND Medecin.Id = Patient.MedecinTraitant');
        $req->execute(['id' => $idMedecin]);
        return StaticRepo::delNumeric($req->fetchAll());
    }
    public static function getAll(){
        $req = StaticRepo::getConnexion()->query('SELECT * FROM Medecin ORDER BY nom, prenom ASC');
        return StaticRepo::delNumeric( $req->fetchAll() );
    }
    public static function update($id, $nom, $prenom){
        $req = StaticRepo::getConnexion()->prepare("UPDATE Medecin SET Nom = :nom, Prenom = :prenom WHERE Id = :id");
        return $req->execute([ ':nom' => strtoupper($nom), ':prenom' => $prenom, ':id' => $id ]);
    }
}