Mark data classes and functions with types
This commit is contained in:
@@ -4,6 +4,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pvv\side;
|
||||
|
||||
use PDO;
|
||||
|
||||
class ProjectManager {
|
||||
private $pdo;
|
||||
|
||||
@@ -11,18 +13,21 @@ class ProjectManager {
|
||||
$this->pdo = $pdo;
|
||||
}
|
||||
|
||||
public function getAll() {
|
||||
$query = 'SELECT * FROM projects ORDER BY id ASC';
|
||||
/**
|
||||
* @return Project[]
|
||||
*/
|
||||
public function getAll(): array {
|
||||
$query = "SELECT * FROM projects ORDER BY id ASC";
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->execute();
|
||||
|
||||
$projects = [];
|
||||
foreach ($statement->fetchAll() as $dbProj) {
|
||||
$project = new Project(
|
||||
$dbProj['id'],
|
||||
$dbProj['name'],
|
||||
$dbProj['description'],
|
||||
$dbProj['active']
|
||||
$dbProj["id"],
|
||||
$dbProj["name"],
|
||||
$dbProj["description"],
|
||||
$dbProj["active"],
|
||||
);
|
||||
$projects[] = $project;
|
||||
}
|
||||
@@ -30,47 +35,50 @@ class ProjectManager {
|
||||
return $projects;
|
||||
}
|
||||
|
||||
public function getByID($id) {
|
||||
$query = 'SELECT * FROM projects WHERE id=:id LIMIT 1';
|
||||
public function getByID(int $id): ?Project {
|
||||
$query = "SELECT * FROM projects WHERE id=:id LIMIT 1";
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':id', $id, \PDO::PARAM_INT);
|
||||
$statement->bindParam(":id", $id, \PDO::PARAM_INT);
|
||||
$statement->execute();
|
||||
|
||||
$dbProj = $statement->fetch();
|
||||
if (!$dbProj) {
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Project(
|
||||
$dbProj['id'],
|
||||
$dbProj['name'],
|
||||
$dbProj['description'],
|
||||
$dbProj['active']
|
||||
$dbProj["id"],
|
||||
$dbProj["name"],
|
||||
$dbProj["description"],
|
||||
$dbProj["active"],
|
||||
);
|
||||
}
|
||||
|
||||
public function getByOwner($uname) {
|
||||
$query = 'SELECT projectid FROM projectmembers WHERE uname=:uname';
|
||||
/**
|
||||
* @return Project[]
|
||||
*/
|
||||
public function getByOwner(string $uname): array {
|
||||
$query = "SELECT projectid FROM projectmembers WHERE uname=:uname";
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':uname', $uname, \PDO::PARAM_STR);
|
||||
$statement->bindParam(":uname", $uname, \PDO::PARAM_STR);
|
||||
$statement->execute();
|
||||
|
||||
$projectIDs = $statement->fetchAll();
|
||||
$projects = [];
|
||||
foreach ($projectIDs as $id) {
|
||||
$id = $id['projectid'];
|
||||
$id = $id["projectid"];
|
||||
|
||||
$query = 'SELECT * FROM projects WHERE id=:id';
|
||||
$query = "SELECT * FROM projects WHERE id=:id";
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':id', $id, \PDO::PARAM_INT);
|
||||
$statement->bindParam(":id", $id, \PDO::PARAM_INT);
|
||||
$statement->execute();
|
||||
|
||||
foreach ($statement->fetchAll() as $dbProj) {
|
||||
$project = new Project(
|
||||
$dbProj['id'],
|
||||
$dbProj['name'],
|
||||
$dbProj['description'],
|
||||
$dbProj['active']
|
||||
$dbProj["id"],
|
||||
$dbProj["name"],
|
||||
$dbProj["description"],
|
||||
$dbProj["active"],
|
||||
);
|
||||
$projects[] = $project;
|
||||
}
|
||||
@@ -79,42 +87,48 @@ class ProjectManager {
|
||||
return $projects;
|
||||
}
|
||||
|
||||
public function getProjectMembers($id) {
|
||||
$query = 'SELECT * FROM projectmembers WHERE projectid=:id';
|
||||
/**
|
||||
* @return array<int,array>
|
||||
*/
|
||||
public function getProjectMembers(int $id): array {
|
||||
$query = "SELECT * FROM projectmembers WHERE projectid=:id";
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':id', $id, \PDO::PARAM_STR);
|
||||
$statement->bindParam(":id", $id, \PDO::PARAM_STR);
|
||||
$statement->execute();
|
||||
|
||||
$members = [];
|
||||
foreach ($statement->fetchAll() as $dbUsr) {
|
||||
$members[] = [
|
||||
'name' => $dbUsr['name'],
|
||||
'uname' => $dbUsr['uname'],
|
||||
'mail' => $dbUsr['mail'],
|
||||
'role' => $dbUsr['role'],
|
||||
'lead' => $dbUsr['lead'],
|
||||
'owner' => $dbUsr['owner'],
|
||||
"name" => $dbUsr["name"],
|
||||
"uname" => $dbUsr["uname"],
|
||||
"mail" => $dbUsr["mail"],
|
||||
"role" => $dbUsr["role"],
|
||||
"lead" => $dbUsr["lead"],
|
||||
"owner" => $dbUsr["owner"],
|
||||
];
|
||||
}
|
||||
|
||||
return $members;
|
||||
}
|
||||
|
||||
public function getProjectOwner($id) {
|
||||
$query = 'SELECT * FROM projectmembers WHERE (projectid=:id AND owner=1)';
|
||||
/**
|
||||
* @return array<string,mixed>
|
||||
*/
|
||||
public function getProjectOwner(int $id): array {
|
||||
$query = "SELECT * FROM projectmembers WHERE (projectid=:id AND owner=1)";
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':id', $id, \PDO::PARAM_STR);
|
||||
$statement->bindParam(":id", $id, \PDO::PARAM_STR);
|
||||
$statement->execute();
|
||||
|
||||
$dbOwner = $statement->fetch();
|
||||
|
||||
return [
|
||||
'name' => $dbOwner['name'],
|
||||
'uname' => $dbOwner['uname'],
|
||||
'mail' => $dbOwner['mail'],
|
||||
'role' => $dbOwner['role'],
|
||||
'lead' => $dbOwner['lead'],
|
||||
'owner' => $dbOwner['owner'],
|
||||
"name" => $dbOwner["name"],
|
||||
"uname" => $dbOwner["uname"],
|
||||
"mail" => $dbOwner["mail"],
|
||||
"role" => $dbOwner["role"],
|
||||
"lead" => $dbOwner["lead"],
|
||||
"owner" => $dbOwner["owner"],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user