Statement   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 2
dl 0
loc 47
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A next() 0 12 1
A answer() 0 15 1
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