2024-09-04 22:06:38 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
class Agent {
|
|
|
|
private $db;
|
|
|
|
|
|
|
|
public function __construct($database) {
|
|
|
|
$this->db = $database->getConnection();
|
|
|
|
}
|
|
|
|
|
|
|
|
// get details of a specified agent ID (or all) in a specified platform ID
|
|
|
|
public function getAgentDetails($platform_id, $agent_id = '') {
|
|
|
|
$sql = 'SELECT * FROM jilo_agents
|
|
|
|
WHERE
|
|
|
|
platform_id = :platform_id';
|
|
|
|
if ($agent_id !== '') {
|
|
|
|
$sql .= ' AND id = :agent_id';
|
|
|
|
$query = $this->db->prepare($sql);
|
|
|
|
$query->execute([
|
|
|
|
':platform_id' => $platform_id,
|
|
|
|
':agent_id' => $agent_id,
|
|
|
|
]);
|
|
|
|
} else {
|
|
|
|
$query = $this->db->prepare($sql);
|
|
|
|
$query->bindParam(':platform_id', $platform_id);
|
|
|
|
}
|
|
|
|
|
|
|
|
$query->execute();
|
|
|
|
|
|
|
|
return $query->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
}
|
|
|
|
|
|
|
|
// add new agent
|
|
|
|
public function addAgent($platform_id, $newAgent) {
|
|
|
|
try {
|
|
|
|
$sql = 'INSERT INTO jilo_agents
|
2024-09-23 09:39:33 +00:00
|
|
|
(platform_id, agent_type_id, url, secret_key)
|
2024-09-04 22:06:38 +00:00
|
|
|
VALUES
|
2024-09-23 09:39:33 +00:00
|
|
|
(:platform_id, :agent_type_id, :url, :secret_key)';
|
2024-09-04 22:06:38 +00:00
|
|
|
|
|
|
|
$query = $this->db->prepare($sql);
|
|
|
|
$query->execute([
|
|
|
|
':platform_id' => $platform_id,
|
2024-09-23 09:39:33 +00:00
|
|
|
':agent_type_id' => $newAgent['type_id'],
|
2024-09-04 22:06:38 +00:00
|
|
|
':url' => $newAgent['url'],
|
|
|
|
':secret_key' => $newAgent['secret_key'],
|
|
|
|
]);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
return $e->getMessage();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// edit an existing agent
|
|
|
|
public function editAgent($platform_id, $updatedAgent) {
|
|
|
|
try {
|
|
|
|
$sql = 'UPDATE jilo_agents SET
|
2024-09-23 09:39:33 +00:00
|
|
|
agent_type_id = :agent_type_id,
|
2024-09-04 22:06:38 +00:00
|
|
|
url = :url,
|
|
|
|
secret_key = :secret_key
|
|
|
|
WHERE
|
|
|
|
id = :agent_id
|
|
|
|
AND
|
|
|
|
platform_id = :platform_id';
|
|
|
|
|
|
|
|
$query = $this->db->prepare($sql);
|
|
|
|
$query->execute([
|
2024-09-23 09:39:33 +00:00
|
|
|
':agent_type_id' => $updatedAgent['agent_type_id'],
|
2024-09-04 22:06:38 +00:00
|
|
|
':url' => $updatedAgent['url'],
|
|
|
|
':secret_key' => $updatedAgent['secret_key'],
|
|
|
|
':agent_id' => $updatedAgent['id'],
|
|
|
|
':platform_id' => $platform_id,
|
|
|
|
]);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
return $e->getMessage();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// delete an agent
|
|
|
|
public function deleteAgent($agent_id) {
|
|
|
|
try {
|
|
|
|
$sql = 'DELETE FROM jilo_agents
|
|
|
|
WHERE
|
|
|
|
id = :agent_id';
|
|
|
|
|
|
|
|
$query = $this->db->prepare($sql);
|
|
|
|
$query->bindParam(':agent_id', $agent_id);
|
|
|
|
|
|
|
|
$query->execute();
|
|
|
|
return true;
|
|
|
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
return $e->getMessage();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-09-26 06:56:24 +00:00
|
|
|
// check for agent cache
|
|
|
|
public function checkAgentCache($agent_id) {
|
|
|
|
$agent_cache_name = $agent_id . '_cache';
|
|
|
|
$agent_cache_time = $agent_id . '_time';
|
|
|
|
return isset($_SESSION[$agent_cache_name]) && isset($_SESSION[$agent_cache_time]) && (time() - $_SESSION[$agent_cache_time] < 600);
|
|
|
|
}
|
2024-09-04 22:06:38 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|