From a4c2d3a0de6278b73ba9e34159109ec8bcdafd06 Mon Sep 17 00:00:00 2001 From: Kyrch Date: Sat, 15 Nov 2025 16:00:49 -0300 Subject: [PATCH] refactor: general code improvement (#1006) --- app/Actions/Discord/DiscordThreadAction.php | 12 +++++--- .../DiscordVideoNotificationAction.php | 6 +++- app/Actions/Models/Wiki/AttachImageAction.php | 6 +++- .../Models/Wiki/AttachResourceAction.php | 6 +++- .../Models/Wiki/Image/OptimizeImageAction.php | 3 -- .../Filament/ActionLogs/HasActionLogs.php | 6 ++-- app/Concerns/Models/CanCreateImage.php | 28 +++++++------------ app/Concerns/Models/CanCreateStudio.php | 25 +++-------------- .../Models/List/AssignHashidsAction.php | 7 +---- .../Models/Wiki/Anime/BackfillAnimeAction.php | 25 ++++++++--------- .../Models/Wiki/Anime/DiscordThreadAction.php | 7 ++--- .../Wiki/Studio/BackfillStudioAction.php | 7 ++++- .../Models/Wiki/Video/BackfillAudioAction.php | 8 +++++- .../VideoDiscordNotificationBulkAction.php | 6 +++- .../BulkActions/Storage/StorageBulkAction.php | 4 +++ app/Filament/Tabs/BaseTab.php | 6 ---- .../Wiki/Anime/Theme/AnimeThemeTypeField.php | 2 +- .../Middleware/GraphQL/SetServingGraphQL.php | 5 ++-- app/Models/Admin/ActionLog.php | 2 +- app/Models/Wiki/Anime/AnimeTheme.php | 4 +-- app/Providers/FilamentPanelProvider.php | 5 ---- .../Storage/Wiki/AudioRepository.php | 3 +- .../Storage/Wiki/VideoRepository.php | 3 +- config/graphql.php | 4 +-- 24 files changed, 88 insertions(+), 102 deletions(-) diff --git a/app/Actions/Discord/DiscordThreadAction.php b/app/Actions/Discord/DiscordThreadAction.php index f6c521b9e..25145d7be 100644 --- a/app/Actions/Discord/DiscordThreadAction.php +++ b/app/Actions/Discord/DiscordThreadAction.php @@ -4,6 +4,8 @@ declare(strict_types=1); namespace App\Actions\Discord; +use App\Actions\ActionResult; +use App\Enums\Actions\ActionStatus; use App\Models\Discord\DiscordThread; use App\Models\Wiki\Anime; use Exception; @@ -14,8 +16,10 @@ class DiscordThreadAction { /** * @param array $fields + * + * @throws Exception */ - public function handle(Anime $anime, array $fields): ?Exception + public function handle(Anime $anime, array $fields): ActionResult { try { $anime->load(Anime::RELATION_IMAGES); @@ -44,13 +48,13 @@ class DiscordThreadAction DiscordThread::ATTRIBUTE_ANIME => $anime->getKey(), ]); } - - return null; } catch (Exception $e) { Log::error($e->getMessage()); - return $e; + throw $e; } + + return new ActionResult(ActionStatus::PASSED); } /** diff --git a/app/Actions/Discord/DiscordVideoNotificationAction.php b/app/Actions/Discord/DiscordVideoNotificationAction.php index d19ea056f..42f30f408 100644 --- a/app/Actions/Discord/DiscordVideoNotificationAction.php +++ b/app/Actions/Discord/DiscordVideoNotificationAction.php @@ -4,6 +4,8 @@ declare(strict_types=1); namespace App\Actions\Discord; +use App\Actions\ActionResult; +use App\Enums\Actions\ActionStatus; use App\Enums\Actions\Models\Wiki\Video\DiscordNotificationType; use App\Models\Wiki\Video; use Illuminate\Support\Arr; @@ -15,7 +17,7 @@ class DiscordVideoNotificationAction * @param Collection $videos * @param array $fields */ - public function handle(Collection $videos, array $fields): void + public function handle(Collection $videos, array $fields): ActionResult { $type = Arr::get($fields, DiscordNotificationType::getFieldKey()); @@ -59,5 +61,7 @@ class DiscordVideoNotificationAction 'videos' => $newVideos, ]) ->throw(); + + return new ActionResult(ActionStatus::PASSED); } } diff --git a/app/Actions/Models/Wiki/AttachImageAction.php b/app/Actions/Models/Wiki/AttachImageAction.php index 0f830eb89..6d0af6fdb 100644 --- a/app/Actions/Models/Wiki/AttachImageAction.php +++ b/app/Actions/Models/Wiki/AttachImageAction.php @@ -4,8 +4,10 @@ declare(strict_types=1); namespace App\Actions\Models\Wiki; +use App\Actions\ActionResult; use App\Concerns\Models\CanCreateImage; use App\Contracts\Models\HasImages; +use App\Enums\Actions\ActionStatus; use App\Enums\Models\Wiki\ImageFacet; use App\Models\BaseModel; use Illuminate\Support\Arr; @@ -17,7 +19,7 @@ class AttachImageAction /** * @param ImageFacet[] $facets */ - public function handle(BaseModel&HasImages $model, array $fields, array $facets): void + public function handle(BaseModel&HasImages $model, array $fields, array $facets): ActionResult { foreach ($facets as $facet) { $image = Arr::get($fields, $facet->name); @@ -28,5 +30,7 @@ class AttachImageAction $this->createImageFromFile($image, $facet, $model); } + + return new ActionResult(ActionStatus::PASSED); } } diff --git a/app/Actions/Models/Wiki/AttachResourceAction.php b/app/Actions/Models/Wiki/AttachResourceAction.php index 2a26e0438..b6e8bb695 100644 --- a/app/Actions/Models/Wiki/AttachResourceAction.php +++ b/app/Actions/Models/Wiki/AttachResourceAction.php @@ -4,8 +4,10 @@ declare(strict_types=1); namespace App\Actions\Models\Wiki; +use App\Actions\ActionResult; use App\Concerns\Models\CanCreateExternalResource; use App\Contracts\Models\HasResources; +use App\Enums\Actions\ActionStatus; use App\Enums\Models\Wiki\ResourceSite; use App\Models\BaseModel; use Illuminate\Support\Arr; @@ -17,7 +19,7 @@ class AttachResourceAction /** * @param ResourceSite[] $sites */ - public function handle(BaseModel&HasResources $model, array $fields, array $sites): void + public function handle(BaseModel&HasResources $model, array $fields, array $sites): ActionResult { foreach ($sites as $resourceSite) { $url = Arr::get($fields, $resourceSite->name); @@ -28,5 +30,7 @@ class AttachResourceAction $this->createResource($url, $resourceSite, $model); } + + return new ActionResult(ActionStatus::PASSED); } } diff --git a/app/Actions/Models/Wiki/Image/OptimizeImageAction.php b/app/Actions/Models/Wiki/Image/OptimizeImageAction.php index 3233b0124..170e9aaea 100644 --- a/app/Actions/Models/Wiki/Image/OptimizeImageAction.php +++ b/app/Actions/Models/Wiki/Image/OptimizeImageAction.php @@ -60,9 +60,6 @@ class OptimizeImageAction return new ActionResult(ActionStatus::PASSED); } - /** - * @throws Exception - */ protected function convertImage(): ?string { try { diff --git a/app/Concerns/Filament/ActionLogs/HasActionLogs.php b/app/Concerns/Filament/ActionLogs/HasActionLogs.php index f7005f089..2e0a22def 100644 --- a/app/Concerns/Filament/ActionLogs/HasActionLogs.php +++ b/app/Concerns/Filament/ActionLogs/HasActionLogs.php @@ -66,7 +66,7 @@ trait HasActionLogs public function finishedLog(): void { - if (($actionLog = $this->actionLog) && ! $this->isFailedLog()) { + if (($actionLog = $this->actionLog) && ! $this->hasFailedLog()) { $actionLog->finished(); // Filament notifications if ($this instanceof Action) { @@ -80,8 +80,8 @@ trait HasActionLogs $this->actionLog->batchFinished(); } - public function isFailedLog(): bool + public function hasFailedLog(): bool { - return $this->actionLog->isFailed(); + return $this->actionLog->hasFailed(); } } diff --git a/app/Concerns/Models/CanCreateImage.php b/app/Concerns/Models/CanCreateImage.php index 6e9e40787..c1b6eaf6f 100644 --- a/app/Concerns/Models/CanCreateImage.php +++ b/app/Concerns/Models/CanCreateImage.php @@ -10,8 +10,7 @@ use App\Enums\Models\Wiki\ImageFacet; use App\Jobs\Wiki\Image\OptimizeImageJob; use App\Models\BaseModel; use App\Models\Wiki\Image; -use Illuminate\Http\Client\RequestException; -use Illuminate\Http\Testing\File; +use Illuminate\Http\File; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; @@ -22,24 +21,20 @@ trait CanCreateImage { use HasLabel; - /** - * @throws RequestException - */ public function createImageFromUrl(string $url, ImageFacet $facet, (BaseModel&HasImages)|null $model = null): Image { - $imageResponse = Http::get($url)->throw(); + $binary = Http::get($url) + ->throw() + ->body(); - $image = $imageResponse->body(); + $tmp = tempnam(sys_get_temp_dir(), 'img_'); - $file = File::createWithContent(basename($url), $image); + file_put_contents($tmp, $binary); - /** @var \Illuminate\Filesystem\FilesystemAdapter $fs */ - $fs = Storage::disk(Config::get(ImageConstants::DISKS_QUALIFIED)); - - $fsFile = $fs->putFile($this->path($facet, $model), $file); + $fsFile = Storage::disk(Config::get(ImageConstants::DISKS_QUALIFIED)) + ->putFile($this->path($facet, $model), new File($tmp)); Log::info("Creating Image {$fsFile}"); - /** @var Image $image */ $image = Image::query()->create([ Image::ATTRIBUTE_FACET => $facet->value, Image::ATTRIBUTE_PATH => $fsFile, @@ -54,13 +49,10 @@ trait CanCreateImage public function createImageFromFile(mixed $image, ImageFacet $facet, (BaseModel&HasImages)|null $model = null): Image { - /** @var \Illuminate\Filesystem\FilesystemAdapter $fs */ - $fs = Storage::disk(Config::get(ImageConstants::DISKS_QUALIFIED)); - - $fsFile = $fs->putFile($this->path($facet, $model), $image); + $fsFile = Storage::disk(Config::get(ImageConstants::DISKS_QUALIFIED)) + ->putFile($this->path($facet, $model), $image); Log::info("Creating Image {$fsFile}"); - /** @var Image $image */ $image = Image::query()->create([ Image::ATTRIBUTE_FACET => $facet->value, Image::ATTRIBUTE_PATH => $fsFile, diff --git a/app/Concerns/Models/CanCreateStudio.php b/app/Concerns/Models/CanCreateStudio.php index f1f60575a..dcda23e3f 100644 --- a/app/Concerns/Models/CanCreateStudio.php +++ b/app/Concerns/Models/CanCreateStudio.php @@ -7,7 +7,6 @@ namespace App\Concerns\Models; use App\Enums\Models\Wiki\ResourceSite; use App\Models\Wiki\ExternalResource; use App\Models\Wiki\Studio; -use App\Pivots\Morph\Resourceable; use Illuminate\Support\Facades\Log; use Illuminate\Support\Str; @@ -34,29 +33,13 @@ trait CanCreateStudio public function ensureStudioHasResource(Studio $studio, ResourceSite $site, int $id): void { - $studioResource = ExternalResource::query() - ->where(ExternalResource::ATTRIBUTE_SITE, $site->value) - ->where(ExternalResource::ATTRIBUTE_EXTERNAL_ID, $id) - ->where(ExternalResource::ATTRIBUTE_LINK, $site->formatResourceLink(Studio::class, $id)) - ->first(); - - if (! $studioResource instanceof ExternalResource) { - Log::info("Creating studio resource with site '{$site->localize()}' and id '$id'"); - - $studioResource = ExternalResource::query()->create([ + $resource = ExternalResource::query() + ->firstOrCreate([ + ExternalResource::ATTRIBUTE_SITE => $site->value, ExternalResource::ATTRIBUTE_EXTERNAL_ID => $id, ExternalResource::ATTRIBUTE_LINK => $site->formatResourceLink(Studio::class, $id), - ExternalResource::ATTRIBUTE_SITE => $site->value, ]); - } - if (Resourceable::query() - ->whereMorphedTo(Resourceable::RELATION_RESOURCEABLE, $studio) - ->where(Resourceable::ATTRIBUTE_RESOURCE, $studioResource->getKey()) - ->doesntExist() - ) { - Log::info("Attaching resource '$studioResource->link' to studio '{$studio->getName()}'"); - $studioResource->studios()->attach($studio); - } + $resource->studios()->attach($studio); } } diff --git a/app/Filament/Actions/Models/List/AssignHashidsAction.php b/app/Filament/Actions/Models/List/AssignHashidsAction.php index 766035ed1..8e14bc7da 100644 --- a/app/Filament/Actions/Models/List/AssignHashidsAction.php +++ b/app/Filament/Actions/Models/List/AssignHashidsAction.php @@ -9,7 +9,6 @@ use App\Contracts\Models\HasHashids; use App\Filament\Actions\BaseAction; use App\Models\BaseModel; use App\Models\List\Playlist; -use Exception; use Illuminate\Support\Facades\Gate; class AssignHashidsAction extends BaseAction @@ -37,11 +36,7 @@ class AssignHashidsAction extends BaseAction $action = new AssignHashids(); if ($model instanceof HasHashids) { - try { - $action->assign($model, $this->connection); - } catch (Exception $e) { - $this->failedLog($e); - } + $action->assign($model, $this->connection); } } diff --git a/app/Filament/Actions/Models/Wiki/Anime/BackfillAnimeAction.php b/app/Filament/Actions/Models/Wiki/Anime/BackfillAnimeAction.php index 487fe5829..92802ba11 100644 --- a/app/Filament/Actions/Models/Wiki/Anime/BackfillAnimeAction.php +++ b/app/Filament/Actions/Models/Wiki/Anime/BackfillAnimeAction.php @@ -12,7 +12,6 @@ use App\Filament\Actions\BaseAction; use App\Models\Wiki\Anime; use App\Models\Wiki\ExternalResource; use App\Models\Wiki\Image; -use Exception; use Filament\Forms\Components\Checkbox; use Filament\Notifications\Notification; use Filament\Schemas\Components\Section; @@ -72,20 +71,18 @@ class BackfillAnimeAction extends BaseAction $action = new BackfillAnime($anime, $this->getToBackfill($data)); - try { - $result = $action->handle(); + $result = $action->handle(); - if ($result->hasFailed()) { - Notification::make() - ->body($result->getMessage()) - ->warning() - ->actions([ - MarkAsReadAction::make(), - ]) - ->sendToDatabase(Auth::user()); - } - } catch (Exception $e) { - $this->failedLog($e); + if ($result->hasFailed()) { + Notification::make() + ->body($result->getMessage()) + ->warning() + ->actions([ + MarkAsReadAction::make(), + ]) + ->sendToDatabase(Auth::user()); + + $this->failedLog($result->getMessage()); } } diff --git a/app/Filament/Actions/Models/Wiki/Anime/DiscordThreadAction.php b/app/Filament/Actions/Models/Wiki/Anime/DiscordThreadAction.php index 8831f1ef6..21a679b4b 100644 --- a/app/Filament/Actions/Models/Wiki/Anime/DiscordThreadAction.php +++ b/app/Filament/Actions/Models/Wiki/Anime/DiscordThreadAction.php @@ -9,7 +9,6 @@ use App\Filament\Actions\BaseAction; use App\Filament\Components\Fields\TextInput; use App\Models\Discord\DiscordThread; use App\Models\Wiki\Anime; -use Exception; use Filament\Schemas\Schema; use Filament\Support\Icons\Heroicon; use Illuminate\Support\Facades\Gate; @@ -33,10 +32,10 @@ class DiscordThreadAction extends BaseAction $this->fillForm(fn (Anime $record): array => ['name' => $record->getName()]); $this->action(function (Anime $record, array $data): void { - $action = new DiscordThreadActionAction()->handle($record, $data); + $result = new DiscordThreadActionAction()->handle($record, $data); - if ($action instanceof Exception) { - $this->failedLog($action); + if ($result->hasFailed()) { + $this->failedLog($result->getMessage()); } }); } diff --git a/app/Filament/Actions/Models/Wiki/Studio/BackfillStudioAction.php b/app/Filament/Actions/Models/Wiki/Studio/BackfillStudioAction.php index 114df60f3..f2e294053 100644 --- a/app/Filament/Actions/Models/Wiki/Studio/BackfillStudioAction.php +++ b/app/Filament/Actions/Models/Wiki/Studio/BackfillStudioAction.php @@ -21,6 +21,7 @@ use Illuminate\Queue\InteractsWithQueue; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Gate; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Sleep; class BackfillStudioAction extends BaseAction implements ShouldQueue @@ -71,9 +72,13 @@ class BackfillStudioAction extends BaseAction implements ShouldQueue MarkAsReadAction::make(), ]) ->sendToDatabase(Auth::user()); + + $this->failedLog($result->getMessage()); } } catch (Exception $e) { - $this->failedLog($e); + Log::error($e->getMessage()); + + throw $e; } finally { // Try not to upset third-party APIs Sleep::for(random_int(3, 5))->second(); diff --git a/app/Filament/Actions/Models/Wiki/Video/BackfillAudioAction.php b/app/Filament/Actions/Models/Wiki/Video/BackfillAudioAction.php index 20697b5cc..35802f80d 100644 --- a/app/Filament/Actions/Models/Wiki/Video/BackfillAudioAction.php +++ b/app/Filament/Actions/Models/Wiki/Video/BackfillAudioAction.php @@ -23,6 +23,7 @@ use Illuminate\Queue\InteractsWithQueue; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Gate; +use Illuminate\Support\Facades\Log; class BackfillAudioAction extends BaseAction implements ShouldQueue { @@ -60,6 +61,7 @@ class BackfillAudioAction extends BaseAction implements ShouldQueue try { $result = $action->handle(); + if ($result->hasFailed()) { Notification::make() ->body($result->getMessage()) @@ -68,9 +70,13 @@ class BackfillAudioAction extends BaseAction implements ShouldQueue MarkAsReadAction::make(), ]) ->sendToDatabase(Auth::user()); + + $this->failedLog($result->getMessage()); } } catch (Exception $e) { - $this->failedLog($e); + Log::error($e->getMessage()); + + throw $e; } } diff --git a/app/Filament/BulkActions/Models/Wiki/Video/VideoDiscordNotificationBulkAction.php b/app/Filament/BulkActions/Models/Wiki/Video/VideoDiscordNotificationBulkAction.php index 5d76f35bf..6ebee8a57 100644 --- a/app/Filament/BulkActions/Models/Wiki/Video/VideoDiscordNotificationBulkAction.php +++ b/app/Filament/BulkActions/Models/Wiki/Video/VideoDiscordNotificationBulkAction.php @@ -45,7 +45,11 @@ class VideoDiscordNotificationBulkAction extends BaseBulkAction $action = new DiscordVideoNotificationActionAction(); - $action->handle($videos, $data); + $result = $action->handle($videos, $data); + + if ($result->hasFailed()) { + $this->failedLog($result->getMessage()); + } } /** diff --git a/app/Filament/BulkActions/Storage/StorageBulkAction.php b/app/Filament/BulkActions/Storage/StorageBulkAction.php index d22b105d7..f5cf7d98a 100644 --- a/app/Filament/BulkActions/Storage/StorageBulkAction.php +++ b/app/Filament/BulkActions/Storage/StorageBulkAction.php @@ -34,6 +34,10 @@ abstract class StorageBulkAction extends BaseBulkAction $action->then($storageResults); $actionResult = $storageResults->toActionResult(); + + if ($actionResult->hasFailed()) { + $this->failedLog($actionResult->getMessage()); + } } } } diff --git a/app/Filament/Tabs/BaseTab.php b/app/Filament/Tabs/BaseTab.php index bc4eeea2d..1cfa374fe 100644 --- a/app/Filament/Tabs/BaseTab.php +++ b/app/Filament/Tabs/BaseTab.php @@ -5,18 +5,12 @@ declare(strict_types=1); namespace App\Filament\Tabs; use Filament\Schemas\Components\Tabs\Tab; -use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\Cache; abstract class BaseTab extends Tab { abstract public static function getSlug(): string; - public function modifyQuery(Builder $query): Builder - { - return Cache::flexible("filament_query_{$this->getSlug()}", [15, 60], fn (): Builder => $this->modifyQuery($query)); - } - public function count(): mixed { $count = Cache::flexible("filament_badge_{$this->getSlug()}", [15, 60], fn (): string|int|float|null => $this->getBadge()); diff --git a/app/GraphQL/Schema/Fields/Wiki/Anime/Theme/AnimeThemeTypeField.php b/app/GraphQL/Schema/Fields/Wiki/Anime/Theme/AnimeThemeTypeField.php index 5ae5d414f..e5b48b897 100644 --- a/app/GraphQL/Schema/Fields/Wiki/Anime/Theme/AnimeThemeTypeField.php +++ b/app/GraphQL/Schema/Fields/Wiki/Anime/Theme/AnimeThemeTypeField.php @@ -35,7 +35,7 @@ class AnimeThemeTypeField extends EnumField implements CreatableField, RequiredO { return [ new EqFilter($this), - new InFilter($this, [ThemeType::OP->value, ThemeType::ED->value]), + new InFilter($this), new NotInFilter($this), ]; } diff --git a/app/Http/Middleware/GraphQL/SetServingGraphQL.php b/app/Http/Middleware/GraphQL/SetServingGraphQL.php index ffaf02b05..32bf66918 100644 --- a/app/Http/Middleware/GraphQL/SetServingGraphQL.php +++ b/app/Http/Middleware/GraphQL/SetServingGraphQL.php @@ -6,16 +6,17 @@ namespace App\Http\Middleware\GraphQL; use Closure; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Context; class SetServingGraphQL { + public static $isServing = false; + /** * @param Closure(Request): mixed $next */ public function handle(Request $request, Closure $next): mixed { - Context::add('serving-graphql', true); + static::$isServing = true; return $next($request); } diff --git a/app/Models/Admin/ActionLog.php b/app/Models/Admin/ActionLog.php index c2d681245..1071b0fae 100644 --- a/app/Models/Admin/ActionLog.php +++ b/app/Models/Admin/ActionLog.php @@ -393,7 +393,7 @@ class ActionLog extends Model implements Nameable /** * Check if the model status is failed. */ - public function isFailed(): bool + public function hasFailed(): bool { return $this->status === ActionLogStatus::FAILED; } diff --git a/app/Models/Wiki/Anime/AnimeTheme.php b/app/Models/Wiki/Anime/AnimeTheme.php index b9ca39827..258be67bb 100644 --- a/app/Models/Wiki/Anime/AnimeTheme.php +++ b/app/Models/Wiki/Anime/AnimeTheme.php @@ -15,6 +15,7 @@ use App\Events\Wiki\Anime\Theme\ThemeDeleting; use App\Events\Wiki\Anime\Theme\ThemeRestored; use App\Events\Wiki\Anime\Theme\ThemeUpdated; use App\Http\Api\Schema\Wiki\Anime\ThemeSchema; +use App\Http\Middleware\GraphQL\SetServingGraphQL; use App\Models\BaseModel; use App\Models\Wiki\Anime; use App\Models\Wiki\Anime\Theme\AnimeThemeEntry; @@ -28,7 +29,6 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Collection; -use Illuminate\Support\Facades\Context; use Illuminate\Support\Str; use Illuminate\Support\Stringable; @@ -83,7 +83,7 @@ class AnimeTheme extends BaseModel implements InteractsWithSchema, SoftDeletable { parent::boot(); - if (! Context::get('serving-graphql')) { + if (! SetServingGraphQL::$isServing) { static::addGlobalScope(new WithoutInsertSongScope); } } diff --git a/app/Providers/FilamentPanelProvider.php b/app/Providers/FilamentPanelProvider.php index a0be88b42..20ddf81ef 100644 --- a/app/Providers/FilamentPanelProvider.php +++ b/app/Providers/FilamentPanelProvider.php @@ -8,7 +8,6 @@ use App\Enums\Filament\NavigationGroup; use App\Filament\Components\Fields\TextInput; use App\Filament\Providers\GlobalSearchScoutProvider; use Awcodes\Recently\RecentlyPlugin; -use Filament\Actions\ActionGroup; use Filament\Http\Middleware\Authenticate; use Filament\Http\Middleware\DisableBladeIconComponents; use Filament\Http\Middleware\DispatchServingFilamentEvent; @@ -46,10 +45,6 @@ class FilamentPanelProvider extends PanelProvider { parent::register(); - ActionGroup::configureUsing(function (ActionGroup $actionGroup): void { - $actionGroup->dropdownPlacement('bottom-end'); - }); - Column::configureUsing(function (Column $column): void { $column->placeholder('-'); $column->sortable(); diff --git a/app/Repositories/Storage/Wiki/AudioRepository.php b/app/Repositories/Storage/Wiki/AudioRepository.php index 87ae3fd79..6b07f4d5b 100644 --- a/app/Repositories/Storage/Wiki/AudioRepository.php +++ b/app/Repositories/Storage/Wiki/AudioRepository.php @@ -8,7 +8,6 @@ use App\Constants\Config\AudioConstants; use App\Models\Wiki\Audio; use App\Repositories\Storage\StorageRepository; use Closure; -use Illuminate\Http\Testing\MimeType; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\File; use League\Flysystem\StorageAttributes; @@ -43,7 +42,7 @@ class AudioRepository extends StorageRepository return fn (StorageAttributes $file): Audio => new Audio([ Audio::ATTRIBUTE_BASENAME => File::basename($file->path()), Audio::ATTRIBUTE_FILENAME => File::name($file->path()), - Audio::ATTRIBUTE_MIMETYPE => MimeType::from($file->path()), + Audio::ATTRIBUTE_MIMETYPE => File::mimeType($file->path()), Audio::ATTRIBUTE_PATH => $file->path(), Audio::ATTRIBUTE_SIZE => $file->offsetGet(StorageAttributes::ATTRIBUTE_FILE_SIZE), ]); diff --git a/app/Repositories/Storage/Wiki/VideoRepository.php b/app/Repositories/Storage/Wiki/VideoRepository.php index 27443065d..6a451a65b 100644 --- a/app/Repositories/Storage/Wiki/VideoRepository.php +++ b/app/Repositories/Storage/Wiki/VideoRepository.php @@ -8,7 +8,6 @@ use App\Constants\Config\VideoConstants; use App\Models\Wiki\Video; use App\Repositories\Storage\StorageRepository; use Closure; -use Illuminate\Http\Testing\MimeType; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\File; use League\Flysystem\StorageAttributes; @@ -43,7 +42,7 @@ class VideoRepository extends StorageRepository return fn (StorageAttributes $file): Video => new Video([ Video::ATTRIBUTE_BASENAME => File::basename($file->path()), Video::ATTRIBUTE_FILENAME => File::name($file->path()), - Video::ATTRIBUTE_MIMETYPE => MimeType::from($file->path()), + Video::ATTRIBUTE_MIMETYPE => File::mimeType($file->path()), Video::ATTRIBUTE_PATH => $file->path(), Video::ATTRIBUTE_SIZE => $file->offsetGet(StorageAttributes::ATTRIBUTE_FILE_SIZE), ]); diff --git a/config/graphql.php b/config/graphql.php index 4c325d79e..00b589ce0 100644 --- a/config/graphql.php +++ b/config/graphql.php @@ -108,7 +108,7 @@ return [ * for details. Disabled by default. */ 'security' => [ - 'query_max_complexity' => 0, + 'query_max_complexity' => 0, // 250 in GraphQLServiceProvider 'query_max_depth' => 13, 'disable_introspection' => false, ], @@ -116,7 +116,7 @@ return [ // Custom array 'pagination_values' => [ 'default_count' => 15, - 'max_count' => 10, + 'max_count' => 100, 'relation' => [ 'default_count' => 1000000, 'max_count' => null,