Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PHP] Use String instead of Byte Array #1990

Merged
merged 2 commits into from
Mar 4, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public PhpClientCodegen() {
typeMapping.put("array", "array");
typeMapping.put("list", "array");
typeMapping.put("object", "object");
typeMapping.put("binary", "ByteArray");
typeMapping.put("binary", "string");

cliOptions.add(new CliOption(CodegenConstants.MODEL_PACKAGE, CodegenConstants.MODEL_PACKAGE_DESC));
cliOptions.add(new CliOption(CodegenConstants.API_PACKAGE, CodegenConstants.API_PACKAGE_DESC));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ class ApiClient
throw new ApiException("API call to $url timed out: ".serialize($response_info), 0, null, null);
} elseif ($response_info['http_code'] >= 200 && $response_info['http_code'] <= 299 ) {
// return raw body if response is a file
if ($responseType == '\SplFileObject' || $responseType == 'ByteArray') {
if ($responseType == '\SplFileObject' || $responseType == 'string') {
return array($http_body, $response_info['http_code'], $http_header);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,8 +241,6 @@ class ObjectSerializer
$values[] = self::deserialize($value, $subClass);
}
$deserialized = $values;
} elseif ($class === 'ByteArray') { // byte array
$deserialized = unpack('C*', (string)$data);
} elseif ($class === '\DateTime') {
$deserialized = new \DateTime($data);
} elseif (in_array($class, array({{&primitives}}))) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ use \{{invokerPackage}}\ObjectSerializer;
{{#bodyParams}}// body params
$_tempBody = null;
if (isset(${{paramName}})) {
{{^isBinary}}$_tempBody = ${{paramName}};{{/isBinary}}{{#isBinary}}$_tempBody = call_user_func_array('pack', array_merge(array('C*'), ${{paramName}}));{{/isBinary}}
$_tempBody = ${{paramName}};
}{{/bodyParams}}

// for model (json/xml)
Expand Down
16 changes: 8 additions & 8 deletions samples/client/petstore/php/SwaggerClient-php/lib/Api/PetApi.php
Original file line number Diff line number Diff line change
Expand Up @@ -884,7 +884,7 @@ public function uploadFileWithHttpInfo($pet_id, $additional_metadata = null, $fi
* Fake endpoint to test byte array return by 'Find pet by ID'
*
* @param int $pet_id ID of pet that needs to be fetched (required)
* @return ByteArray
* @return string
* @throws \Swagger\Client\ApiException on non-2xx response
*/
public function petPetIdtestingByteArraytrueGet($pet_id)
Expand All @@ -900,7 +900,7 @@ public function petPetIdtestingByteArraytrueGet($pet_id)
* Fake endpoint to test byte array return by 'Find pet by ID'
*
* @param int $pet_id ID of pet that needs to be fetched (required)
* @return Array of ByteArray, HTTP status code, HTTP response headers (array of strings)
* @return Array of string, HTTP status code, HTTP response headers (array of strings)
* @throws \Swagger\Client\ApiException on non-2xx response
*/
public function petPetIdtestingByteArraytrueGetWithHttpInfo($pet_id)
Expand Down Expand Up @@ -964,19 +964,19 @@ public function petPetIdtestingByteArraytrueGetWithHttpInfo($pet_id)
list($response, $statusCode, $httpHeader) = $this->apiClient->callApi(
$resourcePath, 'GET',
$queryParams, $httpBody,
$headerParams, 'ByteArray'
$headerParams, 'string'
);

if (!$response) {
return array(null, $statusCode, $httpHeader);
}

return array(\Swagger\Client\ObjectSerializer::deserialize($response, 'ByteArray', $httpHeader), $statusCode, $httpHeader);
return array(\Swagger\Client\ObjectSerializer::deserialize($response, 'string', $httpHeader), $statusCode, $httpHeader);

} catch (ApiException $e) {
switch ($e->getCode()) {
case 200:
$data = \Swagger\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'ByteArray', $e->getResponseHeaders());
$data = \Swagger\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'string', $e->getResponseHeaders());
$e->setResponseObject($data);
break;
}
Expand All @@ -990,7 +990,7 @@ public function petPetIdtestingByteArraytrueGetWithHttpInfo($pet_id)
*
* Fake endpoint to test byte array in body parameter for adding a new pet to the store
*
* @param ByteArray $body Pet object in the form of byte array (optional)
* @param string $body Pet object in the form of byte array (optional)
* @return void
* @throws \Swagger\Client\ApiException on non-2xx response
*/
Expand All @@ -1006,7 +1006,7 @@ public function addPetUsingByteArray($body = null)
*
* Fake endpoint to test byte array in body parameter for adding a new pet to the store
*
* @param ByteArray $body Pet object in the form of byte array (optional)
* @param string $body Pet object in the form of byte array (optional)
* @return Array of null, HTTP status code, HTTP response headers (array of strings)
* @throws \Swagger\Client\ApiException on non-2xx response
*/
Expand Down Expand Up @@ -1036,7 +1036,7 @@ public function addPetUsingByteArrayWithHttpInfo($body = null)
// body params
$_tempBody = null;
if (isset($body)) {
$_tempBody = call_user_func_array('pack', array_merge(array('C*'), $body));
$_tempBody = $body;
}

// for model (json/xml)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ public function callApi($resourcePath, $method, $queryParams, $postData, $header
throw new ApiException("API call to $url timed out: ".serialize($response_info), 0, null, null);
} elseif ($response_info['http_code'] >= 200 && $response_info['http_code'] <= 299 ) {
// return raw body if response is a file
if ($responseType == '\SplFileObject' || $responseType == 'ByteArray') {
if ($responseType == '\SplFileObject' || $responseType == 'string') {
return array($http_body, $response_info['http_code'], $http_header);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,8 +241,6 @@ public static function deserialize($data, $class, $httpHeaders=null)
$values[] = self::deserialize($value, $subClass);
}
$deserialized = $values;
} elseif ($class === 'ByteArray') { // byte array
$deserialized = unpack('C*', (string)$data);
} elseif ($class === '\DateTime') {
$deserialized = new \DateTime($data);
} elseif (in_array($class, array('integer', 'int', 'void', 'number', 'object', 'double', 'float', 'byte', 'DateTime', 'string', 'mixed', 'boolean', 'bool'))) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ public function testAddPetUsingByteArray()
// add a new pet (model)
$object_serializer = new Swagger\Client\ObjectSerializer();
$pet_json_string = json_encode($object_serializer->sanitizeForSerialization($new_pet));
$add_response = $pet_api->addPetUsingByteArray(unpack('C*', $pet_json_string));
$add_response = $pet_api->addPetUsingByteArray($pet_json_string);
// return nothing (void)
$this->assertSame($add_response, NULL);
// verify added Pet
Expand Down Expand Up @@ -330,9 +330,9 @@ public function testGetPetByIdWithByteArray()
// test getPetByIdWithByteArray
$pet_id = 10005;
$bytes = $pet_api->petPetIdtestingByteArraytrueGet($pet_id);
$json = json_decode(call_user_func_array('pack', array_merge(array('C*'), $bytes )), true);
$json = json_decode($bytes, true);

$this->assertInternalType("array", $bytes);
$this->assertInternalType("string", $bytes);

$this->assertSame($json['id'], $pet_id);
// not testing name as it's tested by addPetUsingByteArray
Expand Down