35311-vm/update_referral_status.php
2025-10-30 00:12:08 +00:00

61 lines
1.9 KiB
PHP

<?php
session_start();
require_once 'db/config.php';
header('Content-Type: application/json');
// Check if user is a logged-in partner
if (!isset($_SESSION['user_id']) || $_SESSION['user_role'] !== 'partner') {
echo json_encode(['success' => false, 'message' => 'Unauthorized']);
exit;
}
// Check for POST request
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['success' => false, 'message' => 'Invalid request method.']);
exit;
}
// Get and validate input
$input = json_decode(file_get_contents('php://input'), true);
$referral_id = $input['referral_id'] ?? null;
$new_status = $input['status'] ?? null;
if (!$referral_id || !$new_status) {
echo json_encode(['success' => false, 'message' => 'Missing required parameters.']);
exit;
}
if (!in_array($new_status, ['Accepted', 'Rejected'])) {
echo json_encode(['success' => false, 'message' => 'Invalid status.']);
exit;
}
$pdo = db();
// Verify the partner owns this referral
$stmt = $pdo->prepare("SELECT r.id FROM referrals r JOIN partners p ON r.partner_id = p.id WHERE r.id = ? AND p.user_id = ?");
$stmt->execute([$referral_id, $_SESSION['user_id']]);
$referral = $stmt->fetch();
if (!$referral) {
echo json_encode(['success' => false, 'message' => 'Referral not found or you do not have permission to modify it.']);
exit;
}
// Update the referral status
try {
$update_stmt = $pdo->prepare("UPDATE referrals SET status = ? WHERE id = ?");
$update_stmt->execute([$new_status, $referral_id]);
if ($update_stmt->rowCount() > 0) {
echo json_encode(['success' => true, 'message' => 'Referral status updated successfully.']);
} else {
echo json_encode(['success' => false, 'message' => 'Failed to update status or status was already set.']);
}
} catch (PDOException $e) {
// Log error properly in a real application
echo json_encode(['success' => false, 'message' => 'Database error: ' . $e->getMessage()]);
}
?>