diff --git a/backend/app/Http/Controllers/Api/PressRelease/ViewController.php b/backend/app/Http/Controllers/Web/PressRelease/RedirectController.php similarity index 50% rename from backend/app/Http/Controllers/Api/PressRelease/ViewController.php rename to backend/app/Http/Controllers/Web/PressRelease/RedirectController.php index 9a32a7c..3bc87cc 100644 --- a/backend/app/Http/Controllers/Api/PressRelease/ViewController.php +++ b/backend/app/Http/Controllers/Web/PressRelease/RedirectController.php @@ -1,6 +1,6 @@ get("company_id"); - $release_id = $request->get("release_id"); - - $press_release = FindByIdsAction::run(company_id: $company_id, release_id: $release_id); + $press_release = FindByIdsAction::run(company_id: (int) $company_id, release_id: (int) $release_id); if (!$press_release) - throw new HttpJsonResponseException( - 400, - "notfound", - "PressRelease Not Found", - compact("company_id", "release_id") - ); + abort(404); /* @var Keyword $keyword */ - foreach ($press_release->keywords() as $keyword) { + foreach ($press_release->keywords()->get() as $keyword) { ViewHistoryUpdateOrCreateAction::run($user_id, $keyword->id); } - return response()->json(["result" => "ok"]); + $company_id_str = str_pad($company_id, 9, 0, STR_PAD_LEFT); + $release_id_str = str_pad($release_id, 9, 0, STR_PAD_LEFT); + return response()->redirectTo("https://prtimes.jp/main/html/rd/p/$release_id_str.$company_id_str.html"); } } diff --git a/backend/routes/api.php b/backend/routes/api.php index 4be70b9..6070154 100644 --- a/backend/routes/api.php +++ b/backend/routes/api.php @@ -12,7 +12,6 @@ Route::middleware("auth:sanctum")->group(function () { - Route::post("/press-release/view", PressRelease\ViewController::class); Route::get("/press-release/recommend", PressRelease\RecommendController::class); Route::get("/company/list", Company\ListController::class); diff --git a/backend/routes/web.php b/backend/routes/web.php index 6ff812e..fdf9a6f 100644 --- a/backend/routes/web.php +++ b/backend/routes/web.php @@ -4,3 +4,7 @@ use Illuminate\Support\Facades\Route; +Route::middleware("auth")->group(function () { + + Route::get("/press-release/redirect/{company_id}/{release_id}", PressRelease\RedirectController::class)->name("press-release.redirect"); +}); \ No newline at end of file