From 867cbc757c46cabd4b0f08a90133f70f5a250e35 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 2 May 2023 23:31:16 -0600 Subject: [PATCH] Update StatusTagsPipeline, deduplicate hashtags on postgres --- .../StatusPipeline/StatusTagsPipeline.php | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/app/Jobs/StatusPipeline/StatusTagsPipeline.php b/app/Jobs/StatusPipeline/StatusTagsPipeline.php index 1f7969555..a72e6d50e 100644 --- a/app/Jobs/StatusPipeline/StatusTagsPipeline.php +++ b/app/Jobs/StatusPipeline/StatusTagsPipeline.php @@ -71,11 +71,24 @@ class StatusTagsPipeline implements ShouldQueue } } - $hashtag = Hashtag::firstOrCreate([ - 'slug' => str_slug($name) - ], [ - 'name' => $name - ]); + if(config('database.default') === 'pgsql') { + $hashtag = Hashtag::where('name', 'ilike', $name) + ->orWhere('slug', 'ilike', str_slug($name)) + ->first(); + + if(!$hashtag) { + $hashtag = new Hashtag; + $hashtag->name = $name; + $hashtag->slug = str_slug($name); + $hashtag->save(); + } + } else { + $hashtag = Hashtag::firstOrCreate([ + 'slug' => str_slug($name) + ], [ + 'name' => $name + ]); + } StatusHashtag::firstOrCreate([ 'status_id' => $status->id,