query("INSERT INTO possible_duplicates (file1,file2) VALUES ('$file1', '$file2');"); response(200, "Duplicate pair successfully written to database."); } catch (PDOException $e) { response(999, "Database Error: " . $e->getMessage()); die(); } } else { response(907, "Error: Duplicate pair already exists in database!"); } } else { response(901, "Error: You have to provide file1 and file2 as possible duplicates!"); } } else if (isset($_GET['getDuplicates'])) { $data = json_decode(file_get_contents('php://input'), true); $amount = trim($data['amount'] ?? ''); if ($amount != "") { if (ctype_digit($amount)) { try { $res = $db->query("SELECT * FROM possible_duplicates WHERE id NOT IN (SELECT pd_id FROM no_duplicates) LIMIT $amount;")->fetchAll(PDO::FETCH_ASSOC); response(200, "Database query successful.", $res); } catch (PDOException $e) { response(999, "Database Error: " . $e->getMessage()); die(); } } else { response(905, "Error: Variable 'amount' has to be an integer value!"); } } else { response(904, "You have to provide 'amount' to tell how much possible duplicates you want to recieve!"); } } else if (isset($_GET['noDuplicate'])) { $data = json_decode(file_get_contents('php://input'), true); $duplicateId = trim($data['duplicateId'] ?? ''); if ($duplicateId != "") { if (ctype_digit($duplicateId)) { try { $st = $db->prepare("INSERT INTO no_duplicates (pd_id) SELECT id FROM possible_duplicates WHERE id = ?;"); $st->execute(array($duplicateId)); if ($st->rowCount()) { response(200, "Pair successfully marked as non-duplicate."); } else { response(940, "Error: duplicateId not found in database or pair already marked as non-duplicate."); } } catch (PDOException $e) { response(999, "Database Error: " . $e->getMessage()); die(); } } else { response(906, "Error: Variable 'duplicateId' has to be an integer value!"); } } else { response(902, "Error: You have to provide 'duplicateId' to mark a file pair as non-duplicate!"); } } else if (isset($_GET['undoDuplicate'])) { $data = json_decode(file_get_contents('php://input'), true); $duplicateId = trim($data['duplicateId'] ?? ''); if ($duplicateId != "") { if (ctype_digit($duplicateId)) { try { $st = $db->prepare("DELETE FROM no_duplicates WHERE pd_id = ?;"); $st->execute(array($duplicateId)); if ($st->rowCount()) { response(200, "Removed successfully the mark as non-duplicate."); } else { response(940, "Error: duplicateId not found in database or pair is not marked as non-duplicate."); } } catch (PDOException $e) { response(999, "Database Error: " . $e->getMessage()); die(); } } else { response(906, "Error: Variable 'duplicateId' has to be an integer value!"); } } else { response(902, "Error: You have to provide 'duplicateId' to mark a file pair as non-duplicate!"); } } else if(isset($_GET['isDuplicate'])) { $data = json_decode(file_get_contents('php://input'), true); $duplicateId = trim($data['duplicateId'] ?? ''); if ($duplicateId != "") { if (ctype_digit($duplicateId)) { try { $st = $db->prepare("DELETE FROM possible_duplicates WHERE id = ?;"); $st->execute(array($duplicateId)); if ($st->rowCount()) { response(200, "Duplicate pair successfully removed from database."); } else { response(940, "Error: duplicateId not found in database."); } } catch (PDOException $e) { response(999, "Database Error: " . $e->getMessage()); die(); } } else { response(906, "Error: Variable 'duplicateId' has to be an integer value!"); } } else { response(903, "Error: You have to provide 'duplicateId' to mark a file pair as duplicate!"); } } else if(isset($_GET['totalDuplicates'])) { try { $res = $db->query("SELECT COUNT(id) AS totalDuplicates FROM possible_duplicates WHERE id NOT IN (SELECT pd_id FROM no_duplicates);")->fetchColumn(0); response(200, "Database query successful.", NULL, $res); } catch (PDOException $e) { response(999, "Database Error: " . $e->getMessage()); die(); } } else if(isset($_GET['test'])) { try { $res = $db->query("select 'MySQL is working.' as Display;"); response(200, "API is working properly.", NULL, NULL); } catch (PDOException $e) { response(999, "Database Error: " . $e->getMessage()); die(); } } else { response(400, "Error: Invalid Request"); } function response ($response_code, $response_desc, $payload=NULL, $totalDuplicates=NULL) { $response['response_code'] = $response_code; $response['response_desc'] = $response_desc; $response['payload'] = $payload; $response['totalDuplicates'] = $totalDuplicates; $json_response = json_encode($response); echo $json_response; } function pairExists($file1, $file2) { try { global $db; $rows = $db->query("SELECT COUNT(id) FROM possible_duplicates WHERE (file1 LIKE '$file1' AND file2 LIKE '$file2') OR (file1 LIKE '$file2' AND file2 LIKE '$file1');")->fetchColumn(); if ($rows > 0) { return true; } else { return false; } } catch (PDOException $e) { response(999, "Database Error: " . $e->getMessage()); die(); } } ?>