106 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
| <?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
 | |
|                     (platform_id, agent_type_id, url, secret_key)
 | |
|                     VALUES
 | |
|                     (:platform_id, :agent_type_id, :url, :secret_key)';
 | |
| 
 | |
|             $query = $this->db->prepare($sql);
 | |
|             $query->execute([
 | |
|                 ':platform_id'		=> $platform_id,
 | |
|                 ':agent_type_id'	=> $newAgent['type_id'],
 | |
|                 ':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
 | |
|                         agent_type_id = :agent_type_id,
 | |
|                         url = :url,
 | |
|                         secret_key = :secret_key
 | |
|                     WHERE
 | |
|                         id = :agent_id
 | |
|                     AND
 | |
|                         platform_id = :platform_id';
 | |
| 
 | |
|             $query = $this->db->prepare($sql);
 | |
|             $query->execute([
 | |
|                 ':agent_type_id'	=> $updatedAgent['agent_type_id'],
 | |
|                 ':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();
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
| }
 | |
| 
 | |
| ?>
 |