DocumentFileController::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 6
ccs 4
cts 4
cp 1
crap 1
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Sausin\Signere\Http\Controllers\Admin;
4
5
use Carbon\Carbon;
6
use Illuminate\Http\Request;
7
use Sausin\Signere\DocumentFile;
8
use Sausin\Signere\Http\Controllers\Controller;
9
10
class DocumentFileController extends Controller
11
{
12
    /** @var \Sausin\Signere\DocumentFile */
13
    protected $df;
14
15
    /**
16
     * Create a new controller instance.
17
     *
18
     * @param  \Sausin\Signere\DocumentFile $df
19
     */
20 2
    public function __construct(DocumentFile $df)
21
    {
22 2
        parent::__construct();
23
24 2
        $this->df = $df;
25 2
    }
26
27
    /**
28
     * Returns the signed pdf document as a file.
29
     *
30
     * @param  string $documentId
31
     * @return \Illuminate\Http\Response
32
     */
33 1
    public function show(string $documentId)
34
    {
35 1
        return $this->df->getSignedPdf($documentId)
36 1
                ->getBody()
37 1
                ->getContents();
38
    }
39
40
    /**
41
     * Creates a temporary url to a document.
42
     *
43
     * @param  Request $request
44
     * @return \Illuminate\Http\Response
45
     */
46 1
    public function store(Request $request)
47
    {
48 1
        $this->validate($request, [
49 1
            'doc_id' => 'bail|required|string|size:36',
50
            'file_type' => 'bail|nullable|string|in:SDO,PDF,SIGNED_PDF,MOBILE_SDO,XML',
51
            'expires' => 'bail|nullable|date',
52
        ]);
53
54 1
        $type = $request->has('file_type') ? $request->file_type : 'PDF';
55 1
        $expires = $request->has('expires') ? Carbon::parse($request->expires) : null;
56
57 1
        return $this->df->temporaryUrl($request->doc_id, $type, $expires)
58 1
                ->getBody()
59 1
                ->getContents();
60
    }
61
}
62