AssetController   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 16
dl 0
loc 27
rs 10
c 0
b 0
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A index() 0 21 3
1
<?php
2
3
namespace Lbil\LaravelGenerator\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
     * @return string
17
     */
18
    public function index(Request $request)
19
    {
20
        $fileSystem = new Filesystem();
21
        $asset = $request->offsetGet('asset');
22
23
        try {
24
            $path = laravel_generator_dist_path($asset);
25
26
            return (new Response(
27
                $fileSystem->get($path),
28
                200,
29
                [
30
                    'Content-Type' => pathinfo($asset)['extension'] == 'css'
31
                        ? 'text/css'
32
                        : 'application/javascript',
33
                ]
34
            ))->setSharedMaxAge(31536000)
35
                ->setMaxAge(31536000)
36
                ->setExpires(new DateTime('+1 year'));
37
        } catch (FileNotFoundException $e) {
38
            return $e->getMessage();
39
        }
40
    }
41
}
42