cfmgrv4 add-webhook..1

This commit is contained in:
최준흠 2025-02-13 16:45:08 +09:00
parent 0865382eb6
commit c650737faa
2 changed files with 49 additions and 0 deletions

View File

@ -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');

View File

@ -0,0 +1,46 @@
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
class WebhookController extends CommonController
{
public function cloudflare()
{
// POST 데이터 받기
$jsonData = $this->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'
]);
}
}