Statement::answer()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 15
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 9
nc 1
nop 5
1
<?php
2
3
namespace Happyr\ApiClient\Api;
4
5
use Happyr\ApiClient\Assert;
6
use Happyr\ApiClient\Model\Statement\Statement as StatementModel;
7
use Psr\Http\Message\ResponseInterface;
8
9
/**
10
 * @author Tobias Nyholm <[email protected]>
11
 */
12
final class Statement extends HttpApi
13
{
14
    /**
15
     * @param $user
16
     * @param array $patterns
17
     * @param array $params   valid keys are limit and locale
18
     *
19
     * @return StatementModel|ResponseInterface
20
     */
21
    public function next($user, array $patterns, array $params = [])
22
    {
23
        Assert::stringNotEmpty($user);
24
        Assert::notEmpty($patterns);
25
26
        $params['user'] = $user;
27
        $params['pattern'] = implode(',', $patterns);
28
29
        $response = $this->httpGet('/api/pattern/next-statement', $params);
30
31
        return $this->hydrateResponse($response, StatementModel::class);
32
    }
33
34
    /**
35
     * @param $user
36
     * @param array $patterns
37
     * @param $statement
38
     * @param $answer
39
     * @param array $params valid keys are locale
40
     *
41
     * @return StatementModel|ResponseInterface
42
     */
43
    public function answer($user, array $patterns, $statement, $answer, array $params = [])
44
    {
45
        Assert::stringNotEmpty($user);
46
        Assert::notEmpty($patterns);
47
48
        $postBody = [
49
            'user' => $user,
50
            'pattern' => implode(',', $patterns),
51
            'answer' => $answer,
52
        ];
53
54
        $response = $this->httpPost(sprintf('/api/statement/%s?%s', $statement, http_build_query($params)), $postBody);
55
56
        return $this->hydrateResponse($response, StatementModel::class);
57
    }
58
}
59