Completed
Push — master ( 42366c...c37bfa )
by recca
03:38
created

FineUploader   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 78.56%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
lcom 1
cbo 4
dl 0
loc 57
ccs 22
cts 28
cp 0.7856
rs 10
c 1
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
B receive() 0 30 4
A completedResponse() 0 9 1
1
<?php
2
3
namespace Recca0120\Upload;
4
5
use Illuminate\Http\JsonResponse;
6
7
class FineUploader 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
        $file = $this->request->file($name);
20 3
        if ($this->request->has('qqtotalparts') === false) {
21 1
            return $file;
22
        }
23
24 2
        $completed = is_null($file) === true;
25 2
        $originalName = $this->request->get('qqfilename');
26 2
        $qqtotalparts = (int) $this->request->get('qqtotalparts', 1);
27 2
        $qqpartindex = (int) $this->request->get('qqpartindex');
28 2
        $uuid = $this->request->get('qquuid');
29
30 2
        $this->chunkFile
31 2
            ->setToken($uuid)
32 2
            ->setChunkPath($this->chunkPath())
33 2
            ->setStoragePath($this->storagePath())
34 2
            ->setName($originalName);
35
36 2
        if ($completed === false) {
37 1
            $this->chunkFile->appendStream($file->getRealPath(), 0, $qqpartindex);
38 1
        }
39
40
        return $completed === true
41 2
            ? $this->chunkFile->createUploadedFile($qqtotalparts)
42 2
            : $this->chunkFile->throwException([
43 1
                'success' => true,
44 1
                'uuid' => $uuid,
45 2
            ]);
46
    }
47
48
    /**
49
     * completedResponse.
50
     *
51
     * @param \Illuminate\Http\JsonResponse $response
52
     * @return \Illuminate\Http\JsonResponse
53
     */
54
    public function completedResponse(JsonResponse $response)
55
    {
56
        $data = $response->getData();
57
        $data->success = true;
58
        $data->uuid = $this->request->get('qquuid');
59
        $response->setData($data);
60
61
        return $response;
62
    }
63
}
64