From c650737faa9b9d517342e028866de09222edfde2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A4=80=ED=9D=A0?= Date: Thu, 13 Feb 2025 16:45:08 +0900 Subject: [PATCH] cfmgrv4 add-webhook..1 --- app/Config/Routes.php | 3 ++ app/Controllers/WebhookController.php | 46 +++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 app/Controllers/WebhookController.php diff --git a/app/Config/Routes.php b/app/Config/Routes.php index a8a5dc3..233cc6d 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -25,6 +25,9 @@ $routes->get('/', 'Home::index'); $routes->group('/RSSFeed', function ($routes) { $routes->get('getITWorld', 'RSSFeedController::getITWorld'); }); +$routes->group('/Webhook', function ($routes) { + $routes->post('Cloudflare', 'WebhookController::cludflare'); +}); $routes->group('/user', function ($routes) { $routes->get('login', 'UserController::login_form'); $routes->post('login', 'UserController::login'); diff --git a/app/Controllers/WebhookController.php b/app/Controllers/WebhookController.php new file mode 100644 index 0000000..f990d4a --- /dev/null +++ b/app/Controllers/WebhookController.php @@ -0,0 +1,46 @@ +request->getJSON(); + + if (empty($jsonData)) { + return $this->response->setStatusCode(400)->setJSON([ + 'status' => 'error', + 'message' => 'Invalid JSON data' + ]); + } + + // 현재 시간 추가 + $logData = [ + 'timestamp' => date('Y-m-d H:i:s'), + 'data' => $jsonData + ]; + + // 파일 경로 설정 + $filePath = WRITEPATH . 'webhook.txt'; + + // 데이터를 JSON 형식으로 변환하고 새 줄 문자 추가 + $logEntry = json_encode($logData, JSON_PRETTY_PRINT) . "\n---\n"; + + // 파일에 데이터 추가 + if (file_put_contents($filePath, $logEntry, FILE_APPEND) === false) { + return $this->response->setStatusCode(500)->setJSON([ + 'status' => 'error', + 'message' => 'Failed to write to file' + ]); + } + + return $this->response->setJSON([ + 'status' => 'success', + 'message' => 'Webhook data logged successfully' + ]); + } +}