laravel_generator_asset_allowed()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 12
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 6
nc 2
nop 1
dl 0
loc 12
rs 10
c 0
b 0
f 0
1
<?php
2
3
use Lbil\LaravelGenerator\Exceptions\LaravelGeneratorException;
4
5
if (!function_exists('laravel_generator_dist_path')) {
6
    /**
7
     * Returns laravel-generator composer dist path.
8
     *
9
     * @param  string|null  $asset
10
     * @return string
11
     */
12
    function laravel_generator_dist_path(string $asset = null): string
13
    {
14
        $defaultPath = config('laravel-generator.defaults.paths.ui_package_path').'/dist/';
15
        $assetPath = config('laravel-generator.defaults.paths.laravel_generator_assets_path', $defaultPath);
16
        if (!str_ends_with($assetPath, '/')) {
17
            $assetPath .= '/';
18
        }
19
        $path = base_path($assetPath);
20
21
        if (!$asset) {
22
            return realpath($path);
23
        }
24
25
        return realpath($path.$asset);
26
    }
27
}
28
29
if (!function_exists('laravel_generator_asset')) {
30
    /**
31
     * Returns asset from laravel-generator composer package.
32
     *
33
     * @param $asset string
34
     * @return string
35
     *
36
     * @throws LaravelGeneratorException
37
     */
38
    function laravel_generator_asset(string $asset): string
39
    {
40
        $file = laravel_generator_dist_path($asset);
41
42
        if (!file_exists($file)) {
43
            throw new LaravelGeneratorException(sprintf('%s - this Laravel Generator asset does not exist', $asset));
44
        }
45
46
        $useAbsolutePath = config('laravel-generator.defaults.paths.use_absolute_path', true);
47
48
        return route('laravel_generator.asset', ['asset' => $asset], $useAbsolutePath).'?v='.filemtime($file);
49
    }
50
}
51
52
if (!function_exists('laravel_generator_dist_path_allowed')) {
53
    /**
54
     * Returns asset allowed from laravel-generator composer package.
55
     *
56
     * @param $asset string
57
     * @return string
58
     *
59
     * @throws LaravelGeneratorException
60
     */
61
    function laravel_generator_asset_allowed(string $asset): string
62
    {
63
        $allowed_files = [
64
            'favicon-16x16.png',
65
            'favicon-32x32.png',
66
        ];
67
68
        if (!in_array($asset, $allowed_files)) {
69
            throw new LaravelGeneratorException(sprintf('%s - this Laravel Generator asset is not allowed', $asset));
70
        }
71
72
        return laravel_generator_asset($asset);
73
    }
74
}
75