- make deals reachable - add recent search feature - add animation in profile menu - refactor blade markup of explore page
31 lines
882 B
PHP
31 lines
882 B
PHP
<?php
|
|
|
|
namespace App\Actions;
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
final readonly class AddRecentSearchAction
|
|
{
|
|
public function execute(User $user, array $data): void
|
|
{
|
|
try {
|
|
DB::transaction(function () use ($user, $data) {
|
|
$user->recentSearches()->updateOrcreate($data);
|
|
$recentSearchCount = $user->recentSearches()->count();
|
|
if ($recentSearchCount > 5) {
|
|
$user->recentSearches()->oldest()->limit(1)->delete();
|
|
}
|
|
});
|
|
} catch (\Throwable $e) {
|
|
Log::error('Error adding recent search',
|
|
[
|
|
'user_id' => $user->id,
|
|
'error' => $e->getMessage(),
|
|
'trace' => $e->getTrace(),
|
|
]);
|
|
}
|
|
}
|
|
}
|