[OPT] The professor UID * * @return professors The professor(s) data * ---------------------------------------------------------*/ public static function get($args){ $prof_id = null; extract($args); /* Get the professor repo */ /** @var professor $prof_repo */ $prof_repo = Repo::getRepo('professor'); /* (1) If @prof_id is set -> getById() ---------------------------------------------------------*/ if( !is_null($prof_id) ){ /* (1) Only get one professor by its id */ $fetch_prof = $prof_repo->getById((int) $prof_id); /* (2) If nothing found -> return empty set */ if( is_null($fetch_prof) ) return ['professors' => []]; /* (3) Else -> return the professor */ return ['professors' => [$fetch_prof]]; } /* (2) Else -> getAll() ---------------------------------------------------------*/ return ['professors' => $prof_repo->getAll()]; } /* (2) Creates a new professor * * @lastName The professor's lastName * @firstName The professor's firstName * @category The professor's category ID * @hoursToDo The professor's number of hours to do * @initials The professor's initials * @isAdmin Whether the professor is an admin * @casLogin The professor's CAS username * * @return prof_id The created professor UID (if no error) * ---------------------------------------------------------*/ public static function post($args){ $lastName = ""; $firstName = ""; $category = 0; $hoursToDo = 0; $initials = ""; $isAdmin = false; $casLogin = null; extract($args); /* Get the professor repo */ /** @var professor $prof_repo */ $prof_repo = Repo::getRepo('professor'); /* (1) Check if professor already exists */ $exists = $prof_repo->exists($lastName, $firstName); /* (2) If found -> already exists */ if( !is_null($exists) ) return ['error' => new Error(Err::AlreadyExists)]; /* (3) Else try to create */ $repo_rtn = $prof_repo->create( $lastName, $firstName, $category, $hoursToDo, $initials, $isAdmin, is_null($casLogin) ? "" : $casLogin ); /* (4) If repo error -> return it */ if( is_null($repo_rtn) ) return ['error' => new Error(Err::RepoError)]; /* (5) Else return UID */ return ['created_uid' => $repo_rtn]; } /* (3) Deletes an existing professor * * @prof_id The professor UID * * @return deleted Whether it has been removed * ---------------------------------------------------------*/ public static function delete($args){ $prof_id = 0; extract($args); /* Get the professor repo */ /** @var professor $prof_repo */ $prof_repo = Repo::getRepo('professor'); /* (1) Try to delete */ return ['deleted' => $prof_repo->delete($prof_id)]; } /* (4) Edits an existing professor * * @prof_id The professor UID * @lastName [OPT] The professor's lastName * @firstName [OPT] The professor's firstName * @category [OPT] The professor's category ID * @hoursToDo [OPT] The professor's number of hours to do * @initials [OPT] The professor's initials * @isAdmin [OPT] Whether the professor is an admin * @casLogin [OPT] The professor's CAS username * * @return updated Whether it has been updated * ---------------------------------------------------------*/ public static function put($args){ $prof_id = 0; $lastName = null; $firstName = null; $category = null; $hoursToDo = null; $initials = null; $isAdmin = null; $casLogin = null; extract($args); /* Get the professor repo */ /** @var professor $prof_repo */ $prof_repo = Repo::getRepo('professor'); /* (1) Try to update */ return ['updated' => $prof_repo->update( $prof_id, $lastName, $firstName, $category, $hoursToDo, $initials, $isAdmin, $casLogin )]; } }