Skip to content

Commit f86a306

Browse files
committed
Md5 and prefixed generator, generator must return not empty string
1 parent 3afdbf3 commit f86a306

11 files changed

+78
-8
lines changed

src/Exception/InvalidRequestId.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
namespace PhpMiddleware\RequestId\Exception;
4+
5+
class InvalidRequestId extends \UnexpectedValueException
6+
{
7+
8+
}

src/Generator/GeneratorInterface.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
interface GeneratorInterface
66
{
77
/**
8-
* @return mixed unique value
8+
* @return string unique value
99
*/
1010
public function generateRequestId();
1111
}

src/Generator/Md5Generator.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace PhpMiddleware\RequestId\Generator;
4+
5+
final class Md5Generator implements GeneratorInterface
6+
{
7+
private $generator;
8+
9+
public function __construct(GeneratorInterface $generator)
10+
{
11+
$this->generator = $generator;
12+
}
13+
14+
public function generateRequestId()
15+
{
16+
return md5($this->generator->generateRequestId());
17+
}
18+
}

src/Generator/PhpUniqidGenerator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public function __construct($prefix = '', $moreEntropy = false)
2727
}
2828

2929
/**
30-
* @return mixed
30+
* @return string
3131
*/
3232
public function generateRequestId()
3333
{
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace PhpMiddleware\RequestId\Generator;
4+
5+
final class PrefixedGenerator implements GeneratorInterface
6+
{
7+
private $prefix;
8+
private $generator;
9+
10+
/**
11+
* @param string $prefix
12+
* @param GeneratorInterface $generator
13+
*/
14+
public function __construct($prefix, GeneratorInterface $generator)
15+
{
16+
$this->prefix = (string) $prefix;
17+
$this->generator = $generator;
18+
}
19+
20+
/**
21+
* @return string
22+
*/
23+
public function generateRequestId()
24+
{
25+
return $this->prefix . $this->generator->generateRequestId();
26+
}
27+
}

src/Generator/RhumsaaUuid1Generator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public function __construct($node = null, $clockSeq = null)
3636
}
3737

3838
/**
39-
* @return mixed
39+
* @return string
4040
*/
4141
public function generateRequestId()
4242
{

src/Generator/RhumsaaUuid3Generator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function __construct($ns, $name)
3030
}
3131

3232
/**
33-
* @return mixed
33+
* @return string
3434
*/
3535
public function generateRequestId()
3636
{

src/Generator/RhumsaaUuid4Generator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
final class RhumsaaUuid4Generator implements GeneratorInterface
88
{
99
/**
10-
* @return mixed
10+
* @return string
1111
*/
1212
public function generateRequestId()
1313
{

src/Generator/RhumsaaUuid5Generator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function __construct($ns, $name)
3030
}
3131

3232
/**
33-
* @return mixed
33+
* @return string
3434
*/
3535
public function generateRequestId()
3636
{

src/RequestIdMiddleware.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,10 @@ protected function getRequestIdFromRequest(ServerRequestInterface $request)
109109
$requestId = $this->generator->generateRequestId();
110110

111111
if (empty($requestId)) {
112-
throw new Exception\NotGenerated('Generator return empty value');
112+
throw new Exception\InvalidRequestId('Generator return empty value');
113+
}
114+
if (!is_string($requestId)) {
115+
throw new Exception\InvalidRequestId('Request id is not a string');
113116
}
114117
}
115118
return $requestId;

0 commit comments

Comments
 (0)