Skip to content

Commit

Permalink
Merge pull request #1031 from abraham/put
Browse files Browse the repository at this point in the history
Support JSON in PUT
  • Loading branch information
abraham committed Jan 19, 2022
2 parents fafc392 + e544b18 commit 2e640c1
Showing 1 changed file with 35 additions and 10 deletions.
45 changes: 35 additions & 10 deletions src/TwitterOAuth.php
Expand Up @@ -275,7 +275,7 @@ public function put(
array $parameters = [],
bool $json = false
) {
return $this->http('PUT', self::API_HOST, $path, $parameters, false);
return $this->http('PUT', self::API_HOST, $path, $parameters, $json);
}

/**
Expand Down Expand Up @@ -671,21 +671,22 @@ private function request(
break;
case 'POST':
$options[CURLOPT_POST] = true;
if ($json) {
$options[CURLOPT_HTTPHEADER][] =
'Content-type: application/json';
$options[CURLOPT_POSTFIELDS] = json_encode($postfields);
} else {
$options[CURLOPT_POSTFIELDS] = Util::buildHttpQuery(
$postfields,
);
}
$options = $this->setPostfieldsOptions(
$options,
$postfields,
$json,
);
break;
case 'DELETE':
$options[CURLOPT_CUSTOMREQUEST] = 'DELETE';
break;
case 'PUT':
$options[CURLOPT_CUSTOMREQUEST] = 'PUT';
$options = $this->setPostfieldsOptions(
$options,
$postfields,
$json,
);
break;
}

Expand Down Expand Up @@ -765,4 +766,28 @@ private function curlCaOpt(string $path): int
{
return is_dir($path) ? CURLOPT_CAPATH : CURLOPT_CAINFO;
}

/**
* Set options for JSON Requests
*
* @param array $options
* @param array $postfields
* @param bool $json
*
* @return array
*/
private function setPostfieldsOptions(
array $options,
array $postfields,
bool $json
): array {
if ($json) {
$options[CURLOPT_HTTPHEADER][] = 'Content-type: application/json';
$options[CURLOPT_POSTFIELDS] = json_encode($postfields);
} else {
$options[CURLOPT_POSTFIELDS] = Util::buildHttpQuery($postfields);
}

return $options;
}
}

0 comments on commit 2e640c1

Please sign in to comment.