Conditions | 5 |
Paths | 9 |
Total Lines | 29 |
Code Lines | 17 |
Lines | 0 |
Ratio | 0 % |
Tests | 0 |
CRAP Score | 30 |
Changes | 0 |
1 | <?php |
||
33 | public function manifest(ConnectionInterface $connection, Session $session): Session |
||
34 | { |
||
35 | $connection->send('354 Enter message, ending with "." on a line by itself'); |
||
36 | $data = []; |
||
37 | |||
38 | while (true) { |
||
39 | $line = $connection->receive(); |
||
40 | |||
41 | if ($line === '.') { |
||
42 | break; |
||
43 | } |
||
44 | |||
45 | $data[] = $line; |
||
46 | } |
||
47 | |||
48 | try { |
||
49 | $message = GenericMessage::fromString(implode("\r\n", $data)); |
||
50 | } catch (\InvalidArgumentException $e) { |
||
51 | $connection->send('500 Malformed message'); |
||
52 | return $session; |
||
53 | } |
||
54 | |||
55 | foreach ($session->getRecipients() as $recipient) { |
||
56 | $this->backend->store($recipient, $message); |
||
57 | } |
||
58 | |||
59 | $connection->send('250 Message received, queue for delivering'); |
||
60 | return (clone $session)->withMessage($message); |
||
61 | } |
||
62 | |||
70 | } |