<?php
session_start();
header('Content-Type: application/json');
require_once '../DB/db_credentials.php';
require_once '../DB/db_connection.php';
// not logged in
if (!isset($_SESSION['userID'])) {
http_response_code(401); // Unauthorized
echo json_encode(['status' => 'error', 'message' => 'Not logged in.']);
exit;
}
$userID = $_SESSION['userID'];
$fk_shift = $_POST['fk_shift'] ?? null;
// missing shift ID
if (!$fk_shift) {
http_response_code(400); // Bad Request
echo json_encode(['status' => 'error', 'message' => 'Missing shift ID.']);
exit;
}
// already registered
$checkQuery = "SELECT * FROM citeLeParis_register WHERE fk_person = ? AND fk_shift = ?";
$checkStmt = mysqli_prepare($dbc, $checkQuery);
mysqli_stmt_bind_param($checkStmt, 'ii', $userID, $fk_shift);
mysqli_stmt_execute($checkStmt);
$checkResult = mysqli_stmt_get_result($checkStmt);
if (mysqli_num_rows($checkResult) > 0) {
http_response_code(409); // Conflict
echo json_encode(['status' => 'error', 'message' => 'Already registered for this shift.']);
exit;
}
$insertQuery = "INSERT INTO citeLeParis_register (fk_person, fk_shift, fk_answer) VALUES (?, ?, NULL)";
$insertStmt = mysqli_prepare($dbc, $insertQuery);
mysqli_stmt_bind_param($insertStmt, 'ii', $userID, $fk_shift);
if (mysqli_stmt_execute($insertStmt)) {
http_response_code(201); // Created
echo json_encode(['status' => 'success']);
} else {
http_response_code(500); // Internal Server Error
echo json_encode(['status' => 'error', 'message' => mysqli_error($dbc)]);
}
?>