Skip to content

Commit 5e0f1cb

Browse files
authored
Merge pull request #426 from Art4/391-deprecate-last-response-methods-in-clients
Deprecate `getLastResponse...()` and `request...()` in Clients
2 parents 599f589 + cf370a2 commit 5e0f1cb

File tree

8 files changed

+585
-0
lines changed

8 files changed

+585
-0
lines changed

CHANGELOG.md

+10
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
- New class `Redmine\Http\HttpFactory` to create `Redmine\Http\Request` and `Redmine\Http\Response` instances.
1313

14+
### Deprecated
15+
16+
- `Redmine\Client\Client::requestGet()` is deprecated, use `\Redmine\Client\Client::request()` instead.
17+
- `Redmine\Client\Client::requestPost()` is deprecated, use `\Redmine\Client\Client::request()` instead.
18+
- `Redmine\Client\Client::requestPut()` is deprecated, use `\Redmine\Client\Client::request()` instead.
19+
- `Redmine\Client\Client::requestDelete()` is deprecated, use `\Redmine\Client\Client::request()` instead.
20+
- `Redmine\Client\Client::getLastResponseStatusCode()` is deprecated, use `\Redmine\Client\Client::request()` or `\Redmine\Api\AbstractApi::getLastResponse()->getStatusCode()` instead.
21+
- `Redmine\Client\Client::getLastResponseContentType()` is deprecated, use `\Redmine\Client\Client::request()` or `\Redmine\Api\AbstractApi::getLastResponse()->getContentType()` instead.
22+
- `Redmine\Client\Client::getLastResponseBody()` is deprecated, use `\Redmine\Client\Client::request()` or `\Redmine\Api\AbstractApi::getLastResponse()->getContent()` instead.
23+
1424
## [v2.7.0](https://github.com/kbsali/php-redmine-api/compare/v2.6.0...v2.7.0) - 2024-07-10
1525

1626
### Added

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ like [Guzzle](https://github.com/guzzle/guzzle) for handling http connections
1919
* [mid-level API](docs/usage.md#mid-level-api) e.g.
2020
```php
2121
$client->getApi('issue')->create(['project_id' => 1, 'subject' => 'issue title']);
22+
23+
$response = $client->getApi('issue')->getLastResponse();
2224
```
2325
* [low-level API](docs/usage.md#low-level-api) e.g.
2426
```php

composer.json

+1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
},
5252
"scripts": {
5353
"bdt": [
54+
"Composer\\Config::disableProcessTimeout",
5455
"@behat --format=progress --suite=redmine_50103",
5556
"@behat --format=progress --suite=redmine_50009",
5657
"@behat --format=progress --suite=redmine_40210"

src/Redmine/Client/Client.php

+24
Original file line numberDiff line numberDiff line change
@@ -28,36 +28,60 @@ public function stopImpersonateUser(): void;
2828

2929
/**
3030
* Create and send a GET request.
31+
*
32+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` instead
33+
* @see \Redmine\Http\HttpClient::request()
3134
*/
3235
public function requestGet(string $path): bool;
3336

3437
/**
3538
* Create and send a POST request.
39+
*
40+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` instead
41+
* @see \Redmine\Http\HttpClient::request()
3642
*/
3743
public function requestPost(string $path, string $body): bool;
3844

3945
/**
4046
* Create and send a PUT request.
47+
*
48+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` instead
49+
* @see \Redmine\Http\HttpClient::request()
4150
*/
4251
public function requestPut(string $path, string $body): bool;
4352

4453
/**
4554
* Create and send a DELETE request.
55+
*
56+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` instead
57+
* @see \Redmine\Http\HttpClient::request()
4658
*/
4759
public function requestDelete(string $path): bool;
4860

4961
/**
5062
* Returns status code of the last response.
63+
*
64+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` or `\Redmine\Api\AbstractApi::getLastResponse()` instead
65+
* @see \Redmine\Http\HttpClient::request()
66+
* @see \Redmine\Api\AbstractApi::getLastResponse()
5167
*/
5268
public function getLastResponseStatusCode(): int;
5369

5470
/**
5571
* Returns content type of the last response.
72+
*
73+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` or `\Redmine\Api\AbstractApi::getLastResponse()` instead
74+
* @see \Redmine\Http\HttpClient::request()
75+
* @see \Redmine\Api\AbstractApi::getLastResponse()
5676
*/
5777
public function getLastResponseContentType(): string;
5878

5979
/**
6080
* Returns the body of the last response.
81+
*
82+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` or `\Redmine\Api\AbstractApi::getLastResponse()` instead
83+
* @see \Redmine\Http\HttpClient::request()
84+
* @see \Redmine\Api\AbstractApi::getLastResponse()
6185
*/
6286
public function getLastResponseBody(): string;
6387
}

src/Redmine/Client/NativeCurlClient.php

+38
Original file line numberDiff line numberDiff line change
@@ -111,57 +111,95 @@ public function stopImpersonateUser(): void
111111

112112
/**
113113
* Create and send a GET request.
114+
*
115+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` instead
116+
* @see \Redmine\Http\HttpClient::request()
114117
*/
115118
public function requestGet(string $path): bool
116119
{
120+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Client\NativeCurlClient::request()` instead.', E_USER_DEPRECATED);
121+
117122
return $this->runRequest('GET', $path);
118123
}
119124

120125
/**
121126
* Create and send a POST request.
127+
*
128+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` instead
129+
* @see \Redmine\Http\HttpClient::request()
122130
*/
123131
public function requestPost(string $path, string $body): bool
124132
{
133+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Client\NativeCurlClient::request()` instead.', E_USER_DEPRECATED);
134+
125135
return $this->runRequest('POST', $path, $body);
126136
}
127137

128138
/**
129139
* Create and send a PUT request.
140+
*
141+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` instead
142+
* @see \Redmine\Http\HttpClient::request()
130143
*/
131144
public function requestPut(string $path, string $body): bool
132145
{
146+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Client\NativeCurlClient::request()` instead.', E_USER_DEPRECATED);
147+
133148
return $this->runRequest('PUT', $path, $body);
134149
}
135150

136151
/**
137152
* Create and send a DELETE request.
153+
*
154+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` instead
155+
* @see \Redmine\Http\HttpClient::request()
138156
*/
139157
public function requestDelete(string $path): bool
140158
{
159+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Client\NativeCurlClient::request()` instead.', E_USER_DEPRECATED);
160+
141161
return $this->runRequest('DELETE', $path);
142162
}
143163

144164
/**
145165
* Returns status code of the last response.
166+
*
167+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` or `\Redmine\Api\AbstractApi::getLastResponse()` instead
168+
* @see \Redmine\Http\HttpClient::request()
169+
* @see \Redmine\Api\AbstractApi::getLastResponse()
146170
*/
147171
public function getLastResponseStatusCode(): int
148172
{
173+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Client\NativeCurlClient::request()` or `\Redmine\Api\AbstractApi::getLastResponse()` instead.', E_USER_DEPRECATED);
174+
149175
return $this->lastResponseStatusCode;
150176
}
151177

152178
/**
153179
* Returns content type of the last response.
180+
*
181+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` or `\Redmine\Api\AbstractApi::getLastResponse()` instead
182+
* @see \Redmine\Http\HttpClient::request()
183+
* @see \Redmine\Api\AbstractApi::getLastResponse()
154184
*/
155185
public function getLastResponseContentType(): string
156186
{
187+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Client\NativeCurlClient::request()` or `\Redmine\Api\AbstractApi::getLastResponse()` instead.', E_USER_DEPRECATED);
188+
157189
return $this->lastResponseContentType;
158190
}
159191

160192
/**
161193
* Returns the body of the last response.
194+
*
195+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` or `\Redmine\Api\AbstractApi::getLastResponse()` instead
196+
* @see \Redmine\Http\HttpClient::request()
197+
* @see \Redmine\Api\AbstractApi::getLastResponse()
162198
*/
163199
public function getLastResponseBody(): string
164200
{
201+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Client\NativeCurlClient::request()` or `\Redmine\Api\AbstractApi::getLastResponse()` instead.', E_USER_DEPRECATED);
202+
165203
return $this->lastResponseBody;
166204
}
167205

src/Redmine/Client/Psr18Client.php

+35
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,17 @@ public function stopImpersonateUser(): void
118118
/**
119119
* Create and send a GET request.
120120
*
121+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` instead
122+
* @see \Redmine\Http\HttpClient::request()
123+
*
121124
* @throws ClientException If anything goes wrong on the request
122125
*
123126
* @return bool true if status code of the response is not 4xx oder 5xx
124127
*/
125128
public function requestGet(string $path): bool
126129
{
130+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Client\Psr18Client::request()` instead.', E_USER_DEPRECATED);
131+
127132
$response = $this->runRequest('GET', $path);
128133

129134
return $response->getStatusCode() < 400;
@@ -132,12 +137,17 @@ public function requestGet(string $path): bool
132137
/**
133138
* Create and send a POST request.
134139
*
140+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` instead
141+
* @see \Redmine\Http\HttpClient::request()
142+
*
135143
* @throws ClientException If anything goes wrong on the request
136144
*
137145
* @return bool true if status code of the response is not 4xx oder 5xx
138146
*/
139147
public function requestPost(string $path, string $body): bool
140148
{
149+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Client\Psr18Client::request()` instead.', E_USER_DEPRECATED);
150+
141151
$response = $this->runRequest('POST', $path, $body);
142152

143153
return $response->getStatusCode() < 400;
@@ -146,12 +156,17 @@ public function requestPost(string $path, string $body): bool
146156
/**
147157
* Create and send a PUT request.
148158
*
159+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` instead
160+
* @see \Redmine\Http\HttpClient::request()
161+
*
149162
* @throws ClientException If anything goes wrong on the request
150163
*
151164
* @return bool true if status code of the response is not 4xx oder 5xx
152165
*/
153166
public function requestPut(string $path, string $body): bool
154167
{
168+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Client\Psr18Client::request()` instead.', E_USER_DEPRECATED);
169+
155170
$response = $this->runRequest('PUT', $path, $body);
156171

157172
return $response->getStatusCode() < 400;
@@ -160,22 +175,32 @@ public function requestPut(string $path, string $body): bool
160175
/**
161176
* Create and send a DELETE request.
162177
*
178+
* @deprecated v2.8.0 Use `\Redmine\Http\HttpClient::request()` instead
179+
* @see \Redmine\Http\HttpClient::request()
180+
*
163181
* @throws ClientException If anything goes wrong on the request
164182
*
165183
* @return bool true if status code of the response is not 4xx oder 5xx
166184
*/
167185
public function requestDelete(string $path): bool
168186
{
187+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Client\Psr18Client::request()` instead.', E_USER_DEPRECATED);
188+
169189
$response = $this->runRequest('DELETE', $path);
170190

171191
return $response->getStatusCode() < 400;
172192
}
173193

174194
/**
175195
* Returns status code of the last response.
196+
*
197+
* @deprecated v2.8.0 Use `\Redmine\Api\AbstractApi::getLastResponse()` instead
198+
* @see \Redmine\Api\AbstractApi::getLastResponse()
176199
*/
177200
public function getLastResponseStatusCode(): int
178201
{
202+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Api\AbstractApi::getLastResponse()` instead.', E_USER_DEPRECATED);
203+
179204
if (null === $this->lastResponse) {
180205
return 0;
181206
}
@@ -185,9 +210,14 @@ public function getLastResponseStatusCode(): int
185210

186211
/**
187212
* Returns content type of the last response.
213+
*
214+
* @deprecated v2.8.0 Use `\Redmine\Api\AbstractApi::getLastResponse()` instead
215+
* @see \Redmine\Api\AbstractApi::getLastResponse()
188216
*/
189217
public function getLastResponseContentType(): string
190218
{
219+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Api\AbstractApi::getLastResponse()` instead.', E_USER_DEPRECATED);
220+
191221
if (null === $this->lastResponse) {
192222
return '';
193223
}
@@ -197,9 +227,14 @@ public function getLastResponseContentType(): string
197227

198228
/**
199229
* Returns the body of the last response.
230+
*
231+
* @deprecated v2.8.0 Use `\Redmine\Api\AbstractApi::getLastResponse()` instead
232+
* @see \Redmine\Api\AbstractApi::getLastResponse()
200233
*/
201234
public function getLastResponseBody(): string
202235
{
236+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.8.0, use `\Redmine\Api\AbstractApi::getLastResponse()` instead.', E_USER_DEPRECATED);
237+
203238
if (null === $this->lastResponse) {
204239
return '';
205240
}

0 commit comments

Comments
 (0)