84 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace api;
 | 
						|
use PDO;
 | 
						|
 | 
						|
require_once "./config.php";
 | 
						|
 | 
						|
/**
 | 
						|
 * Project Data Class
 | 
						|
 * Define all functions which either get, update, create or delete timeline data
 | 
						|
 */
 | 
						|
class projectData
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Get all project data
 | 
						|
     * @return array - Array of all project data or error message
 | 
						|
     */
 | 
						|
    function getProjectData(): array
 | 
						|
    {
 | 
						|
        $conn = dbConn();
 | 
						|
        $stmt = $conn->prepare("SELECT title, isMainProject, information, imgLocation, projectLink, gitLink FROM projects order by date LIMIT 4;");
 | 
						|
        $stmt->execute();
 | 
						|
 | 
						|
        // set the resulting array to associative
 | 
						|
        $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
 | 
						|
 | 
						|
        if ($result)
 | 
						|
        {
 | 
						|
            return $result;
 | 
						|
        }
 | 
						|
        return array("errorMessage" => "Error, project data not found");
 | 
						|
    }
 | 
						|
 | 
						|
    function updateProjectData(string $title, string $isMainProject, string $information, string $projectLink, string $githubLink, string $id): bool
 | 
						|
    {
 | 
						|
        $conn = dbConn();
 | 
						|
        $stmt = $conn->prepare("UPDATE projects SET title = :title, isMainProject = :isMainProject, information = :information, projectLink = :projectLink, githubLink = :githubLink WHERE ID = :id");
 | 
						|
        $stmt->bindParam(":title", $title);
 | 
						|
        $stmt->bindParam(":isMainProject", $isMainProject);
 | 
						|
        $stmt->bindParam(":information", $information);
 | 
						|
        $stmt->bindParam(":projectLink", $projectLink);
 | 
						|
        $stmt->bindParam(":githubLink", $githubLink);
 | 
						|
        $stmt->bindParam(":id", $id);
 | 
						|
        $stmt->execute();
 | 
						|
 | 
						|
        if ($stmt->rowCount() > 0)
 | 
						|
        {
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
 | 
						|
    function deleteProjectData(int $id): bool
 | 
						|
    {
 | 
						|
        $conn = dbConn();
 | 
						|
        $stmt = $conn->prepare("DELETE FROM projects WHERE ID = :id");
 | 
						|
        $stmt->bindParam(":id", $id);
 | 
						|
        $stmt->execute();
 | 
						|
 | 
						|
        if ($stmt->rowCount() > 0)
 | 
						|
        {
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
 | 
						|
    function addProjectData(string $title, string $isMainProject, string $information, string $projectLink, string $githubLink): bool
 | 
						|
    {
 | 
						|
        $conn = dbConn();
 | 
						|
        $stmt = $conn->prepare("INSERT INTO projects (title, isMainProject, information, projectLink, githubLink) VALUES (:title, :isMainProject, :information, :projectLink, :githubLink)");
 | 
						|
        $stmt->bindParam(":title", $title);
 | 
						|
        $stmt->bindParam(":isMainProject", $isMainProject);
 | 
						|
        $stmt->bindParam(":information", $information);
 | 
						|
        $stmt->bindParam(":projectLink", $projectLink);
 | 
						|
        $stmt->bindParam(":githubLink", $githubLink);
 | 
						|
        $stmt->execute();
 | 
						|
 | 
						|
        if ($stmt->rowCount() > 0)
 | 
						|
        {
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
}
 |