InfluxOW/laravel_ddd_ecommerce

View on GitHub
app/Domains/Catalog/Http/Middleware/SetDefaultCurrency.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace App\Domains\Catalog\Http\Middleware;

use App\Components\Queryable\Enums\QueryKey;
use App\Domains\Catalog\Enums\Query\Filter\ProductAllowedFilter;
use App\Domains\Catalog\Models\Settings\CatalogSettings;
use Closure;
use Illuminate\Http\Request;

final class SetDefaultCurrency
{
    public function handle(Request $request, Closure $next): mixed
    {
        /**
         * @var array $filters
         */
        $filters = $request->offsetGet(QueryKey::FILTER->value) ?? [];

        $request->offsetSet(QueryKey::FILTER->value, array_merge([
            ProductAllowedFilter::CURRENCY->name => app(CatalogSettings::class)->default_currency,
        ], $filters));

        return $next($request);
    }
}