Compare commits

..

3 Commits

Author SHA1 Message Date
Yasen Pramatarov 06bf414f41 Adds phpdoc comments 2024-11-26 16:22:27 +02:00
Yasen Pramatarov 4b4a9603b9 Clears extra spaces 2024-11-26 16:17:41 +02:00
Yasen Pramatarov 396b449bf2 Adds phpdoc comments 2024-11-26 16:16:16 +02:00
4 changed files with 63 additions and 11 deletions

View File

@ -1,13 +1,32 @@
<?php <?php
/**
* Class Platform
*
* Handles platform management in the database, including retrieving, adding, editing, and deleting platforms.
*/
class Platform { class Platform {
/**
* @var PDO|null $db The database connection instance.
*/
private $db; private $db;
/**
* Platform constructor.
*
* @param Database $database The database connection object.
*/
public function __construct($database) { public function __construct($database) {
$this->db = $database->getConnection(); $this->db = $database->getConnection();
} }
// get details of a specified platform ID (or all) /**
* 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 = '') { public function getPlatformDetails($platform_id = '') {
$sql = 'SELECT * FROM platforms'; $sql = 'SELECT * FROM platforms';
if ($platform_id !== '') { if ($platform_id !== '') {
@ -23,7 +42,16 @@ class Platform {
return $query->fetchAll(PDO::FETCH_ASSOC); return $query->fetchAll(PDO::FETCH_ASSOC);
} }
// add new platform /**
* 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) { public function addPlatform($newPlatform) {
try { try {
$sql = 'INSERT INTO platforms $sql = 'INSERT INTO platforms
@ -45,7 +73,17 @@ class Platform {
} }
} }
// edit an existing platform /**
* 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) { public function editPlatform($platform_id, $updatedPlatform) {
try { try {
$sql = 'UPDATE platforms SET $sql = 'UPDATE platforms SET
@ -70,7 +108,13 @@ class Platform {
} }
} }
// delete a platform /**
* 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) { public function deletePlatform($platform_id) {
try { try {
$sql = 'DELETE FROM platforms $sql = 'DELETE FROM platforms

View File

@ -1,17 +1,24 @@
<?php <?php
// Jilo components status checks /**
// * Jilo Components Status Checks
*
* This page ("status") checks the status of various Jilo platform components
* by fetching data from agents and determining their availability.
* It generates output for each platform and agent.
*/
require '../app/classes/agent.php'; require '../app/classes/agent.php';
$agentObject = new Agent($dbWeb); $agentObject = new Agent($dbWeb);
include '../app/templates/status-server.php'; include '../app/templates/status-server.php';
// loop through all platforms to check their agents
foreach ($platformsAll as $platform) { foreach ($platformsAll as $platform) {
include '../app/templates/status-platform.php'; include '../app/templates/status-platform.php';
// fetch agent details for the current platform
$agentDetails = $agentObject->getAgentDetails($platform['id']); $agentDetails = $agentObject->getAgentDetails($platform['id']);
foreach ($agentDetails as $agent) { foreach ($agentDetails as $agent) {
$agent_url = parse_url($agent['url']); $agent_url = parse_url($agent['url']);
@ -23,6 +30,7 @@ foreach ($platformsAll as $platform) {
$agent_response = $agentObject->fetchAgent($agent['id'], true); $agent_response = $agentObject->fetchAgent($agent['id'], true);
$agent_data = json_decode($agent_response); $agent_data = json_decode($agent_response);
// determine agent availability based on response data
if (json_last_error() === JSON_ERROR_NONE) { if (json_last_error() === JSON_ERROR_NONE) {
$agent_availability = '<span class="text-warning">unknown</span>'; $agent_availability = '<span class="text-warning">unknown</span>';
foreach ($agent_data as $key => $value) { foreach ($agent_data as $key => $value) {