56 lines
2.2 KiB
PHP
56 lines
2.2 KiB
PHP
<?php
|
|
require_once __DIR__ . '/config.php';
|
|
|
|
check_api_key();
|
|
|
|
$request_method = $_SERVER['REQUEST_METHOD'];
|
|
|
|
if ($request_method === 'POST') {
|
|
$data = json_decode(file_get_contents('php://input'), true);
|
|
|
|
// Basic validation
|
|
if (empty($data['platform_source']) || empty($data['star_rating'])) {
|
|
log_and_exit(400, "Missing required fields: platform_source and star_rating are required.");
|
|
}
|
|
|
|
try {
|
|
$pdo = db();
|
|
$stmt = $pdo->prepare("
|
|
INSERT INTO reviews (
|
|
external_review_id, platform_source, star_rating, review_text, reviewer_name,
|
|
review_date, review_url, sentiment_score, was_ai_booked, is_negative_alert,
|
|
response_needed, response_sent, response_text
|
|
) VALUES (
|
|
:external_review_id, :platform_source, :star_rating, :review_text, :reviewer_name,
|
|
:review_date, :review_url, :sentiment_score, :was_ai_booked, :is_negative_alert,
|
|
:response_needed, :response_sent, :response_text
|
|
)
|
|
");
|
|
|
|
$stmt->execute([
|
|
':external_review_id' => $data['external_review_id'] ?? null,
|
|
':platform_source' => $data['platform_source'],
|
|
':star_rating' => $data['star_rating'],
|
|
':review_text' => $data['review_text'] ?? null,
|
|
':reviewer_name' => $data['reviewer_name'] ?? null,
|
|
':review_date' => $data['review_date'] ?? null,
|
|
':review_url' => $data['review_url'] ?? null,
|
|
':sentiment_score' => $data['sentiment_score'] ?? null,
|
|
':was_ai_booked' => $data['was_ai_booked'] ?? 0,
|
|
':is_negative_alert' => ($data['star_rating'] <= 2) ? 1 : 0,
|
|
':response_needed' => $data['response_needed'] ?? 0,
|
|
':response_sent' => $data['response_sent'] ?? 0,
|
|
':response_text' => $data['response_text'] ?? null,
|
|
]);
|
|
|
|
header('Content-Type: application/json');
|
|
echo json_encode(['success' => true, 'message' => 'Review logged successfully.', 'id' => $pdo->lastInsertId()]);
|
|
|
|
} catch (PDOException $e) {
|
|
log_and_exit(500, "Database error: " . $e->getMessage());
|
|
}
|
|
|
|
} else {
|
|
log_and_exit(405, "Method Not Allowed");
|
|
}
|