File "declaration.php"
Full path: /home2/santhos2/public_html/bharath-coe.firstmatrix.in.net/api/qp_setter/declaration.php
File size: 3.31 KiB (3392 bytes)
MIME-type: text/x-php
Charset: utf-8
<?php
require_once '../../config/config.php';
if (session_status() !== PHP_SESSION_ACTIVE) { session_start(); }
header('Content-Type: application/json');
try {
// Check for URL parameters first, then fall back to session
$staffId = (int)($_GET['staff_id'] ?? $_SESSION['qps_staff_id'] ?? 0);
$assignmentId = (int)($_GET['assignment_id'] ?? $_SESSION['qps_assignment_id'] ?? 0);
if (!$staffId || !$assignmentId) { http_response_code(401); echo json_encode(['status'=>'error','message'=>'Unauthorized']); exit; }
// Ensure table exists
$pdo->exec("CREATE TABLE IF NOT EXISTS qp_setter_declarations (
id INT AUTO_INCREMENT PRIMARY KEY,
assignment_id INT NOT NULL,
staff_id INT NOT NULL,
answers_json TEXT NULL,
decl_name VARCHAR(255) NULL,
decl_course VARCHAR(255) NULL,
decl_date DATE NULL,
decl_signature VARCHAR(255) NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uq_decl (assignment_id, staff_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$st = $pdo->prepare('SELECT answers_json, decl_name, decl_course, decl_date, decl_signature FROM qp_setter_declarations WHERE assignment_id = ? AND staff_id = ?');
$st->execute([$assignmentId, $staffId]);
$row = $st->fetch(PDO::FETCH_ASSOC);
if ($row) {
// Set session flag that declaration is completed (if loading existing data)
$_SESSION['declaration_completed'] = true;
$data = [
'answers' => json_decode($row['answers_json'] ?? '[]', true),
'name' => $row['decl_name'] ?? '',
'course' => $row['decl_course'] ?? '',
'date' => $row['decl_date'] ?? '',
'signature' => $row['decl_signature'] ?? ''
];
echo json_encode(['status'=>'success','data'=>$data]);
} else {
echo json_encode(['status'=>'success','data'=>null]);
}
exit;
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$input = json_decode(file_get_contents('php://input'), true) ?: [];
$answers = $input['answers'] ?? [];
$name = trim((string)($input['name'] ?? ''));
$course = trim((string)($input['course'] ?? ''));
$date = trim((string)($input['date'] ?? ''));
$signature = trim((string)($input['signature'] ?? ''));
$json = json_encode($answers, JSON_UNESCAPED_UNICODE);
$st = $pdo->prepare('INSERT INTO qp_setter_declarations (assignment_id, staff_id, answers_json, decl_name, decl_course, decl_date, decl_signature) VALUES (?,?,?,?,?,?,?)
ON DUPLICATE KEY UPDATE answers_json=VALUES(answers_json), decl_name=VALUES(decl_name), decl_course=VALUES(decl_course), decl_date=VALUES(decl_date), decl_signature=VALUES(decl_signature)');
$st->execute([$assignmentId, $staffId, $json, $name, $course, $date, $signature]);
// Set session flag that declaration is completed
$_SESSION['declaration_completed'] = true;
echo json_encode(['status'=>'success','message'=>'Declaration saved']);
exit;
}
http_response_code(405); echo json_encode(['status'=>'error','message'=>'Method not allowed']);
} catch (Throwable $e) {
http_response_code(500);
echo json_encode(['status'=>'error','message'=>$e->getMessage()]);
}
?>