98 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace api;
 | 
						|
use PDO;
 | 
						|
use Psr\Http\Message\UploadedFileInterface;
 | 
						|
 | 
						|
require_once "./config.php";
 | 
						|
 | 
						|
/**
 | 
						|
 * Blog Data Class
 | 
						|
 * Define all functions which either get, update, create or delete posts
 | 
						|
 */
 | 
						|
class blogData
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Get all blog posts
 | 
						|
     * @return array - Array of all blog posts or error message
 | 
						|
     */
 | 
						|
    function getBlogPosts(): array
 | 
						|
    {
 | 
						|
        $conn = dbConn();
 | 
						|
        $stmt = $conn->prepare("SELECT ID, title, dateCreated, dateModified, body, tags FROM blog ORDER BY dateCreated DESC;");
 | 
						|
        $stmt->execute();
 | 
						|
 | 
						|
        // set the resulting array to associative
 | 
						|
        $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
 | 
						|
 | 
						|
        if ($result)
 | 
						|
        {
 | 
						|
            return $result;
 | 
						|
        }
 | 
						|
 | 
						|
        return array("errorMessage" => "Error, blog data not found");
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get a blog post with the given ID
 | 
						|
     * @param string $ID - ID of the blog post to get
 | 
						|
     * @return array - Array of all blog posts or error message
 | 
						|
     */
 | 
						|
    function getBlogPost(string $ID): array
 | 
						|
    {
 | 
						|
        $conn = dbConn();
 | 
						|
        $stmt = $conn->prepare("SELECT  ID, title, dateCreated, dateModified, featured, headerImg, body, tags FROM blog WHERE ID = :ID;");
 | 
						|
        $stmt->bindParam(":ID", $ID);
 | 
						|
        $stmt->execute();
 | 
						|
 | 
						|
        // set the resulting array to associative
 | 
						|
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
 | 
						|
 | 
						|
        if ($result)
 | 
						|
        {
 | 
						|
            return $result;
 | 
						|
        }
 | 
						|
 | 
						|
        return array("errorMessage" => "Error, blog post could not found");
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get the latest blog post
 | 
						|
     * @return array - Array of the latest blog post or error message
 | 
						|
     */
 | 
						|
    function getLatestBlogPost(): array
 | 
						|
    {
 | 
						|
        $conn = dbConn();
 | 
						|
        $stmt = $conn->prepare("SELECT ID, title, dateCreated, dateModified, featured, headerImg, body, tags FROM blog ORDER BY dateCreated DESC LIMIT 1;");
 | 
						|
        $stmt->execute();
 | 
						|
 | 
						|
        // set the resulting array to associative
 | 
						|
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
 | 
						|
 | 
						|
        if ($result)
 | 
						|
        {
 | 
						|
            return $result;
 | 
						|
        }
 | 
						|
 | 
						|
        return array("errorMessage" => "Error, blog post could not found");
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get featured blog post
 | 
						|
     * @return array - Array of the featured blog post or error message
 | 
						|
     */
 | 
						|
    function getFeaturedBlogPost(): array
 | 
						|
    {
 | 
						|
        $conn = dbConn();
 | 
						|
        $stmt = $conn->prepare("SELECT ID, title, dateCreated, dateModified, featured, headerImg, body, tags FROM blog WHERE featured = 1;");
 | 
						|
        $stmt->execute();
 | 
						|
 | 
						|
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
 | 
						|
 | 
						|
        if ($result)
 | 
						|
        {
 | 
						|
            return $result;
 | 
						|
        }
 | 
						|
 | 
						|
        return array("errorMessage" => "Error, blog post could not found");
 | 
						|
    }
 | 
						|
} |