Repository: amadeus4dev/amadeus-python

Issue:
Query Parameter of Type List Does Not Work As Expected
## Description

This issue was found while triaging #201.

If the Hotel List API is called with a list of hotel IDs, the response only contains information of the first Hotel ID in the list.

## Steps to Reproduce

```python3
amadeus.reference_data.locations.hotels.by_hotels.get(hotelIds=['EAMIA276','EAMIAMAP'])
````

__Expected Behavior:__ [What you expect to happen]
<details>
  <summary>Expected Response</summary>
  
  ```json
{
  "data": [
    {
      "chainCode": "EA",
      "iataCode": "MIA",
      "dupeId": 700105640,
      "name": "CONCORDE OPERA PARIS OPERA PARIS",
      "hotelId": "EAMIA276",
      "geoCode": {
        "latitude": 25.79686,
        "longitude": -80.31452
      },
      "address": {
        "countryCode": "US"
      },
      "giataId": 169766,
      "lastUpdate": "2023-06-15T09:53:57"
    },
    {
      "chainCode": "EA",
      "iataCode": "MIA",
      "dupeId": 700107767,
      "name": "CONCORDE OPERA PARIS OPERA PARIS",
      "hotelId": "EAMIAMAP",
      "geoCode": {
        "latitude": 25.77775,
        "longitude": -80.30379
      },
      "address": {
        "countryCode": "FR"
      },
      "giataId": 172076,
      "lastUpdate": "2023-06-15T09:53:57"
    }
  ],
  "meta": {
    "count": 2,
    "links": {
      "self": "https://test.api.amadeus.com/v1/reference-data/locations/hotels/by-hotels?hotelIds=EAMIA276,EAMIAMAP"
    }
  }
}
  ```
</details>

__Actual Behavior:__ [What actually happens]
<details>
  <summary>Actual Response</summary>
  
  ```json
{
  "data": [
    {
      "chainCode": "EA",
      "iataCode": "MIA",
      "dupeId": 700105640,
      "name": "CONCORDE OPERA PARIS OPERA PARIS",
      "hotelId": "EAMIA276",
      "geoCode": {
        "latitude": 25.79686,
        "longitude": -80.31452
      },
      "address": {
        "countryCode": "US"
      },
      "giataId": 169766,
      "lastUpdate": "2023-06-15T09:53:57"
    }
  ],
  "meta": {
    "count": 1,
    "links": {
      "self": "https://test.api.amadeus.com/v1/reference-data/locations/hotels/by-hotels?hotelIds=EAMIA276"
    }
  }
}
  ```
</details>


__Stable Behavior?__ [What percentage of the time does it reproduce?]
100%

## Versions

amadeus-python: 9.0.0
python: 3.9.6



Discussion:

Patch:
diff --git a/amadeus/reference_data/locations/hotels/_by_hotels.py b/amadeus/reference_data/locations/hotels/_by_hotels.py
index 07d185a..cc9b274 100644
--- a/amadeus/reference_data/locations/hotels/_by_hotels.py
+++ b/amadeus/reference_data/locations/hotels/_by_hotels.py
@@ -18,5 +18,8 @@ class ByHotels(Decorator, object):
         :rtype: amadeus.Response
         :raises amadeus.ResponseError: if the request could not be completed
         '''
+        for key, value in params.items():
+            if isinstance(value, list):
+                params[key] = ','.join(value)
         return self.client.get(
             '/v1/reference-data/locations/hotels/by-hotels', **params)


Test patch:
diff --git a/specs/namespaces/test_namespaces.py b/specs/namespaces/test_namespaces.py
index 577956d..605ddf0 100644
--- a/specs/namespaces/test_namespaces.py
+++ b/specs/namespaces/test_namespaces.py
@@ -497,9 +497,10 @@ def test_analytics_itinerary_price_metrics_get(client_setup):
 
 
 def test_reference_data_locations_hotels_by_hotels_get(client_setup):
-    client_setup.reference_data.locations.hotels.by_hotels.get(a='b')
+    client_setup.reference_data.locations.hotels.by_hotels.get(a='b',
+                                                               c=['d', 'e'])
     client_setup.get.assert_called_with(
-        '/v1/reference-data/locations/hotels/by-hotels', a='b'
+        '/v1/reference-data/locations/hotels/by-hotels', a='b', c='d,e'
     )