Skip to content

Commit 2e640c1

Browse files
authored
Merge pull request #1031 from abraham/put
Support JSON in PUT
2 parents fafc392 + e544b18 commit 2e640c1

File tree

1 file changed

+35
-10
lines changed

1 file changed

+35
-10
lines changed

Diff for: src/TwitterOAuth.php

+35-10
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ public function put(
275275
array $parameters = [],
276276
bool $json = false
277277
) {
278-
return $this->http('PUT', self::API_HOST, $path, $parameters, false);
278+
return $this->http('PUT', self::API_HOST, $path, $parameters, $json);
279279
}
280280

281281
/**
@@ -671,21 +671,22 @@ private function request(
671671
break;
672672
case 'POST':
673673
$options[CURLOPT_POST] = true;
674-
if ($json) {
675-
$options[CURLOPT_HTTPHEADER][] =
676-
'Content-type: application/json';
677-
$options[CURLOPT_POSTFIELDS] = json_encode($postfields);
678-
} else {
679-
$options[CURLOPT_POSTFIELDS] = Util::buildHttpQuery(
680-
$postfields,
681-
);
682-
}
674+
$options = $this->setPostfieldsOptions(
675+
$options,
676+
$postfields,
677+
$json,
678+
);
683679
break;
684680
case 'DELETE':
685681
$options[CURLOPT_CUSTOMREQUEST] = 'DELETE';
686682
break;
687683
case 'PUT':
688684
$options[CURLOPT_CUSTOMREQUEST] = 'PUT';
685+
$options = $this->setPostfieldsOptions(
686+
$options,
687+
$postfields,
688+
$json,
689+
);
689690
break;
690691
}
691692

@@ -765,4 +766,28 @@ private function curlCaOpt(string $path): int
765766
{
766767
return is_dir($path) ? CURLOPT_CAPATH : CURLOPT_CAINFO;
767768
}
769+
770+
/**
771+
* Set options for JSON Requests
772+
*
773+
* @param array $options
774+
* @param array $postfields
775+
* @param bool $json
776+
*
777+
* @return array
778+
*/
779+
private function setPostfieldsOptions(
780+
array $options,
781+
array $postfields,
782+
bool $json
783+
): array {
784+
if ($json) {
785+
$options[CURLOPT_HTTPHEADER][] = 'Content-type: application/json';
786+
$options[CURLOPT_POSTFIELDS] = json_encode($postfields);
787+
} else {
788+
$options[CURLOPT_POSTFIELDS] = Util::buildHttpQuery($postfields);
789+
}
790+
791+
return $options;
792+
}
768793
}

0 commit comments

Comments
 (0)