Completed
Push — master ( aef33f...952551 )
by Gallice
51s queued 10s
created

SpeechApi::extractMeaning()   B

Complexity

Conditions 6
Paths 5

Size

Total Lines 15
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 15
rs 8.8571
ccs 9
cts 9
cp 1
cc 6
eloc 8
nc 5
nop 3
crap 6
1
<?php
2
3
namespace Tgallice\Wit;
4
5
use Tgallice\Wit\Model\Context;
6
7
class SpeechApi
8
{
9
    use ResponseHandler;
10
11
    /**
12
     * @var Client
13
     */
14
    private $client;
15
16
    /**
17
     * @param Client $client
18
     */
19 6
    public function __construct(Client $client)
20
    {
21 6
        $this->client = $client;
22 6
    }
23
24
    /**
25
     * @param string|resource $file
26
     * @param array|null $context
27
     * @param array $queryParams
28
     *
29
     * @return array|null
30
     */
31 3
    public function extractMeaning($file, Context $context = null, array $queryParams = [])
32
    {
33 3
        if (!$file || (!is_resource($file) && !is_readable($file))) {
34 1
            throw new \InvalidArgumentException('$file argument must be a readable file path or a valid resource');
35
        }
36
37 2
        if (null !== $context) {
38 2
            $queryParams['context'] = json_encode($context);
39 2
        }
40
41 2
        $file = is_resource($file) ? $file : fopen($file, 'r');
42 2
        $response = $this->client->send('POST', '/speech', $file, $queryParams);
43
44 2
        return $this->decodeResponse($response);
45
    }
46
}
47