From 190415bc730735c2760cd8d59d2af1cc5e3bd60a Mon Sep 17 00:00:00 2001 From: Chuck Adams Date: Sat, 15 Feb 2025 08:19:37 -0700 Subject: [PATCH] fix: format of last_updated, wp is picky (#165) --- app/Http/Resources/Plugins/PluginResource.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/Http/Resources/Plugins/PluginResource.php b/app/Http/Resources/Plugins/PluginResource.php index dae33ea..d9d217c 100644 --- a/app/Http/Resources/Plugins/PluginResource.php +++ b/app/Http/Resources/Plugins/PluginResource.php @@ -3,11 +3,12 @@ namespace App\Http\Resources\Plugins; use App\Models\WpOrg\Plugin; +use DateTimeInterface; use Illuminate\Http\Request; class PluginResource extends BasePluginResource { - public const LAST_UPDATED_DATE_FORMAT = 'Y-m-d H:ia T'; // .org's goofy format: "2024-09-27 9:53pm GMT" + public const LAST_UPDATED_DATE_FORMAT = 'Y-m-d h:ia T'; // .org's goofy format: "2024-09-27 9:53pm GMT" /** * Transform the resource into an array. @@ -28,7 +29,7 @@ public function toArray(Request $request): array 'support_threads' => $plugin->support_threads, 'support_threads_resolved' => $plugin->support_threads_resolved, 'active_installs' => $plugin->active_installs, - 'last_updated' => $plugin->last_updated?->format(self::LAST_UPDATED_DATE_FORMAT), + 'last_updated' => self::formatLastUpdated($plugin->last_updated), 'added' => $plugin->added->format('Y-m-d'), 'homepage' => $plugin->homepage, 'tags' => $plugin->tagsArray(), @@ -59,4 +60,14 @@ public function toArray(Request $request): array default => $data, }; } + + private static function formatLastUpdated(?DateTimeInterface $lastUpdated): ?string + { + if ($lastUpdated === null) { + return null; + } + $out = $lastUpdated->format(self::LAST_UPDATED_DATE_FORMAT); + // Unfortunately this seems to render GMT as "GMT+0000" for some reason, so strip that out + return \Safe\preg_replace('/\+\d+$/', '', $out); + } }