Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[5.x] Add findOrFail to remaining repositories #9619

Merged
merged 18 commits into from
Apr 2, 2024
Merged
12 changes: 12 additions & 0 deletions src/Assets/AssetRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use Statamic\Contracts\Assets\Asset;
use Statamic\Contracts\Assets\AssetRepository as Contract;
use Statamic\Contracts\Assets\QueryBuilder;
use Statamic\Exceptions\AssetNotFoundException;
use Statamic\Facades\AssetContainer;
use Statamic\Facades\Site;
use Statamic\Facades\Stache;
Expand Down Expand Up @@ -60,6 +61,17 @@ public function findByUrl(string $url)
return $container->asset($path);
}

public function findOrFail(string $id): Asset
{
$asset = $this->find($id);

if (! $asset) {
throw new AssetNotFoundException($id);
}

return $asset;
}

protected function resolveContainerFromUrl($url)
{
return AssetContainer::all()->sortByDesc(function ($container) {
Expand Down
12 changes: 12 additions & 0 deletions src/Auth/Eloquent/UserRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use Statamic\Auth\UserCollection;
use Statamic\Auth\UserRepository as BaseRepository;
use Statamic\Contracts\Auth\User as UserContract;
use Statamic\Exceptions\UserNotFoundException;
use Statamic\Facades\Blink;

class UserRepository extends BaseRepository
Expand Down Expand Up @@ -48,6 +49,17 @@ public function findByEmail(string $email): ?UserContract
return $this->make()->model($model);
}

public function findOrFail($id): UserContract
{
$user = $this->find($id);

if (! $user) {
throw new UserNotFoundException($id);
}

return $user;
}

public function model($method, ...$args)
{
$model = $this->config['model'];
Expand Down
2 changes: 2 additions & 0 deletions src/Contracts/Assets/AssetContainerRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,7 @@ public function find($id): ?AssetContainer;

public function findByHandle(string $handle): ?AssetContainer;

public function findOrFail(string $handle): AssetContainer;

public function make(?string $handle = null): AssetContainer;
}
2 changes: 2 additions & 0 deletions src/Contracts/Assets/AssetRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ public function findById(string $id);

public function findByPath(string $path);

public function findOrFail(string $asset);

public function make();

public function query();
Expand Down
2 changes: 2 additions & 0 deletions src/Contracts/Auth/UserRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ public function findByEmail(string $email): ?User;

public function findByOAuthId(Provider $provider, string $id): ?User;

public function findOrFail($id): User;

public function current(): ?User;

public function fromUser($user): ?User;
Expand Down
2 changes: 2 additions & 0 deletions src/Contracts/Entries/CollectionRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ public function findByHandle($handle): ?Collection;

public function findByMount($mount): ?Collection;

public function findOrFail($id): Collection;

public function make(?string $handle = null): Collection;

public function handles(): IlluminateCollection;
Expand Down
2 changes: 2 additions & 0 deletions src/Contracts/Globals/GlobalRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,7 @@ public function find($id): ?GlobalSet;

public function findByHandle($handle): ?GlobalSet;

public function findOrFail($id): GlobalSet;

public function save($global);
}
2 changes: 2 additions & 0 deletions src/Contracts/Globals/GlobalVariablesRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ public function all(): VariablesCollection;

public function find($id): ?Variables;

public function findOrFail($id): Variables;

public function whereSet($handle): VariablesCollection;

public function save($variable);
Expand Down
2 changes: 2 additions & 0 deletions src/Contracts/Structures/NavigationRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ public function find($id): ?Nav;

public function findByHandle($handle): ?Nav;

public function findOrFail($id): Nav;

public function save(Nav $nav);

public function make(?string $handle = null): Nav;
Expand Down
2 changes: 2 additions & 0 deletions src/Contracts/Taxonomies/TaxonomyRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ public function findByHandle($handle): ?Taxonomy;

public function findByUri(string $uri): ?Taxonomy;

public function findOrFail($id): Taxonomy;

public function make(?string $handle = null): Taxonomy;

public function handles(): Collection;
Expand Down
2 changes: 2 additions & 0 deletions src/Contracts/Taxonomies/TermRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ public function find($id);

public function findByUri(string $uri);

public function findOrFail($id);

public function make(?string $slug = null);

public function query();
Expand Down
15 changes: 15 additions & 0 deletions src/Exceptions/AssetNotFoundException.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace Statamic\Exceptions;

class AssetNotFoundException extends \Exception
{
protected $asset;

public function __construct($asset)
{
parent::__construct("Asset [{$asset}] not found");

$this->asset = $asset;
}
}
15 changes: 15 additions & 0 deletions src/Exceptions/FormNotFoundException.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace Statamic\Exceptions;

class FormNotFoundException extends \Exception
{
protected $form;

public function __construct($form)
{
parent::__construct("Form [{$form}] not found");

$this->form = $form;
}
}
15 changes: 15 additions & 0 deletions src/Exceptions/GlobalSetNotFoundException.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace Statamic\Exceptions;

class GlobalSetNotFoundException extends \Exception
{
protected $global;

public function __construct($global)
{
parent::__construct("Global Set [{$global}] not found");

$this->global = $global;
}
}
15 changes: 15 additions & 0 deletions src/Exceptions/GlobalVariablesNotFoundException.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace Statamic\Exceptions;

class GlobalVariablesNotFoundException extends \Exception
{
protected $variables;

public function __construct($variables)
{
parent::__construct("Global Variables [{$variables}] not found");

$this->variables = $variables;
}
}
17 changes: 17 additions & 0 deletions src/Exceptions/TermNotFoundException.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

namespace Statamic\Exceptions;

use Exception;

class TermNotFoundException extends Exception
{
protected $term;

public function __construct($term)
{
parent::__construct("Term [{$term}] not found");

$this->term = $term;
}
}
15 changes: 15 additions & 0 deletions src/Exceptions/UserNotFoundException.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace Statamic\Exceptions;

class UserNotFoundException extends \Exception
{
protected $user;

public function __construct($user)
{
parent::__construct("User [{$user}] not found");

$this->user = $user;
}
}
1 change: 1 addition & 0 deletions src/Facades/Asset.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
* @method static AssetContract|null findByUrl(string $url)
* @method static AssetContract|null findById(string $id)
* @method static AssetContract|null findByPath(string $path)
* @method static AssetContract findOrFail(string $asset)
* @method static AssetContract make()
* @method static QueryBuilder query()
* @method static void save($asset)
Expand Down
1 change: 1 addition & 0 deletions src/Facades/AssetContainer.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
* @method static \Illuminate\Support\Collection all()
* @method static null|\Statamic\Contracts\Assets\AssetContainer find($id)
* @method static null|\Statamic\Contracts\Assets\AssetContainer findByHandle(string $handle)
* @method static \Statamic\Contracts\Assets\AssetContainer findOrFail($id)
* @method static \Statamic\Contracts\Assets\AssetContainer make(string $handle = null)
*
* @see \Statamic\Assets\AssetRepository
Expand Down
1 change: 1 addition & 0 deletions src/Facades/Blueprint.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
* @method static self setDirectory(string $directory)
* @method static self setFallbackDirectory(string $directory)
* @method static null|\Statamic\Fields\Blueprint find($handle)
* @method static \Statamic\Fields\Blueprint findOrFail($handle)
* @method static void save(Blueprint $blueprint)
* @method static void delete(Blueprint $blueprint)
* @method static \Statamic\Fields\Blueprint make($handle = null)
Expand Down
1 change: 1 addition & 0 deletions src/Facades/Collection.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
* @method static null|\Statamic\Entries\Collection find($id)
* @method static null|\Statamic\Entries\Collection findByHandle($handle)
* @method static null|\Statamic\Entries\Collection findByMount($mount)
* @method static \Statamic\Contracts\Entries\Collection findOrFail($id)
* @method static \Statamic\Entries\Collection make(string $handle = null)
* @method static \Illuminate\Support\Collection handles()
* @method static bool handleExists(string $handle)
Expand Down
1 change: 1 addition & 0 deletions src/Facades/Fieldset.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
/**
* @method static self setDirectory($directory)
* @method static null|\Statamic\Fields\Fieldset find(string $handle)
* @method static \Statamic\Fields\Fieldset findOrFail(string $handle)
* @method static bool exists(string $handle)
* @method static \Statamic\Fields\Fieldset make($handle = null)
* @method static \Illuminate\Support\Collection all()
Expand Down
1 change: 1 addition & 0 deletions src/Facades/Form.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

/**
* @method static \Statamic\Contracts\Forms\Form find($handle)
* @method static \Statamic\Contracts\Forms\Form findOrFail($handle)
* @method static \Illuminate\Support\Collection all()
* @method static \Statamic\Contracts\Forms\Form make($handle = null)
*
Expand Down
1 change: 1 addition & 0 deletions src/Facades/GlobalSet.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
* @method static \Statamic\Globals\GlobalCollection all()
* @method static null|\Statamic\Globals\GlobalCollection find($id)
* @method static null|\Statamic\Globals\GlobalCollection findByHandle($handle)
* @method static \Statamic\Globals\GlobalCollection findOrFail($id)
* @method static void save($global);
*
* @see \Statamic\Globals\GlobalCollection
Expand Down
1 change: 1 addition & 0 deletions src/Facades/GlobalVariables.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
/**
* @method static \Statamic\Globals\VariablesCollection all()
* @method static null|\Statamic\Globals\Variables find($id)
* @method static \Statamic\Globals\Variables findOrFail($id)
* @method static \Statamic\Globals\VariablesCollection whereSet($set)
* @method static void save($variable);
*
Expand Down
1 change: 1 addition & 0 deletions src/Facades/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
* @method static null|\Statamic\Contracts\Auth\User find($id)
* @method static null|\Statamic\Contracts\Auth\User findByEmail(string $email)
* @method static null|\Statamic\Contracts\Auth\User findByOAuthId(Provider $provider, string $id)
* @method static \Statamic\Contracts\Auth\User findOrFail($id)
* @method static null|\Statamic\Contracts\Auth\User current()
* @method static null|\Statamic\Contracts\Auth\User fromUser($user)
* @method static void save(User $user);
Expand Down
12 changes: 12 additions & 0 deletions src/Fields/BlueprintRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Statamic\Fields;

use Closure;
use Statamic\Exceptions\BlueprintNotFoundException;
use Statamic\Facades\Blink;
use Statamic\Facades\File;
use Statamic\Facades\Path;
Expand Down Expand Up @@ -51,6 +52,17 @@ public function find($blueprint): ?Blueprint
});
}

public function findOrFail($id): Blueprint
{
$blueprint = $this->find($id);

if (! $blueprint) {
throw new BlueprintNotFoundException($id);
}

return $blueprint;
}

public function findStandardBlueprintPath($handle)
{
if (Str::startsWith($handle, 'vendor.')) {
Expand Down
12 changes: 12 additions & 0 deletions src/Fields/FieldsetRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Statamic\Fields;

use Illuminate\Support\Collection;
use Statamic\Exceptions\FieldsetNotFoundException;
use Statamic\Facades\File;
use Statamic\Facades\Path;
use Statamic\Facades\YAML;
Expand Down Expand Up @@ -52,6 +53,17 @@ public function find(string $handle): ?Fieldset
return $fieldset;
}

public function findOrFail($id): Fieldset
{
$blueprint = $this->find($id);

if (! $blueprint) {
throw new FieldsetNotFoundException($id);
}

return $blueprint;
}

private function standardFieldsetPath(string $handle)
{
$handle = str_replace('/', '.', $handle);
Expand Down
12 changes: 12 additions & 0 deletions src/Forms/FormRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use Statamic\Contracts\Forms\Form as FormContract;
use Statamic\Contracts\Forms\FormRepository as Contract;
use Statamic\Contracts\Forms\Submission as SubmissionContract;
use Statamic\Exceptions\FormNotFoundException;
use Statamic\Facades\File;
use Statamic\Facades\Folder;
use Statamic\Forms\Exporters\ExporterRepository;
Expand All @@ -31,6 +32,17 @@ public function find($handle)
return $form->hydrate();
}

public function findOrFail($handle): FormContract
{
$form = $this->find($handle);

if (! $form) {
throw new FormNotFoundException($handle);
}

return $form;
}

/**
* Get all forms.
*
Expand Down
Loading
Loading