This commit is contained in:
Dennis Eichhorn 2020-03-05 20:35:58 +01:00
parent 8682dca742
commit c9fc4568ad
7 changed files with 44 additions and 16 deletions

View File

@ -14,6 +14,7 @@ declare(strict_types=1);
namespace Modules\Media\Admin;
use Modules\Admin\Models\NullAccount;
use Modules\Media\Models\Collection;
use Modules\Media\Models\CollectionMapper;
@ -85,7 +86,7 @@ final class Installer extends InstallerAbstract
$collection->setName((string) $data['name'] ?? '');
$collection->setVirtualPath((string) $data['virtualPath'] ?? '/');
$collection->setPath((string) $data['virtualPath'] ?? '/');
$collection->setCreatedBy((int) $data['user'] ?? 1);
$collection->setCreatedBy(new NullAccount((int) $data['user'] ?? 1));
CollectionMapper::create($collection);
}

View File

@ -15,6 +15,7 @@ declare(strict_types=1);
namespace Modules\Media\Controller;
use Modules\Admin\Models\AccountPermission;
use Modules\Admin\Models\NullAccount;
use Modules\Media\Models\Collection;
use Modules\Media\Models\CollectionMapper;
use Modules\Media\Models\Media;
@ -23,8 +24,8 @@ use Modules\Media\Models\NullCollection;
use Modules\Media\Models\PathSettings;
use Modules\Media\Models\PermissionState;
use Modules\Media\Models\UploadFile;
use Modules\Media\Models\UploadStatus;
use Modules\Media\Models\UploadStatus;
use phpOMS\Account\PermissionType;
use phpOMS\Message\NotificationLevel;
use phpOMS\Message\RequestAbstract;
@ -240,7 +241,7 @@ final class ApiController extends Controller
$media->setPath(self::normalizeDbPath($status['path']) . '/' . $status['filename']);
$media->setName($status['name']);
$media->setSize($status['size']);
$media->setCreatedBy($account);
$media->setCreatedBy(new NullAccount($account));
$media->setExtension($status['extension']);
$media->setVirtualPath($virtualPath);

View File

@ -27,10 +27,10 @@ class Collection extends Media implements \Iterator
/**
* Resource id.
*
* @var array<int, int|Media>
* @var Media[]
* @since 1.0.0
*/
private $sources = [];
private array $sources = [];
/**
* Extension name.
@ -65,13 +65,13 @@ class Collection extends Media implements \Iterator
/**
* Set sources.
*
* @param int|Media $source Source
* @param Media $source Source
*
* @return void
*
* @since 1.0.0
*/
public function addSource($source) : void
public function addSource(Media $source) : void
{
$this->sources[] = $source;
}
@ -79,7 +79,7 @@ class Collection extends Media implements \Iterator
/**
* Get sources.
*
* @return array
* @return Media[]
*
* @since 1.0.0
*/

View File

@ -14,6 +14,9 @@ declare(strict_types=1);
namespace Modules\Media\Models;
use Modules\Admin\Models\Account;
use Modules\Admin\Models\NullAccount;
/**
* Media class.
*
@ -59,10 +62,10 @@ class Media implements \JsonSerializable
/**
* Author.
*
* @var int
* @var Account
* @since 1.0.0
*/
protected $createdBy = 0;
protected Account $createdBy;
/**
* Uploaded.
@ -151,6 +154,7 @@ class Media implements \JsonSerializable
*/
public function __construct()
{
$this->createdBy = new NullAccount();
$this->createdAt = new \DateTime();
}
@ -297,11 +301,11 @@ class Media implements \JsonSerializable
}
/**
* @return int|\phpOMS\Account\Account
* @return Account
*
* @since 1.0.0
*/
public function getCreatedBy()
public function getCreatedBy() : Account
{
return $this->createdBy;
}
@ -313,7 +317,7 @@ class Media implements \JsonSerializable
*/
public function getCreatedAt() : \DateTime
{
return $this->createdAt ?? new \DateTime('now');
return $this->createdAt;
}
/**
@ -397,13 +401,13 @@ class Media implements \JsonSerializable
}
/**
* @param mixed $createdBy Creator
* @param Account $createdBy Creator
*
* @return void
*
* @since 1.0.0
*/
public function setCreatedBy($createdBy) : void
public function setCreatedBy(Account $createdBy) : void
{
$this->createdBy = $createdBy;
}

View File

@ -47,7 +47,7 @@ class MediaMapper extends DataMapperAbstract
'media_password' => ['name' => 'media_password', 'type' => 'string', 'internal' => 'password'],
'media_extension' => ['name' => 'media_extension', 'type' => 'string', 'internal' => 'extension'],
'media_size' => ['name' => 'media_size', 'type' => 'int', 'internal' => 'size'],
'media_created_by' => ['name' => 'media_created_by', 'type' => 'int', 'internal' => 'createdBy'],
'media_created_by' => ['name' => 'media_created_by', 'type' => 'int', 'internal' => 'createdBy', 'readonly' => true],
'media_created_at' => ['name' => 'media_created_at', 'type' => 'DateTime', 'internal' => 'createdAt', 'readonly' => true],
];

View File

@ -24,4 +24,15 @@ namespace Modules\Media\Models;
*/
final class NullCollection extends Collection
{
/**
* Constructor
*
* @param int $id Model id
*
* @since 1.0.0
*/
public function __construct(int $id = 0)
{
$this->id = $id;
}
}

View File

@ -24,4 +24,15 @@ namespace Modules\Media\Models;
*/
final class NullMedia extends Media
{
/**
* Constructor
*
* @param int $id Model id
*
* @since 1.0.0
*/
public function __construct(int $id = 0)
{
$this->id = $id;
}
}