143 lines
4.4 KiB
PHP
143 lines
4.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* class Platform
|
|
*
|
|
* Handles platform management in the database, including retrieving, adding, editing, and deleting platforms.
|
|
*/
|
|
class Platform {
|
|
/**
|
|
* @var PDO|null $db The database connection instance.
|
|
*/
|
|
private $db;
|
|
|
|
/**
|
|
* Platform constructor.
|
|
* Initializes the database connection.
|
|
*
|
|
* @param object $database The database object to initialize the connection.
|
|
*/
|
|
public function __construct($database) {
|
|
$this->db = $database->getConnection();
|
|
}
|
|
|
|
|
|
/**
|
|
* Retrieve details of a specific platform or all platforms.
|
|
*
|
|
* @param string $platform_id The ID of the platform to retrieve details for (optional).
|
|
*
|
|
* @return array An associative array containing platform details.
|
|
*/
|
|
public function getPlatformDetails($platform_id = '') {
|
|
$sql = 'SELECT * FROM platforms';
|
|
if ($platform_id !== '') {
|
|
$sql .= ' WHERE id = :platform_id';
|
|
$query = $this->db->prepare($sql);
|
|
$query->bindParam(':platform_id', $platform_id);
|
|
} else {
|
|
$query = $this->db->prepare($sql);
|
|
}
|
|
|
|
$query->execute();
|
|
|
|
return $query->fetchAll(PDO::FETCH_ASSOC);
|
|
}
|
|
|
|
|
|
/**
|
|
* Add a new platform to the database.
|
|
*
|
|
* @param array $newPlatform An associative array containing the details of the new platform:
|
|
* - `name` (string): The name of the platform.
|
|
* - `jitsi_url` (string): The URL for the Jitsi integration.
|
|
* - `jilo_database` (string): The database name for Jilo integration.
|
|
*
|
|
* @return bool|string True if the platform was added successfully, or an error message on failure.
|
|
*/
|
|
public function addPlatform($newPlatform) {
|
|
try {
|
|
$sql = 'INSERT INTO platforms
|
|
(name, jitsi_url, jilo_database)
|
|
VALUES
|
|
(:name, :jitsi_url, :jilo_database)';
|
|
|
|
$query = $this->db->prepare($sql);
|
|
$query->execute([
|
|
':name' => $newPlatform['name'],
|
|
':jitsi_url' => $newPlatform['jitsi_url'],
|
|
':jilo_database' => $newPlatform['jilo_database'],
|
|
]);
|
|
|
|
return true;
|
|
|
|
} catch (Exception $e) {
|
|
return $e->getMessage();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Edit an existing platform in the database.
|
|
*
|
|
* @param int $platform_id The ID of the platform to update.
|
|
* @param array $updatedPlatform An associative array containing the updated platform details:
|
|
* - `name` (string): The updated name of the platform.
|
|
* - `jitsi_url` (string): The updated Jitsi URL.
|
|
* - `jilo_database` (string): The updated Jilo database name.
|
|
*
|
|
* @return bool|string True if the platform was updated successfully, or an error message on failure.
|
|
*/
|
|
public function editPlatform($platform_id, $updatedPlatform) {
|
|
try {
|
|
$sql = 'UPDATE platforms SET
|
|
name = :name,
|
|
jitsi_url = :jitsi_url,
|
|
jilo_database = :jilo_database
|
|
WHERE
|
|
id = :platform_id';
|
|
|
|
$query = $this->db->prepare($sql);
|
|
$query->execute([
|
|
':name' => $updatedPlatform['name'],
|
|
':jitsi_url' => $updatedPlatform['jitsi_url'],
|
|
':jilo_database' => $updatedPlatform['jilo_database'],
|
|
':platform_id' => $platform_id,
|
|
]);
|
|
|
|
return true;
|
|
|
|
} catch (Exception $e) {
|
|
return $e->getMessage();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Delete a platform from the database.
|
|
*
|
|
* @param int $platform_id The ID of the platform to delete.
|
|
*
|
|
* @return bool|string True if the platform was deleted successfully, or an error message on failure.
|
|
*/
|
|
public function deletePlatform($platform_id) {
|
|
try {
|
|
$sql = 'DELETE FROM platforms
|
|
WHERE
|
|
id = :platform_id';
|
|
|
|
$query = $this->db->prepare($sql);
|
|
$query->bindParam(':platform_id', $platform_id);
|
|
|
|
$query->execute();
|
|
return true;
|
|
|
|
} catch (Exception $e) {
|
|
return $e->getMessage();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
?>
|