mirror of
https://github.com/AnimeThemes/animethemes-server.git
synced 2026-07-11 01:24:46 +02:00
refactor: general code improvement (#1006)
This commit is contained in:
@@ -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<string, mixed> $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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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<int, Video> $videos
|
||||
* @param array<string, mixed> $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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,9 +60,6 @@ class OptimizeImageAction
|
||||
return new ActionResult(ActionStatus::PASSED);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function convertImage(): ?string
|
||||
{
|
||||
try {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -34,6 +34,10 @@ abstract class StorageBulkAction extends BaseBulkAction
|
||||
$action->then($storageResults);
|
||||
|
||||
$actionResult = $storageResults->toActionResult();
|
||||
|
||||
if ($actionResult->hasFailed()) {
|
||||
$this->failedLog($actionResult->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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),
|
||||
]);
|
||||
|
||||
@@ -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),
|
||||
]);
|
||||
|
||||
+2
-2
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user