Skip to content

Commit

Permalink
Simplify (#2493)
Browse files Browse the repository at this point in the history
  • Loading branch information
ildyria authored Jul 5, 2024
1 parent e52e412 commit 13fa367
Show file tree
Hide file tree
Showing 9 changed files with 2 additions and 98 deletions.
8 changes: 0 additions & 8 deletions app/Models/Album.php
Original file line number Diff line number Diff line change
Expand Up @@ -175,14 +175,6 @@ class Album extends BaseAlbum implements Node
*/
protected $with = ['cover', 'cover.size_variants', 'thumb'];

/**
* @return array<string,mixed>
*/
protected function _toArray(): array
{
return parent::toArray();
}

/**
* Return the relationship between this album and photos which are
* direct children of this album.
Expand Down
8 changes: 0 additions & 8 deletions app/Models/BaseAlbumImpl.php
Original file line number Diff line number Diff line change
Expand Up @@ -197,14 +197,6 @@ class BaseAlbumImpl extends Model implements HasRandomID
*/
protected $with = ['owner', 'access_permissions'];

/**
* @return array<string,mixed>
*/
protected function _toArray(): array
{
return parent::toArray();
}

/**
* @param $query
*
Expand Down
5 changes: 0 additions & 5 deletions app/Models/Extensions/ToArrayThrowsNotImplemented.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,6 @@
*/
trait ToArrayThrowsNotImplemented
{
/**
* @return array<string,mixed>
*/
abstract protected function _toArray(): array;

/**
* @return array<string,mixed>
*
Expand Down
8 changes: 0 additions & 8 deletions app/Models/Photo.php
Original file line number Diff line number Diff line change
Expand Up @@ -180,14 +180,6 @@ public function newEloquentBuilder($query): PhotoBuilder
return new PhotoBuilder($query);
}

/**
* @return array<string,mixed>
*/
protected function _toArray(): array
{
return parent::toArray();
}

/**
* Return the relationship between a Photo and its Album.
*
Expand Down
8 changes: 0 additions & 8 deletions app/Models/SizeVariant.php
Original file line number Diff line number Diff line change
Expand Up @@ -136,14 +136,6 @@ public function newEloquentBuilder($query): SizeVariantBuilder
return new SizeVariantBuilder($query);
}

/**
* @return array<string,mixed>
*/
protected function _toArray(): array
{
return parent::toArray();
}

/**
* Returns the association to the photo which this size variant belongs
* to.
Expand Down
10 changes: 2 additions & 8 deletions app/Models/SymLink.php
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,6 @@ class SymLink extends Model
'size_variant_id', // see above
];

/**
* @return array<string,mixed>
*/
final protected function _toArray(): array
{
return parent::toArray();
}

/**
* @param $query
*
Expand Down Expand Up @@ -136,6 +128,7 @@ public function scopeExpired(Builder $query): Builder
protected function getUrlAttribute(): string
{
try {
/** @disregard P1013 */
return Storage::disk(self::DISK_NAME)->url($this->short_path);
} catch (\RuntimeException $e) {
throw new FrameworkException('Laravel\'s storage component', $e);
Expand All @@ -161,6 +154,7 @@ protected function performInsert(Builder $query): bool
$origRealPath = $file->getRealPath();
$extension = $file->getExtension();
$symShortPath = hash('sha256', random_bytes(32) . '|' . $origRealPath) . $extension;
/** @disregard P1013 */
$symAbsolutePath = Storage::disk(SymLink::DISK_NAME)->path($symShortPath);
try {
if (is_link($symAbsolutePath)) {
Expand Down
11 changes: 0 additions & 11 deletions app/Models/TagAlbum.php
Original file line number Diff line number Diff line change
Expand Up @@ -92,17 +92,6 @@ class TagAlbum extends BaseAlbum
'thumb',
];

/**
* @return array<string,mixed>
*/
protected function _toArray(): array
{
$result = parent::toArray();
$result['is_tag_album'] = true;

return $result;
}

public function photos(): HasManyPhotosByTag
{
return new HasManyPhotosByTag($this);
Expand Down
8 changes: 0 additions & 8 deletions app/Models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -108,14 +108,6 @@ class User extends Authenticatable implements WebAuthnAuthenticatable

protected $hidden = [];

/**
* @return array<string,mixed>
*/
protected function _toArray(): array
{
return parent::toArray();
}

/**
* Create a new Eloquent query builder for the model.
*
Expand Down
34 changes: 0 additions & 34 deletions app/SmartAlbums/BaseSmartAlbum.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

use App\Contracts\Exceptions\InternalLycheeException;
use App\Contracts\Models\AbstractAlbum;
use App\DTO\AlbumProtectionPolicy;
use App\DTO\PhotoSortingCriterion;
use App\Enum\SmartAlbumType;
use App\Exceptions\ConfigurationKeyMissingException;
Expand Down Expand Up @@ -68,39 +67,6 @@ protected function __construct(SmartAlbumType $id, \Closure $smartCondition)
}
}

/**
* @return array{id:string,title:string,thumb:?Thumb,policy:AlbumProtectionPolicy,photos:?array<int,Photo>}
*/
protected function _toArray(): array
{
// The properties `thumb` and `photos` are intentionally treated
// differently.
//
// 1. The result always includes `thumb`, hence we call the
// getter method to ensure that the property is initialized, if it
// has not already been accessed before.
// 2. The result only includes the collection `photos`, if it has
// already explicitly been accessed earlier and thus is initialized.
//
// Rationale:
//
// 1. This resembles the behaviour of a real Eloquent model, if the
// attribute `thumb` was part of the `append`-property of model.
// 2. This resembles the behaviour of a real Eloquent model for
// one-to-many relations.
// A relation is only included in the array representation, if the
// relation has been loaded.
// This avoids unnecessary hydration of photos if the album is
// only used within a listing of sub-albums.
return [
'id' => $this->id,
'title' => $this->title,
'thumb' => $this->getThumbAttribute(),
'policy' => AlbumProtectionPolicy::ofSmartAlbum($this),
'photos' => $this->photos?->toArray(),
];
}

/**
* @return \App\Eloquent\FixedQueryBuilder<Photo>
*
Expand Down

0 comments on commit 13fa367

Please sign in to comment.