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", |     "name": "multi-downloader-client", | ||||||
|     "image": "rg.fr-par.scw.cloud/kubernetes/devcontainer:php-8.3", |     "image": "rg.fr-par.scw.cloud/kubernetes/devcontainer:php-8.3", | ||||||
|     "containerEnv": { |     "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" |         "MULTI_DOWNLOADER_URL": "https://multi-dl.kub.nwb.fr" | ||||||
|     }, |     }, | ||||||
|     "customizations": { |     "customizations": { | ||||||
|  | |||||||
| @ -20,8 +20,9 @@ composer require nwb/multi-downloader-client | |||||||
| ## Env | ## Env | ||||||
| The following env variables are used by default | The following env variables are used by default | ||||||
| ```dotenv | ```dotenv | ||||||
| MULTI_DOWNLOADER_API_KEY | MULTI_DOWNLOADER_ACCESS_KEY | ||||||
| MULTI_DOWNLOADER_URL | 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 | They can be overriden in the constructor | ||||||
| ```php | ```php | ||||||
|  | |||||||
| @ -6,43 +6,61 @@ class MultiDownloaderClient | |||||||
| { | { | ||||||
|     private string $url; |     private string $url; | ||||||
|     private string $apiKey; |     private string $apiKey; | ||||||
|  |     private string $apiSecret; | ||||||
| 
 | 
 | ||||||
|     private array $files = []; |     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 = []) |     public function __construct(array $options = []) | ||||||
|     { |     { | ||||||
|         $apiKey = $options['apiKey'] ?? getenv('MULTI_DOWNLOADER_API_KEY'); |         $apiKey = $options['apiKey'] ?? getenv('MULTI_DOWNLOADER_ACCESS_KEY'); | ||||||
| 
 |  | ||||||
|         if (!$apiKey) { |         if (!$apiKey) { | ||||||
|             throw new \InvalidArgumentException('API key is required'); |             throw new \InvalidArgumentException('API key is required'); | ||||||
|         } |         } | ||||||
| 
 |  | ||||||
|         $this->apiKey = $apiKey; |         $this->apiKey = $apiKey; | ||||||
| 
 |          | ||||||
|         $url = $options['url'] ?? getenv('MULTI_DOWNLOADER_URL'); |         $apiSecret = $options['apiSecret'] ?? getenv('MULTI_DOWNLOADER_SECRET_KEY'); | ||||||
| 
 |         if (!$apiSecret) { | ||||||
|         if (!$url) { |             throw new \InvalidArgumentException('API secret key is required'); | ||||||
|             throw new \InvalidArgumentException('API URL 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) |     public function setFiles(array $files) | ||||||
|     { |     { | ||||||
|         $this->files = []; |         $this->files = []; | ||||||
|         $this->addFiles($files); |         $this->addFiles($files); | ||||||
| 
 |          | ||||||
|         return $this; |         return $this; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|     public function addFile(FileRequest $file) |     public function addFile(FileRequest $file) | ||||||
|     { |     { | ||||||
|         $this->files[] = $file; |         $this->files[] = $file; | ||||||
| 
 |  | ||||||
|         return $this; |         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) |     public function addFiles(array $files) | ||||||
|     { |     { | ||||||
|         foreach ($files as $file) { |         foreach ($files as $file) { | ||||||
| @ -59,11 +77,29 @@ class MultiDownloaderClient | |||||||
|         }, $this->files); |         }, $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 |     public function downloadAsString(): string | ||||||
|     { |     { | ||||||
|         return $this->sendRequest(); |         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 |     public function downloadTo(string $path): string | ||||||
|     { |     { | ||||||
|         $response = $this->sendRequest([ |         $response = $this->sendRequest([ | ||||||
| @ -74,6 +110,15 @@ class MultiDownloaderClient | |||||||
|         return $response; |         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 |     public function htmlForm(): string | ||||||
|     { |     { | ||||||
|         ob_start(); |         ob_start(); | ||||||
|  | |||||||
| @ -59,7 +59,7 @@ class MultiDownloaderClientTest extends TestCase | |||||||
| 
 | 
 | ||||||
|     public function testApiKeyEnv() |     public function testApiKeyEnv() | ||||||
|     { |     { | ||||||
|         putenv('MULTI_DOWNLOADER_API_KEY=1234567890'); |         putenv('MULTI_DOWNLOADER_ACCESS_KEY=1234567890'); | ||||||
| 
 | 
 | ||||||
|         $client = new MultiDownloaderClient(); |         $client = new MultiDownloaderClient(); | ||||||
|         $apiKey = self::getProperty($client, 'apiKey'); |         $apiKey = self::getProperty($client, 'apiKey'); | ||||||
| @ -89,7 +89,7 @@ class MultiDownloaderClientTest extends TestCase | |||||||
|         $this->expectException(\InvalidArgumentException::class); |         $this->expectException(\InvalidArgumentException::class); | ||||||
|         $this->expectExceptionMessage('API key is required'); |         $this->expectExceptionMessage('API key is required'); | ||||||
| 
 | 
 | ||||||
|         putenv('MULTI_DOWNLOADER_API_KEY'); |         putenv('MULTI_DOWNLOADER_ACCESS_KEY'); | ||||||
| 
 | 
 | ||||||
|         new MultiDownloaderClient(); |         new MultiDownloaderClient(); | ||||||
|     } |     } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user