Added post note DAO
This commit is contained in:
parent
ccca71c1b8
commit
e03ed35862
6 changed files with 175 additions and 0 deletions
33
src/Dao/EntityConverters/PostNoteEntityConverter.php
Normal file
33
src/Dao/EntityConverters/PostNoteEntityConverter.php
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
namespace Szurubooru\Dao\EntityConverters;
|
||||
use Szurubooru\Entities\Entity;
|
||||
use Szurubooru\Entities\PostNote;
|
||||
|
||||
class PostNoteEntityConverter extends AbstractEntityConverter implements IEntityConverter
|
||||
{
|
||||
public function toArray(Entity $entity)
|
||||
{
|
||||
return
|
||||
[
|
||||
'id' => $entity->getId(),
|
||||
'postId' => $entity->getPostId(),
|
||||
'x' => $entity->getLeft(),
|
||||
'y' => $entity->getTop(),
|
||||
'width' => $entity->getWidth(),
|
||||
'height' => $entity->getHeight(),
|
||||
'text' => $entity->getText(),
|
||||
];
|
||||
}
|
||||
|
||||
public function toBasicEntity(array $array)
|
||||
{
|
||||
$entity = new PostNote($array['id']);
|
||||
$entity->setPostId($array['postId']);
|
||||
$entity->setLeft($array['x']);
|
||||
$entity->setTop($array['y']);
|
||||
$entity->setWidth($array['width']);
|
||||
$entity->setHeight($array['height']);
|
||||
$entity->setText($array['text']);
|
||||
return $entity;
|
||||
}
|
||||
}
|
15
src/Dao/PostNoteDao.php
Normal file
15
src/Dao/PostNoteDao.php
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
namespace Szurubooru\Dao;
|
||||
use Szurubooru\Dao\EntityConverters\PostNoteEntityConverter;
|
||||
use Szurubooru\DatabaseConnection;
|
||||
|
||||
class PostNoteDao extends AbstractDao implements ICrudDao
|
||||
{
|
||||
public function __construct(DatabaseConnection $databaseConnection)
|
||||
{
|
||||
parent::__construct(
|
||||
$databaseConnection,
|
||||
'postNotes',
|
||||
new PostNoteEntityConverter());
|
||||
}
|
||||
}
|
72
src/Entities/PostNote.php
Normal file
72
src/Entities/PostNote.php
Normal file
|
@ -0,0 +1,72 @@
|
|||
<?php
|
||||
namespace Szurubooru\Entities;
|
||||
|
||||
final class PostNote extends Entity
|
||||
{
|
||||
private $postId;
|
||||
private $left;
|
||||
private $top;
|
||||
private $width;
|
||||
private $height;
|
||||
private $text;
|
||||
|
||||
public function getPostId()
|
||||
{
|
||||
return $this->postId;
|
||||
}
|
||||
|
||||
public function setPostId($postId)
|
||||
{
|
||||
$this->postId = $postId;
|
||||
}
|
||||
|
||||
public function getLeft()
|
||||
{
|
||||
return $this->left;
|
||||
}
|
||||
|
||||
public function setLeft($left)
|
||||
{
|
||||
$this->left = $left;
|
||||
}
|
||||
|
||||
public function getTop()
|
||||
{
|
||||
return $this->top;
|
||||
}
|
||||
|
||||
public function setTop($top)
|
||||
{
|
||||
$this->top = $top;
|
||||
}
|
||||
|
||||
public function getWidth()
|
||||
{
|
||||
return $this->width;
|
||||
}
|
||||
|
||||
public function setWidth($width)
|
||||
{
|
||||
$this->width = $width;
|
||||
}
|
||||
|
||||
public function getHeight()
|
||||
{
|
||||
return $this->height;
|
||||
}
|
||||
|
||||
public function setHeight($height)
|
||||
{
|
||||
$this->height = $height;
|
||||
}
|
||||
|
||||
public function getText()
|
||||
{
|
||||
return $this->text;
|
||||
}
|
||||
|
||||
public function setText($text)
|
||||
{
|
||||
$this->text = $text;
|
||||
}
|
||||
}
|
23
src/Upgrades/Upgrade27.php
Normal file
23
src/Upgrades/Upgrade27.php
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
namespace Szurubooru\Upgrades;
|
||||
use Szurubooru\DatabaseConnection;
|
||||
|
||||
class Upgrade27 implements IUpgrade
|
||||
{
|
||||
public function run(DatabaseConnection $databaseConnection)
|
||||
{
|
||||
$pdo = $databaseConnection->getPDO();
|
||||
$driver = $databaseConnection->getDriver();
|
||||
|
||||
$pdo->exec(
|
||||
'CREATE TABLE postNotes (
|
||||
id INTEGER PRIMARY KEY ' . ($driver === 'mysql' ? 'AUTO_INCREMENT' : 'AUTOINCREMENT') . ',
|
||||
postId INTEGER NOT NULL,
|
||||
x INTEGER NOT NULL,
|
||||
y INTEGER NOT NULL,
|
||||
height INTEGER NOT NULL,
|
||||
width INTEGER NOT NULL,
|
||||
text TEXT NOT NULL
|
||||
)');
|
||||
}
|
||||
}
|
|
@ -42,6 +42,7 @@ return [
|
|||
$container->get(\Szurubooru\Upgrades\Upgrade24::class),
|
||||
$container->get(\Szurubooru\Upgrades\Upgrade25::class),
|
||||
$container->get(\Szurubooru\Upgrades\Upgrade26::class),
|
||||
$container->get(\Szurubooru\Upgrades\Upgrade27::class),
|
||||
];
|
||||
}),
|
||||
|
||||
|
|
31
tests/Dao/PostNoteDaoTest.php
Normal file
31
tests/Dao/PostNoteDaoTest.php
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
namespace Szurubooru\Tests\Dao;
|
||||
use Szurubooru\Dao\PostNoteDao;
|
||||
use Szurubooru\Entities\PostNote;
|
||||
use Szurubooru\Tests\AbstractDatabaseTestCase;
|
||||
|
||||
final class PostNoteDaoTest extends AbstractDatabaseTestCase
|
||||
{
|
||||
public function testSettingValues()
|
||||
{
|
||||
$expected = new PostNote();
|
||||
$expected->setPostId(5);
|
||||
$expected->setLeft(5);
|
||||
$expected->setTop(10);
|
||||
$expected->setWidth(50);
|
||||
$expected->setHeight(50);
|
||||
$expected->setText('text');
|
||||
|
||||
$postNoteDao = $this->getPostNoteDao();
|
||||
$postNoteDao->save($expected);
|
||||
|
||||
$actual = $postNoteDao->findById($expected->getId());
|
||||
$this->assertEntitiesEqual($actual, $expected);
|
||||
}
|
||||
|
||||
private function getPostNoteDao()
|
||||
{
|
||||
return new PostNoteDao($this->databaseConnection);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in a new issue