@@ -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