false, "title" => "Missing parameters" ]; echo json_encode($response); exit; } $apiKey = $_REQUEST['api_key']; // Get user from API key $sql = "SELECT * FROM user WHERE api_key = :apiKey"; $stmt = $db->prepare($sql); $stmt->bindValue(':apiKey', $apiKey); $result = $stmt->execute(); $user = $result->fetchArray(SQLITE3_ASSOC); // If the user is not found, return an error if (!$user) { $response = [ "success" => false, "title" => "Invalid API key" ]; echo json_encode($response); exit; } $userId = $user['id']; $sql = "SELECT * FROM payment_methods WHERE user_id = :userId"; $stmt = $db->prepare($sql); $stmt->bindValue(':userId', $userId); $result = $stmt->execute(); $payment_methods = []; while ($row = $result->fetchArray(SQLITE3_ASSOC)) { $payment_methods[] = $row; } foreach ($payment_methods as $key => $value) { unset($payment_methods[$key]['user_id']); // Check if is used in any subscriptions $sql = "SELECT * FROM subscriptions WHERE user_id = :userId AND payment_method_id = :paymentMethodId"; $stmt = $db->prepare($sql); $stmt->bindValue(':userId', $userId); $stmt->bindValue(':paymentMethodId', $payment_methods[$key]['id']); $result = $stmt->execute(); $subscription = $result->fetchArray(SQLITE3_ASSOC); if ($subscription) { $payment_methods[$key]['in_use'] = true; } else { $payment_methods[$key]['in_use'] = false; } } $response = [ "success" => true, "title" => "payment_methods", "payment_methods" => $payment_methods, "notes" => [] ]; echo json_encode($response); $db->close(); } else { $response = [ "success" => false, "title" => "Invalid request method" ]; echo json_encode($response); exit; } ?>