MULTI_DOWNLOADER_ACCESS_KEY MULTI_DOWNLOADER_SECRET_KEY
	
		
			
	
		
	
	
		
	
		
			Some checks reported errors
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build encountered an error
				
			
		
		
	
	
				
					
				
			
		
			Some checks reported errors
		
		
	
	continuous-integration/drone/push Build encountered an error
				
			This commit is contained in:
		
							parent
							
								
									bad3bf597a
								
							
						
					
					
						commit
						43fd2c26cb
					
				| @ -2,7 +2,8 @@ | ||||
|     "name": "multi-downloader-client", | ||||
|     "image": "rg.fr-par.scw.cloud/kubernetes/devcontainer:php-8.3", | ||||
|     "containerEnv": { | ||||
|         "MULTI_DOWNLOADER_API_KEY": "YOUR_API_KEY", | ||||
|         "MULTI_DOWNLOADER_ACCESS_KEY": "YOUR_API_KEY", | ||||
|         "MULTI_DOWNLOADER_SECRET_KEY": "YOUR_API_SECRET_KEY", | ||||
|         "MULTI_DOWNLOADER_URL": "https://multi-dl.kub.nwb.fr" | ||||
|     }, | ||||
|     "customizations": { | ||||
|  | ||||
| @ -20,8 +20,9 @@ composer require nwb/multi-downloader-client | ||||
| ## Env | ||||
| The following env variables are used by default | ||||
| ```dotenv | ||||
| MULTI_DOWNLOADER_API_KEY | ||||
| MULTI_DOWNLOADER_URL | ||||
| MULTI_DOWNLOADER_ACCESS_KEY | ||||
| MULTI_DOWNLOADER_SECRET_KEY | ||||
| MULTI_DOWNLOADER_URL (Utile en cas de test local. Si non précisée: https://multi-dl.kub.nwb.fr ) | ||||
| ``` | ||||
| They can be overriden in the constructor | ||||
| ```php | ||||
|  | ||||
| @ -6,43 +6,61 @@ class MultiDownloaderClient | ||||
| { | ||||
|     private string $url; | ||||
|     private string $apiKey; | ||||
|     private string $apiSecret; | ||||
| 
 | ||||
|     private array $files = []; | ||||
| 
 | ||||
|     /** | ||||
|      * Constructeur pour initialiser la classe avec des options spécifiques. | ||||
|      * | ||||
|      * Ce constructeur accepte un tableau d'options pour configurer divers paramètres. | ||||
|      * - `apiKey` (string): Clé d'API nécessaire pour l'authentification. Si elle n'est pas fournie dans le tableau, elle sera récupérée de la variable d'environnement 'MULTI_DOWNLOADER_ACCESS_KEY'. | ||||
|      * - `apiSecret` (string): Clé secrète d'API nécessaire pour des opérations sécurisées. Si elle n'est pas fournie dans le tableau, elle sera récupérée de la variable d'environnement 'MULTI_DOWNLOADER_SECRET_KEY'. | ||||
|      * - `url` (string): URL de base du service de téléchargement. Si elle n'est pas fournie, elle sera d'abord recherchée dans la variable d'environnement 'MULTI_DOWNLOADER_URL', sinon l'URL par défaut 'https://multi-dl.kub.nwb.fr' sera utilisée. | ||||
|      * | ||||
|      * @param array $options Options pour configurer le constructeur. | ||||
|      * @throws \InvalidArgumentException Si l'`apiKey` ou l'`apiSecret` n'est pas fourni. | ||||
|      */ | ||||
|     public function __construct(array $options = []) | ||||
|     { | ||||
|         $apiKey = $options['apiKey'] ?? getenv('MULTI_DOWNLOADER_API_KEY'); | ||||
| 
 | ||||
|         $apiKey = $options['apiKey'] ?? getenv('MULTI_DOWNLOADER_ACCESS_KEY'); | ||||
|         if (!$apiKey) { | ||||
|             throw new \InvalidArgumentException('API key is required'); | ||||
|         } | ||||
| 
 | ||||
|         $this->apiKey = $apiKey; | ||||
| 
 | ||||
|         $url = $options['url'] ?? getenv('MULTI_DOWNLOADER_URL'); | ||||
| 
 | ||||
|         if (!$url) { | ||||
|             throw new \InvalidArgumentException('API URL is required'); | ||||
|          | ||||
|         $apiSecret = $options['apiSecret'] ?? getenv('MULTI_DOWNLOADER_SECRET_KEY'); | ||||
|         if (!$apiSecret) { | ||||
|             throw new \InvalidArgumentException('API secret key is required'); | ||||
|         } | ||||
|         $this->apiSecret = $apiSecret; | ||||
| 
 | ||||
|         $this->url = $url; | ||||
|         $this->url = $options['url'] ?? getenv('MULTI_DOWNLOADER_URL') ?? 'https://multi-dl.kub.nwb.fr'; | ||||
|     } | ||||
| 
 | ||||
|     public function setFiles(array $files) | ||||
|     { | ||||
|         $this->files = []; | ||||
|         $this->addFiles($files); | ||||
| 
 | ||||
|          | ||||
|         return $this; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     public function addFile(FileRequest $file) | ||||
|     { | ||||
|         $this->files[] = $file; | ||||
| 
 | ||||
|         return $this; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Ajoute plusieurs fichiers à la liste de téléchargement. | ||||
|      * | ||||
|      * Cette méthode prend un tableau de fichiers et les ajoute un par un | ||||
|      * à la liste de téléchargement en utilisant la méthode `addFile`. | ||||
|      * | ||||
|      * @param array $files Tableau de fichiers à ajouter. | ||||
|      * @return $this L'instance actuelle pour permettre le chaînage de méthodes. | ||||
|      */ | ||||
|     public function addFiles(array $files) | ||||
|     { | ||||
|         foreach ($files as $file) { | ||||
| @ -59,11 +77,29 @@ class MultiDownloaderClient | ||||
|         }, $this->files); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Télécharge les fichiers et renvoie le résultat sous forme de chaîne de caractères. | ||||
|      * | ||||
|      * Cette méthode envoie la requête de téléchargement et renvoie le contenu | ||||
|      * téléchargé sous forme de chaîne de caractères. Idéal pour le traitement | ||||
|      * de données en mémoire. | ||||
|      * | ||||
|      * @return string Le contenu téléchargé sous forme de chaîne. | ||||
|      */ | ||||
|     public function downloadAsString(): string | ||||
|     { | ||||
|         return $this->sendRequest(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Télécharge les fichiers et les enregistre dans un chemin spécifié. | ||||
|      * | ||||
|      * Cette méthode envoie la requête de téléchargement et sauvegarde le contenu | ||||
|      * téléchargé dans le fichier spécifié par le chemin `$path`. | ||||
|      * | ||||
|      * @param string $path Le chemin du fichier où sauvegarder le contenu téléchargé. | ||||
|      * @return string Réponse de la requête de téléchargement. | ||||
|      */ | ||||
|     public function downloadTo(string $path): string | ||||
|     { | ||||
|         $response = $this->sendRequest([ | ||||
| @ -74,6 +110,15 @@ class MultiDownloaderClient | ||||
|         return $response; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Génère et renvoie un formulaire HTML pour le téléchargement de fichiers. | ||||
|      * | ||||
|      * Cette méthode capture la sortie du fichier 'htmlForm.php' et la renvoie | ||||
|      * sous forme de chaîne de caractères. Utilisée pour générer dynamiquement | ||||
|      * un formulaire de téléchargement dans une page web. | ||||
|      * | ||||
|      * @return string Le formulaire HTML généré pour le téléchargement. | ||||
|      */ | ||||
|     public function htmlForm(): string | ||||
|     { | ||||
|         ob_start(); | ||||
|  | ||||
| @ -59,7 +59,7 @@ class MultiDownloaderClientTest extends TestCase | ||||
| 
 | ||||
|     public function testApiKeyEnv() | ||||
|     { | ||||
|         putenv('MULTI_DOWNLOADER_API_KEY=1234567890'); | ||||
|         putenv('MULTI_DOWNLOADER_ACCESS_KEY=1234567890'); | ||||
| 
 | ||||
|         $client = new MultiDownloaderClient(); | ||||
|         $apiKey = self::getProperty($client, 'apiKey'); | ||||
| @ -89,7 +89,7 @@ class MultiDownloaderClientTest extends TestCase | ||||
|         $this->expectException(\InvalidArgumentException::class); | ||||
|         $this->expectExceptionMessage('API key is required'); | ||||
| 
 | ||||
|         putenv('MULTI_DOWNLOADER_API_KEY'); | ||||
|         putenv('MULTI_DOWNLOADER_ACCESS_KEY'); | ||||
| 
 | ||||
|         new MultiDownloaderClient(); | ||||
|     } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user