Files
jordan_bot/backend/api/rides.php
2026-05-14 19:55:22 +03:00

80 lines
2.6 KiB
PHP

<?php
// backend/api/rides.php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type, Authorization');
require_once '../config/db.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['success' => false, 'message' => 'Method Not Allowed']);
exit;
}
$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, true);
if (!$input) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Invalid JSON input']);
exit;
}
$platformInput = $input['platform'] ?? 'Unknown';
// Map package names to ENUM values
$platformMap = [
'com.ubercab.driver' => 'Uber',
'com.careem.adma' => 'Careem',
'me.jeeny.driver' => 'Jeeny',
'com.petraride.driver' => 'Petra Ride',
'com.taxif.driver' => 'TaxiF'
];
$platform = $platformMap[$platformInput] ?? ($platformInput ?: 'Unknown');
// Ensure the platform matches one of the ENUM values
$allowedPlatforms = ['Uber', 'Careem', 'Jeeny', 'Petra Ride', 'TaxiF', 'Unknown'];
if (!in_array($platform, $allowedPlatforms)) {
$platform = 'Unknown';
}
$price = $input['price'] ?? 0.0;
$pickupDistance = $input['pickupDistance'] ?? 'Unknown';
$dropoffDistance = $input['dropoffDistance'] ?? 'Unknown';
$timeToPickup = $input['timeToPickup'] ?? 'Unknown';
$isAccepted = isset($input['isAccepted']) ? (int)$input['isAccepted'] : 0;
$rawText = $input['rawText'] ?? '';
$fingerprint = $input['fingerprint'] ?? 'UNKNOWN_DEVICE';
try {
$sql = "INSERT INTO rides (fingerprint, platform, price, pickup_distance, dropoff_distance, time_to_pickup, is_accepted, raw_text, created_at)
VALUES (:fingerprint, :platform, :price, :pickup_distance, :dropoff_distance, :time_to_pickup, :is_accepted, :raw_text, NOW())";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':fingerprint' => $fingerprint,
':platform' => $platform,
':price' => $price,
':pickup_distance' => $pickupDistance,
':dropoff_distance' => $dropoffDistance,
':time_to_pickup' => $timeToPickup,
':is_accepted' => $isAccepted,
':raw_text' => $rawText
]);
http_response_code(201);
echo json_encode([
'success' => true,
'message' => 'Ride record created successfully',
'ride_id' => $pdo->lastInsertId()
]);
} catch (PDOException $e) {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Database error: ' . $e->getMessage()]);
}
?>