1 | <?php |
||
22 | class Client implements ClientInterface |
||
|
|||
23 | { |
||
24 | /** |
||
25 | * @var ConnectionInterface |
||
26 | */ |
||
27 | private $connection; |
||
28 | |||
29 | /** |
||
30 | * Constructor |
||
31 | * |
||
32 | * @param ConnectionInterface $connection |
||
33 | */ |
||
34 | 9 | public function __construct(ConnectionInterface $connection) |
|
38 | |||
39 | /** |
||
40 | * Get the connection instance. |
||
41 | * |
||
42 | * @return ConnectionInterface |
||
43 | */ |
||
44 | 1 | public function getConnection() |
|
48 | |||
49 | /** |
||
50 | * {@inheritdoc} |
||
51 | */ |
||
52 | 1 | public function connect() |
|
56 | |||
57 | /** |
||
58 | * {@inheritdoc} |
||
59 | */ |
||
60 | 2 | public function disconnect() |
|
61 | { |
||
62 | 2 | if (!$this->connection->disconnect()) { |
|
63 | 1 | throw new RuntimeException('Error while disconnecting from NNTP server'); |
|
64 | } |
||
65 | |||
66 | 1 | return true; |
|
67 | } |
||
68 | |||
69 | /** |
||
70 | * {@inheritdoc} |
||
71 | */ |
||
72 | 4 | public function authenticate($username, $password = null) |
|
92 | |||
93 | /** |
||
94 | * {@inheritdoc} |
||
95 | */ |
||
96 | public function connectAndAuthenticate($username = null, $password = null) |
||
97 | { |
||
98 | $response = $this->connect(); |
||
99 | |||
100 | if (!in_array($response->getStatusCode(), array(Response::POSTING_ALLOWED, RESPONSE::POSTING_PROHIBITED))) { |
||
101 | throw new RuntimeException(sprintf('Unsuccessful response received: %s', (string) $response)); |
||
102 | } |
||
103 | |||
104 | if ($username !== null) { |
||
105 | return $this->authenticate($username, $password); |
||
106 | } |
||
107 | |||
108 | return $response; |
||
109 | } |
||
110 | |||
111 | /** |
||
112 | * {@inheritdoc} |
||
113 | */ |
||
114 | 5 | public function authInfo($type, $value) |
|
118 | |||
119 | /** |
||
120 | * {@inheritdoc} |
||
121 | */ |
||
122 | 1 | public function group($name) |
|
126 | |||
127 | /** |
||
128 | * {@inheritdoc} |
||
129 | */ |
||
130 | 1 | public function help() |
|
134 | |||
135 | /** |
||
136 | * {@inheritdoc} |
||
137 | */ |
||
138 | 1 | public function overviewFormat() |
|
142 | |||
143 | /** |
||
144 | * {@inheritdoc} |
||
145 | */ |
||
146 | public function post($groups, $subject, $body, $from, $headers = null) |
||
162 | |||
163 | /** |
||
164 | * {@inheritdoc} |
||
165 | */ |
||
166 | public function postArticle($groups, $subject, $body, $from, $headers = null) |
||
170 | |||
171 | /** |
||
172 | * {@inheritdoc} |
||
173 | */ |
||
174 | public function quit() |
||
178 | |||
179 | /** |
||
180 | * {@inheritdoc} |
||
181 | */ |
||
182 | 1 | public function xfeature($feature) |
|
186 | |||
187 | /** |
||
188 | * {@inheritdoc} |
||
189 | */ |
||
190 | 1 | public function xover($from, $to, array $format) |
|
194 | |||
195 | /** |
||
196 | * {@inheritdoc} |
||
197 | */ |
||
198 | 1 | public function xzver($from, $to, array $format) |
|
202 | |||
203 | /** |
||
204 | * {@inheritdoc} |
||
205 | */ |
||
206 | 1 | public function sendCommand(CommandInterface $command) |
|
210 | |||
211 | /** |
||
212 | * {@inheritdoc} |
||
213 | */ |
||
214 | 5 | public function sendArticle(CommandInterface $command) |
|
218 | } |
||
219 |