[repo.professor] fix CREATE sync with meta database
This commit is contained in:
parent
67e0f9eba2
commit
35b0cb36fa
|
@ -29,12 +29,19 @@ class professor extends Repo_i {
|
||||||
---------------------------------------------------------*/
|
---------------------------------------------------------*/
|
||||||
public function create(string $lastName, string $firstName, int $category, int $hoursToDo = 0, ?string $initials = null , bool $isAdmin = false , ?string $casLogin = null ) : ?int{
|
public function create(string $lastName, string $firstName, int $category, int $hoursToDo = 0, ?string $initials = null , bool $isAdmin = false , ?string $casLogin = null ) : ?int{
|
||||||
|
|
||||||
|
|
||||||
|
/* (1) Create professor into local database
|
||||||
|
---------------------------------------------------------*/
|
||||||
/* (1) Prepare Statement */
|
/* (1) Prepare Statement */
|
||||||
$st = $this->pdo->prepare("INSERT INTO
|
$st = $this->pdo->prepare("INSERT INTO
|
||||||
Professeur(`casLogin`, `lastName`, `firstName`, `abreviation`, `admin`, `hoursToDo`, `Categorie_idCategorie`)
|
Professeur(`casLogin`, `lastName`, `firstName`, `abreviation`, `admin`, `hoursToDo`, `Categorie_idCategorie`)
|
||||||
VALUE (:casLogin, :lastName, :firstName, :abrev, :is_admin, :hoursToDo, :cat);");
|
VALUE (:casLogin, :lastName, :firstName, :abrev, :is_admin, :hoursToDo, :cat);");
|
||||||
|
|
||||||
/* (2) Bind params and execute */
|
/* (2) Manage statement error */
|
||||||
|
if( is_bool($st) )
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
/* (3) Bind params and execute */
|
||||||
$success = $st->execute([
|
$success = $st->execute([
|
||||||
':casLogin' => $casLogin,
|
':casLogin' => $casLogin,
|
||||||
':lastName' => $lastName,
|
':lastName' => $lastName,
|
||||||
|
@ -45,30 +52,64 @@ class professor extends Repo_i {
|
||||||
':cat' => $category
|
':cat' => $category
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$profId = $this->pdo->lastInsertId();
|
/* (4) If execution error -> dispatch */
|
||||||
|
|
||||||
/* (3) synchroize the meta database */
|
|
||||||
if(!is_null($casLogin)){
|
|
||||||
$st = $this->pdo->prepare("INSERT IGNORE INTO meta_vhost.casUser(casLogin, firstName, lastName) VALUE (:casLogin,:firstName,:lastName)");
|
|
||||||
$st->execute([
|
|
||||||
"casLogin" => $casLogin,
|
|
||||||
"firstName" => $firstName,
|
|
||||||
"lastName" => $lastName
|
|
||||||
]);
|
|
||||||
|
|
||||||
$st = $this->pdo->prepare("INSERT INTO meta_vhost.linkedDep(departement_iddepartement, casUser_casLogin) VALUE (:idDep,:casLogin)");
|
|
||||||
$st->execute([
|
|
||||||
"idDep" => $_SESSION['CurrentDepartementId'],
|
|
||||||
"casLogin" => $casLogin
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (3) Manage error */
|
|
||||||
if( !$success )
|
if( !$success )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* (4) Return inserted ID */
|
/* (5) Store id */
|
||||||
return $profId;
|
$id_prof = $this->pdo->lastInsertId();
|
||||||
|
|
||||||
|
/* (6) Exit now if no meta database to udpate */
|
||||||
|
if( is_null($casLogin) )
|
||||||
|
return $id_prof;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* (2) Create user in meta database
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
/* (1) Try to insert user */
|
||||||
|
$st = $this->pdo->prepare("INSERT IGNORE INTO meta_vhost.casUser(casLogin, firstName, lastName) VALUE (:casLogin, :firstName, :lastName)");
|
||||||
|
|
||||||
|
/* (2) Manage statement error */
|
||||||
|
if( !is_bool($st) ){
|
||||||
|
|
||||||
|
/* (3) Try to execute */
|
||||||
|
$success = $st->execute([
|
||||||
|
':casLogin' => $casLogin,
|
||||||
|
':firstName' => $firstName,
|
||||||
|
':lastName' => $lastName
|
||||||
|
]);
|
||||||
|
|
||||||
|
/* (4) Manage execution error */
|
||||||
|
// if( !$success )
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (3) Add user to department in meta database
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
/* (1) Try to insert user */
|
||||||
|
$st = $this->pdo->prepare("INSERT INTO meta_vhost.linkedDep(departement_iddepartement, casUser_casLogin) VALUE (:idDep, :casLogin)");
|
||||||
|
|
||||||
|
/* (2) Manage statement error */
|
||||||
|
if( !is_bool($st) ){
|
||||||
|
|
||||||
|
/* (3) Try to execute */
|
||||||
|
$success = $st->execute([
|
||||||
|
':idDep' => $_SESSION['CurrentDepartementId'],
|
||||||
|
':casLogin' => $casLogin
|
||||||
|
]);
|
||||||
|
|
||||||
|
/* (4) Manage error */
|
||||||
|
// if( !$success )
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* (5) Return inserted ID */
|
||||||
|
return $id_prof;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue