| 
									
										
										
										
											2020-03-28 16:40:37 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace App\Traits; | 
					
						
							|  |  |  | use GuzzleHttp\Client; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | trait ConsumesExternalService | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      *  Envoie une requete a un service | 
					
						
							|  |  |  |      * @param $method | 
					
						
							|  |  |  |      * @param $requestUrl | 
					
						
							|  |  |  |      * @param array $body | 
					
						
							|  |  |  |      * @param array $formParams | 
					
						
							|  |  |  |      * @param array $headers | 
					
						
							|  |  |  |      * @return string | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function perfomRequest($method, $requestUrl, $body = [], $formParams = [], $headers = []) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $client =  new Client([ | 
					
						
							|  |  |  |             'base_uri' => $this->baseUri, | 
					
						
							|  |  |  |         ]); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-15 23:09:27 +00:00
										 |  |  |         if(isset($this->key)){ | 
					
						
							|  |  |  |             $headers['Authorization'] = $this->key; | 
					
						
							|  |  |  |          } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-28 16:40:37 +00:00
										 |  |  |         $response = $client->request($method , $requestUrl , ['json'=> $body , 'form_params' => $formParams , 'headers' => $headers] ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return $response->getBody()->getContents(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |