Skip to content

Publish HttpFactory #428

Closed
Closed
@Art4

Description

@Art4

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.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions