Skip to content

Commit 66e497a

Browse files
committed
Fix accessor
1 parent d7e612e commit 66e497a

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

src/MessageAccessor.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,23 @@ public function getContent(MessageInterface $message): string
122122
return $body;
123123
}
124124

125-
public function filter(MessageInterface $message): MessageInterface
125+
public function filterMessage(MessageInterface $message): MessageInterface
126126
{
127127
$body = $this->getContent($message);
128128

129129
foreach ($this->getHeaders($message) as $header => $values) {
130130
$message = $message->withHeader($header, $values);
131131
}
132132

133-
return $message->withBody(Utils::streamFor($body));
133+
return $message
134+
->withBody(Utils::streamFor($body));
135+
}
136+
137+
public function filterRequest(RequestInterface $request): RequestInterface
138+
{
139+
/** @var RequestInterface $filtered */
140+
$filtered = $this->filterMessage($request);
141+
return $filtered->withUri($this->getUri($request));
134142
}
135143

136144
protected function replaceParameters(array $array, array $parameters, array $values, string $replace, $strict = true): array

tests/MessageAccessorTest.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public function test_get_content()
145145
]), $content);
146146
}
147147

148-
public function test_filter()
148+
public function test_filter_message()
149149
{
150150
$request = $this->messageAccessor->filter($this->request);
151151

@@ -154,4 +154,14 @@ public function test_filter()
154154

155155
$this->assertEquals($output, Message::toString($request));
156156
}
157+
158+
public function test_filter_request()
159+
{
160+
$request = $this->messageAccessor->filterRequest($this->request);
161+
162+
// Note that it is required to use double quotes for the Carriage Return (\r) to work and have it on one line to pass on Windows
163+
$output = "POST /some-path/********/should-not-be-removed?test=true&search=%2A%2A%2A%2A%2A%2A%2A%2A&filter%5Bfield1%5D=A&filter%5Bfield2%5D=%2A%2A%2A%2A%2A%2A%2A%2A HTTP/1.1\r\nHost: ********.example.com:9000\r\nAccept: application/json\r\nContent-Type: application/json\r\nAuthorization: ********\r\n\r\n{\"data\":{\"foo\":\"bar\",\"baz\":[{\"field_1\":\"value1\",\"field_2\":\"value2\",\"password\":\"********\",\"secret\":\"this is not for everyone\"}]}}";
164+
165+
$this->assertEquals($output, Message::toString($request));
166+
}
157167
}

0 commit comments

Comments
 (0)