User posts
This commit is contained in:
@@ -10,6 +10,7 @@ use Khofmann\Config\Config;
|
||||
use JsonSerializable;
|
||||
use Khofmann\ApiError\ApiError;
|
||||
use Khofmann\GUID\GUID;
|
||||
use Khofmann\Models\Post\Post;
|
||||
use PDOException;
|
||||
|
||||
class User implements JsonSerializable
|
||||
@@ -426,6 +427,48 @@ class User implements JsonSerializable
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function posts(int $page, int $limit, string $sort)
|
||||
{
|
||||
$db = Database::getInstance();
|
||||
$stmt = $db->prepare(
|
||||
"SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
egb_gaestebuch
|
||||
WHERE
|
||||
benutzer_id = :ID"
|
||||
);
|
||||
$stmt->bindValue(":ID", $this->id);
|
||||
$stmt->execute();
|
||||
$count = $stmt->fetch(PDO::FETCH_COLUMN, 0);
|
||||
|
||||
|
||||
$stmt = $db->prepare(
|
||||
"SELECT
|
||||
*
|
||||
FROM
|
||||
egb_gaestebuch
|
||||
WHERE
|
||||
benutzer_id = :ID
|
||||
ORDER BY
|
||||
id $sort
|
||||
LIMIT $limit
|
||||
OFFSET " . ($page * $limit)
|
||||
);
|
||||
$stmt->bindValue(":ID", $this->id);
|
||||
$stmt->execute();
|
||||
$data = $stmt->fetchAll();
|
||||
|
||||
$list = array_map(
|
||||
function ($item) {
|
||||
return new Post($item["id"], $this, null, null, $item["beitrag"], $item["zeitstempel"]);
|
||||
},
|
||||
$data
|
||||
);
|
||||
|
||||
return ["pages" => intdiv($count, $limit + 1) + 1, "data" => $list];
|
||||
}
|
||||
|
||||
/*
|
||||
* Getters
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user