Completed
Push — master ( 8e0587...afc775 )
by recca
01:27
created

Plupload::receive()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 21
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 16
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 21
ccs 16
cts 16
cp 1
rs 9.3142
c 0
b 0
f 0
cc 3
eloc 15
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
        $completed = $chunk >= $chunks - 1;
30 2
31 2
        $chunkFile = $this->createChunkFile($originalName, $uuid);
32 2
        $chunkFile->appendStream($uploadedFile->getPathname(), $start);
33 2
34 2
        return $completed === true
35 2
            ? $chunkFile->createUploadedFile()
36 2
            : $chunkFile->throwException();
37
    }
38
39 2
    /**
40 2
     * completedResponse.
41
     *
42
     * @param \Illuminate\Http\JsonResponse $response
43
     * @return \Illuminate\Http\JsonResponse
44
     */
45
    public function completedResponse(JsonResponse $response)
46
    {
47
        $data = $response->getData();
48
        $response->setData([
49 1
            'jsonrpc' => '2.0',
50
            'result' => $data,
51 1
        ]);
52 1
53 1
        return $response;
54 1
    }
55
}
56