Plupload::receive()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 21

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 15
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 21
ccs 15
cts 15
cp 1
rs 9.584
c 0
b 0
f 0
cc 3
nc 3
nop 1
crap 3
1
<?php
2
3
namespace Recca0120\Upload;
4
5
use Illuminate\Http\JsonResponse;
6
7
class Plupload extends Api
8
{
9
    /**
10
     * receive.
11
     *
12
     * @param string $name
13
     * @return \Symfony\Component\HttpFoundation\File\UploadedFile
14
     *
15
     * @throws \Recca0120\Upload\Exceptions\ChunkedResponseException
16
     */
17 3
    public function receive($name)
18
    {
19 3
        $uploadedFile = $this->request->file($name);
20 3
        $chunks = $this->request->get('chunks');
21 3
        if (empty($chunks) === true) {
22 1
            return $uploadedFile;
23
        }
24 2
        $chunk = $this->request->get('chunk');
25
26 2
        $originalName = $this->request->get('name');
27 2
        $start = $chunk * $this->request->header('content-length');
28 2
        $uuid = $this->request->get('token');
29 2
        $completed = $chunk >= $chunks - 1;
30
31 2
        $chunkFile = $this->createChunkFile($originalName, $uuid);
32 2
        $chunkFile->appendStream($uploadedFile->getPathname(), $start);
33
34 2
        return $completed === true
35 1
            ? $chunkFile->createUploadedFile()
36 2
            : $chunkFile->throwException();
37
    }
38
39
    /**
40
     * completedResponse.
41
     *
42
     * @param \Illuminate\Http\JsonResponse $response
43
     * @return \Illuminate\Http\JsonResponse
44
     */
45 1
    public function completedResponse(JsonResponse $response)
46
    {
47 1
        $data = $response->getData();
48 1
        $response->setData([
49 1
            'jsonrpc' => '2.0',
50 1
            'result' => $data,
51
        ]);
52
53 1
        return $response;
54
    }
55
}
56