- 기존 대시보드 WeatherService를 활용한 JSON API 추가 - React 날씨 위젯에서 /juil/construction-pmis/weather 호출 - 기상청 API 기반 오늘/내일 날씨, 기온, 강수확률 표시 - Blade weather-icon과 동일한 SVG 아이콘 React 컴포넌트 구현
57 lines
1.5 KiB
PHP
57 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Juil;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Services\WeatherService;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Response;
|
|
use Illuminate\View\View;
|
|
|
|
class PlanningController extends Controller
|
|
{
|
|
public function estimate(Request $request): View|Response
|
|
{
|
|
if ($request->header('HX-Request')) {
|
|
return response('', 200)->header('HX-Redirect', route('juil.estimate'));
|
|
}
|
|
|
|
return view('juil.estimate');
|
|
}
|
|
|
|
public function project(Request $request): View|Response
|
|
{
|
|
if ($request->header('HX-Request')) {
|
|
return response('', 200)->header('HX-Redirect', route('juil.project'));
|
|
}
|
|
|
|
return view('juil.project');
|
|
}
|
|
|
|
public function workflow(Request $request): View|Response
|
|
{
|
|
if ($request->header('HX-Request')) {
|
|
return response('', 200)->header('HX-Redirect', route('juil.workflow'));
|
|
}
|
|
|
|
return view('juil.workflow');
|
|
}
|
|
|
|
public function constructionPmis(Request $request): View|Response
|
|
{
|
|
if ($request->header('HX-Request')) {
|
|
return response('', 200)->header('HX-Redirect', route('juil.construction-pmis'));
|
|
}
|
|
|
|
return view('juil.construction-pmis');
|
|
}
|
|
|
|
public function pmisWeather(WeatherService $weatherService): JsonResponse
|
|
{
|
|
$forecasts = $weatherService->getWeeklyForecast();
|
|
|
|
return response()->json(['forecasts' => array_slice($forecasts, 0, 2)]);
|
|
}
|
|
}
|