<?php use App\Core\Database as Database; use App\Teamtable\Team as Team; use App\Teamtable\TeamMapper as TeamMapper; /** * Does stuffs with the teamtable */ class Teamtable { /** * Database connection */ public PDO $dbh; /** * We use a data mapper pattern */ public TeamMapper $teamMapper; public function __construct(Database $database) { $this->dbh = $database->conn; $this->teamMapper = new TeamMapper($this->dbh); } /** * Fetch entire team table */ public function getAll(): array { return $this->teamMapper->getAll(); } /** * Find team with supplied id */ public function get(int $id): ?Team { return $this->teamMapper->get($id); } /** * Inserts team into database */ public function create(Team $team): Team { return $this->teamMapper->create($team); } public function delete(int $id): void { $this->teamMapper->delete($id); } /** * Returns TRUE if team exists, FALSE if not */ public function recieveBaton(string $cardnumber): bool { $team = $this->getTeamByCardnumber($cardnumber); if ($team) { // team exists, insert into time table $sth = $this->dbh->prepare('INSERT INTO tidtabell (LagID) VALUES (?)'); $sth->execute([$row['LagID']]); return TRUE; } // team does not exist, lets create it $team = new Team(); $team->cardnumber = $cardnumber; $this->addTeam($team); return FALSE; } }