Files
2026-04-01 10:30:52 +09:00

68 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers\Api\Admin;
use App\Http\Controllers\Api\Base\AdminBaseController;
use App\Http\Requests\Extension\ChangelogRequest;
use App\Services\CoreUpdateService;
use Illuminate\Http\JsonResponse;
class CoreUpdateController extends AdminBaseController
{
/**
* CoreUpdateController 생성자.
*
* @param CoreUpdateService $coreUpdateService 코어 업데이트 서비스
*/
public function __construct(private CoreUpdateService $coreUpdateService)
{
parent::__construct();
}
/**
* 코어 업데이트 가능 여부를 확인합니다.
*
* @return JsonResponse
*/
public function checkForUpdates(): JsonResponse
{
$result = $this->coreUpdateService->checkForUpdates();
if (! empty($result['check_failed'])) {
return $this->error(
'settings.core_update.check_failed',
422,
[
'reason' => $result['error'] ?? '',
'current_version' => $result['current_version'],
'github_url' => $result['github_url'],
]
);
}
return $this->success(
'settings.core_update.check_success',
$result
);
}
/**
* 코어 변경사항을 조회합니다.
*
* @param ChangelogRequest $request 검증된 요청
* @return JsonResponse
*/
public function changelog(ChangelogRequest $request): JsonResponse
{
$changelog = $this->coreUpdateService->getChangelog(
$request->validated('from_version'),
$request->validated('to_version')
);
return $this->success(
'settings.fetch_success',
['changelog' => $changelog]
);
}
}