Skip to content

Commit eb665e8

Browse files
Removed Auth helper. Unified approach for consuming data in protocol version traits.
1 parent c7858bf commit eb665e8

27 files changed

+103
-304
lines changed

src/helpers/Auth.php

Lines changed: 0 additions & 65 deletions
This file was deleted.

src/protocol/AProtocol.php

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Bolt\protocol;
44

5-
use Bolt\enum\{Signature, ServerState};
5+
use Bolt\enum\{Message, Signature, ServerState};
66
use Bolt\error\BoltException;
77
use Bolt\error\PackException;
88
use Bolt\error\UnpackException;
@@ -19,7 +19,7 @@
1919
*/
2020
abstract class AProtocol
2121
{
22-
/** @var string[] */
22+
/** @var Message[] */
2323
protected array $pipelinedMessages = [];
2424

2525
protected IPacker $packer;
@@ -121,8 +121,20 @@ public function getResponse(): Response
121121
$message = reset($this->pipelinedMessages);
122122
if ($message === false)
123123
throw new ConnectException('No response waiting to be consumed');
124-
/** @var Response $response */
125-
$response = $this->{'_' . $message}()->current();
124+
125+
$methodName = '_' . (
126+
str_contains($message->name, '_')
127+
? preg_replace("/_([a-z])/", "strtoupper('$1')", strtolower($message->name))
128+
: strtolower($message->name)
129+
);
130+
if (method_exists($this, $methodName)) {
131+
/** @var Response $response */
132+
$response = $this->$methodName()->current();
133+
} else {
134+
$content = $this->read($signature);
135+
$response = new Response($message, $signature, $content);
136+
}
137+
126138
if ($response->signature != Signature::RECORD)
127139
array_shift($this->pipelinedMessages);
128140

src/protocol/v1/AckFailureMessage.php

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,7 @@
33
namespace Bolt\protocol\v1;
44

55
use Bolt\enum\Message;
6-
use Bolt\protocol\{
7-
Response,
8-
V1,
9-
V2
10-
};
6+
use Bolt\protocol\{V1, V2};
117
use Bolt\error\BoltException;
128

139
trait AckFailureMessage
@@ -23,17 +19,7 @@ trait AckFailureMessage
2319
public function ackFailure(): V1|V2
2420
{
2521
$this->write($this->packer->pack(0x0E));
26-
$this->pipelinedMessages[] = __FUNCTION__;
22+
$this->pipelinedMessages[] = Message::ACK_FAILURE;
2723
return $this;
2824
}
29-
30-
/**
31-
* Read ACK_FAILURE response
32-
* @throws BoltException
33-
*/
34-
protected function _ackFailure(): iterable
35-
{
36-
$content = $this->read($signature);
37-
yield new Response(Message::ACK_FAILURE, $signature, $content);
38-
}
3925
}

src/protocol/v1/DiscardAllMessage.php

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,7 @@
33
namespace Bolt\protocol\v1;
44

55
use Bolt\enum\Message;
6-
use Bolt\protocol\{
7-
Response,
8-
V1,
9-
V2,
10-
V3
11-
};
6+
use Bolt\protocol\{V1, V2, V3};
127
use Bolt\error\BoltException;
138

149
trait DiscardAllMessage
@@ -23,17 +18,7 @@ trait DiscardAllMessage
2318
public function discardAll(): V1|V2|V3
2419
{
2520
$this->write($this->packer->pack(0x2F));
26-
$this->pipelinedMessages[] = __FUNCTION__;
21+
$this->pipelinedMessages[] = Message::DISCARD_ALL;
2722
return $this;
2823
}
29-
30-
/**
31-
* Read DISCARD_ALL response
32-
* @throws BoltException
33-
*/
34-
protected function _discardAll(): iterable
35-
{
36-
$content = $this->read($signature);
37-
yield new Response(Message::DISCARD_ALL, $signature, $content);
38-
}
3924
}

src/protocol/v1/InitMessage.php

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Bolt\protocol\v1;
44

55
use Bolt\enum\Message;
6-
use Bolt\protocol\{Response, V1, V2};
6+
use Bolt\protocol\{V1, V2};
77
use Bolt\error\BoltException;
88

99
trait InitMessage
@@ -18,17 +18,7 @@ trait InitMessage
1818
public function init(string $userAgent, array $authToken): V1|V2
1919
{
2020
$this->write($this->packer->pack(0x01, $userAgent, $authToken));
21-
$this->pipelinedMessages[] = __FUNCTION__;
21+
$this->pipelinedMessages[] = Message::INIT;
2222
return $this;
2323
}
24-
25-
/**
26-
* Read INIT response
27-
* @throws BoltException
28-
*/
29-
public function _init(): iterable
30-
{
31-
$content = $this->read($signature);
32-
yield new Response(Message::INIT, $signature, $content);
33-
}
3424
}

src/protocol/v1/PullAllMessage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ trait PullAllMessage
2323
public function pullAll(): V1|V2|V3
2424
{
2525
$this->write($this->packer->pack(0x3F));
26-
$this->pipelinedMessages[] = __FUNCTION__;
26+
$this->pipelinedMessages[] = Message::PULL_ALL;
2727
return $this;
2828
}
2929

src/protocol/v1/ResetMessage.php

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Bolt\protocol\v1;
44

55
use Bolt\enum\Message;
6-
use Bolt\protocol\{Response, V1, V2, V3, V4, V4_1, V4_2, V4_3, V4_4, V5, V5_1, V5_2, V5_3, V5_4};
6+
use Bolt\protocol\{V1, V2, V3, V4, V4_1, V4_2, V4_3, V4_4, V5, V5_1, V5_2, V5_3, V5_4};
77
use Bolt\error\BoltException;
88

99
trait ResetMessage
@@ -18,17 +18,7 @@ trait ResetMessage
1818
public function reset(): V1|V2|V3|V4|V4_1|V4_2|V4_3|V4_4|V5|V5_1|V5_2|V5_3|V5_4
1919
{
2020
$this->write($this->packer->pack(0x0F));
21-
$this->pipelinedMessages[] = __FUNCTION__;
21+
$this->pipelinedMessages[] = Message::RESET;
2222
return $this;
2323
}
24-
25-
/**
26-
* Read RESET response
27-
* @throws BoltException
28-
*/
29-
protected function _reset(): iterable
30-
{
31-
$content = $this->read($signature);
32-
yield new Response(Message::RESET, $signature, $content);
33-
}
3424
}

src/protocol/v1/RunMessage.php

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,7 @@
33
namespace Bolt\protocol\v1;
44

55
use Bolt\enum\Message;
6-
use Bolt\protocol\{
7-
Response,
8-
V1,
9-
V2
10-
};
6+
use Bolt\protocol\{V1, V2};
117
use Bolt\error\BoltException;
128

139
trait RunMessage
@@ -22,17 +18,7 @@ trait RunMessage
2218
public function run(string $query, array $parameters = []): V1|V2
2319
{
2420
$this->write($this->packer->pack(0x10, $query, (object)$parameters));
25-
$this->pipelinedMessages[] = __FUNCTION__;
21+
$this->pipelinedMessages[] = Message::RUN;
2622
return $this;
2723
}
28-
29-
/**
30-
* Read RUN response
31-
* @throws BoltException
32-
*/
33-
protected function _run(): iterable
34-
{
35-
$content = $this->read($signature);
36-
yield new Response(Message::RUN, $signature, $content);
37-
}
3824
}

src/protocol/v3/BeginMessage.php

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Bolt\protocol\v3;
44

55
use Bolt\enum\Message;
6-
use Bolt\protocol\{Response, V3, V4, V4_1, V4_2, V4_3, V4_4, V5, V5_1, V5_2, V5_3, V5_4};
6+
use Bolt\protocol\{V3, V4, V4_1, V4_2, V4_3, V4_4, V5, V5_1, V5_2, V5_3, V5_4};
77
use Bolt\error\BoltException;
88

99
trait BeginMessage
@@ -18,17 +18,7 @@ trait BeginMessage
1818
public function begin(array $extra = []): V3|V4|V4_1|V4_2|V4_3|V4_4|V5|V5_1|V5_2|V5_3|V5_4
1919
{
2020
$this->write($this->packer->pack(0x11, (object)$extra));
21-
$this->pipelinedMessages[] = __FUNCTION__;
21+
$this->pipelinedMessages[] = Message::BEGIN;
2222
return $this;
2323
}
24-
25-
/**
26-
* Read BEGIN response
27-
* @throws BoltException
28-
*/
29-
protected function _begin(): iterable
30-
{
31-
$content = $this->read($signature);
32-
yield new Response(Message::BEGIN, $signature, $content);
33-
}
3424
}

src/protocol/v3/CommitMessage.php

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Bolt\protocol\v3;
44

55
use Bolt\enum\Message;
6-
use Bolt\protocol\{Response, V3, V4, V4_1, V4_2, V4_3, V4_4, V5, V5_1, V5_2, V5_3, V5_4};
6+
use Bolt\protocol\{V3, V4, V4_1, V4_2, V4_3, V4_4, V5, V5_1, V5_2, V5_3, V5_4};
77
use Bolt\error\BoltException;
88

99
trait CommitMessage
@@ -18,17 +18,7 @@ trait CommitMessage
1818
public function commit(): V3|V4|V4_1|V4_2|V4_3|V4_4|V5|V5_1|V5_2|V5_3|V5_4
1919
{
2020
$this->write($this->packer->pack(0x12));
21-
$this->pipelinedMessages[] = __FUNCTION__;
21+
$this->pipelinedMessages[] = Message::COMMIT;
2222
return $this;
2323
}
24-
25-
/**
26-
* Read COMMIT response
27-
* @throws BoltException
28-
*/
29-
protected function _commit(): iterable
30-
{
31-
$content = $this->read($signature);
32-
yield new Response(Message::COMMIT, $signature, $content);
33-
}
3424
}

0 commit comments

Comments
 (0)