-
Notifications
You must be signed in to change notification settings - Fork 180
Description
While working on #426 I noticed that there is no convenient alternative to call \Redmine\Http\HttpClient::request() because one has to implement the \Redmine\Http\Request interface beforehand.
Internally we are using the class \Redmine\Http\HttpFactory to create Request and Response instances. This factory class is marked as internal. I propose to make this class publicly available to make the use of \Redmine\Http\HttpClient::request() much more easier.
See also #401 (comment). The HttpFactory will reduce the needed code to:
$response = $client->request(
\Redmine\Http\HttpFactory::makeJsonRequest(
'POST',
'/time_entries.json',
\Redmine\Serializer\JsonSerializer::createFromArray(['time_entry' => $data])->getEncoded(),
),
);#391 proposes the deprecation of this methods:
Redmine\Client\Client::getLastResponseStatusCode()Redmine\Client\Client::getLastResponseContentType()Redmine\Client\Client::getLastResponseBody()
But publishing HttpFactory will allow us to deprecate even more methods:
- Deprecate
Redmine\Client\Client::requestGet() - Deprecate
Redmine\Client\Client::requestPost() - Deprecate
Redmine\Client\Client::requestPut() - Deprecate
Redmine\Client\Client::requestDelete()
Deprecating this methods was also kept in mind while designing the \Redmine\Http\HttpClient::request() method, see #341.