Begin moving packs to new service mechanisms, refactor exceptions for services
This commit is contained in:
parent
46cb71e69d
commit
9d3dca87f2
62 changed files with 492 additions and 303 deletions
|
@ -28,10 +28,12 @@ use Pterodactyl\Models\Location;
|
|||
use Pterodactyl\Exceptions\DisplayException;
|
||||
use Pterodactyl\Exceptions\Repository\RecordNotFoundException;
|
||||
use Pterodactyl\Contracts\Repository\LocationRepositoryInterface;
|
||||
use Pterodactyl\Repositories\Eloquent\Attributes\SearchableRepository;
|
||||
use Pterodactyl\Repositories\Concerns\Searchable;
|
||||
|
||||
class LocationRepository extends SearchableRepository implements LocationRepositoryInterface
|
||||
class LocationRepository extends EloquentRepository implements LocationRepositoryInterface
|
||||
{
|
||||
use Searchable;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
|
|
@ -27,10 +27,12 @@ namespace Pterodactyl\Repositories\Eloquent;
|
|||
use Pterodactyl\Models\Node;
|
||||
use Pterodactyl\Contracts\Repository\NodeRepositoryInterface;
|
||||
use Pterodactyl\Exceptions\Repository\RecordNotFoundException;
|
||||
use Pterodactyl\Repositories\Eloquent\Attributes\SearchableRepository;
|
||||
use Pterodactyl\Repositories\Concerns\Searchable;
|
||||
|
||||
class NodeRepository extends SearchableRepository implements NodeRepositoryInterface
|
||||
class NodeRepository extends EloquentRepository implements NodeRepositoryInterface
|
||||
{
|
||||
use Searchable;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -22,30 +22,44 @@
|
|||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
namespace Pterodactyl\Repositories\Eloquent\Attributes;
|
||||
namespace Pterodactyl\Repositories\Eloquent;
|
||||
|
||||
use Pterodactyl\Repositories\Eloquent\EloquentRepository;
|
||||
use Pterodactyl\Contracts\Repository\Attributes\SearchableInterface;
|
||||
use Pterodactyl\Models\Pack;
|
||||
use Illuminate\Contracts\Filesystem\Factory as FilesystemFactory;
|
||||
use Pterodactyl\Repositories\Concerns\Searchable;
|
||||
use Pterodactyl\Contracts\Repository\PackRepositoryInterface;
|
||||
|
||||
abstract class SearchableRepository extends EloquentRepository implements SearchableInterface
|
||||
class PackRepository extends EloquentRepository implements PackRepositoryInterface
|
||||
{
|
||||
/**
|
||||
* @var bool|string
|
||||
*/
|
||||
protected $searchTerm = false;
|
||||
use Searchable;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function search($term)
|
||||
public function model()
|
||||
{
|
||||
if (empty($term)) {
|
||||
return $this;
|
||||
}
|
||||
return Pack::class;
|
||||
}
|
||||
|
||||
$clone = clone $this;
|
||||
$clone->searchTerm = $term;
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getFileArchives($id, $collection = false)
|
||||
{
|
||||
$pack = $this->getBuilder()->find($id, ['id', 'uuid']);
|
||||
$storage = $this->app->make(FilesystemFactory::class);
|
||||
$files = collect($storage->disk('default')->files('packs/' . $pack->uuid));
|
||||
|
||||
return $clone;
|
||||
$files = $files->map(function ($file) {
|
||||
$path = storage_path('app/' . $file);
|
||||
|
||||
return (object) [
|
||||
'name' => basename($file),
|
||||
'hash' => sha1_file($path),
|
||||
'size' => human_readable($path),
|
||||
];
|
||||
});
|
||||
|
||||
return ($collection) ? $files : (object) $files->all();
|
||||
}
|
||||
}
|
|
@ -25,12 +25,14 @@
|
|||
namespace Pterodactyl\Repositories\Eloquent;
|
||||
|
||||
use Pterodactyl\Models\Server;
|
||||
use Pterodactyl\Repositories\Concerns\Searchable;
|
||||
use Pterodactyl\Exceptions\Repository\RecordNotFoundException;
|
||||
use Pterodactyl\Contracts\Repository\ServerRepositoryInterface;
|
||||
use Pterodactyl\Repositories\Eloquent\Attributes\SearchableRepository;
|
||||
|
||||
class ServerRepository extends SearchableRepository implements ServerRepositoryInterface
|
||||
class ServerRepository extends EloquentRepository implements ServerRepositoryInterface
|
||||
{
|
||||
use Searchable;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -26,12 +26,14 @@ namespace Pterodactyl\Repositories\Eloquent;
|
|||
|
||||
use Pterodactyl\Models\User;
|
||||
use Illuminate\Foundation\Application;
|
||||
use Pterodactyl\Repositories\Concerns\Searchable;
|
||||
use Pterodactyl\Contracts\Repository\UserRepositoryInterface;
|
||||
use Illuminate\Contracts\Config\Repository as ConfigRepository;
|
||||
use Pterodactyl\Repositories\Eloquent\Attributes\SearchableRepository;
|
||||
|
||||
class UserRepository extends SearchableRepository implements UserRepositoryInterface
|
||||
class UserRepository extends EloquentRepository implements UserRepositoryInterface
|
||||
{
|
||||
use Searchable;
|
||||
|
||||
/**
|
||||
* @var \Illuminate\Contracts\Config\Repository
|
||||
*/
|
||||
|
|
Reference in a new issue