AssetController   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 16
dl 0
loc 28
rs 10
c 1
b 1
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A index() 0 21 3
1
<?php
2
3
namespace CSlant\LaraGenAdv\Http\Controllers\Asset;
4
5
use DateTime;
6
use Illuminate\Contracts\Filesystem\FileNotFoundException;
7
use Illuminate\Filesystem\Filesystem;
8
use Illuminate\Http\Request;
9
use Illuminate\Http\Response;
10
use Illuminate\Routing\Controller as BaseController;
11
12
class AssetController extends BaseController
13
{
14
    /**
15
     * @param  Request  $request
16
     *
17
     * @return Response
18
     */
19
    public function index(Request $request): Response
20
    {
21
        $fileSystem = new Filesystem();
22
        $asset = $request->offsetGet('asset');
23
24
        try {
25
            $path = lara_gen_adv_dist_path($asset);
26
27
            return (new Response(
28
                $fileSystem->get($path),
29
                200,
30
                [
31
                    'Content-Type' => pathinfo($asset, PATHINFO_EXTENSION) == 'css'
32
                        ? 'text/css'
33
                        : 'application/javascript',
34
                ]
35
            ))->setSharedMaxAge(31536000)
36
                ->setMaxAge(31536000)
37
                ->setExpires(new DateTime('+1 year'));
38
        } catch (FileNotFoundException $e) {
39
            return new Response($e->getMessage(), 404);
40
        }
41
    }
42
}
43