Wire admin studio SSR and search infrastructure
This commit is contained in:
@@ -6,6 +6,7 @@ namespace App\Services\Artworks;
|
||||
|
||||
use App\Models\ActivityEvent;
|
||||
use App\Models\Artwork;
|
||||
use App\Jobs\IndexArtworkJob;
|
||||
use App\Services\Activity\UserActivityService;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
@@ -131,15 +132,28 @@ class ArtworkPublicationService
|
||||
|
||||
private function syncSearch(Artwork $artwork): void
|
||||
{
|
||||
if (! method_exists($artwork, 'searchable')) {
|
||||
$artworkId = (int) $artwork->id;
|
||||
|
||||
$sync = function () use ($artworkId): void {
|
||||
try {
|
||||
IndexArtworkJob::dispatchSync($artworkId);
|
||||
} catch (\Throwable $exception) {
|
||||
Log::error('ArtworkPublicationService immediate Meilisearch sync failed; queueing fallback job.', [
|
||||
'artwork_id' => $artworkId,
|
||||
'error' => $exception->getMessage(),
|
||||
]);
|
||||
|
||||
IndexArtworkJob::dispatch($artworkId);
|
||||
}
|
||||
};
|
||||
|
||||
if (DB::transactionLevel() > 0) {
|
||||
DB::afterCommit($sync);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
$artwork->searchable();
|
||||
} catch (\Throwable $e) {
|
||||
Log::warning("PublishScheduled: scout reindex failed for #{$artwork->id}: {$e->getMessage()}");
|
||||
}
|
||||
$sync();
|
||||
}
|
||||
|
||||
private function recordActivity(Artwork $artwork): void
|
||||
|
||||
Reference in New Issue
Block a user