Code Rfactor and PHPCS compliance (Controllers and Request) WIP

This commit is contained in:
Jérémy Munsch 2022-06-13 18:22:08 +02:00
parent 39676cf557
commit 71c09ba141
No known key found for this signature in database
GPG key ID: 18361AF3BFEC0FEC
7 changed files with 36 additions and 27 deletions

View file

@ -3,28 +3,30 @@
namespace App\Http\Controllers;
use App\Models\Project;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class StatusCheckerController extends Controller
{
public function index(Request $request)
/**
* Fetch Status
*
* @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory
*/
public function index()
{
$wp_endpoint = 'https://api.wordpress.org/core/version-check/1.7/';
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', $wp_endpoint);
$content = $response->getBody();
$oContent = json_decode($content);
$wpReleases = Http::get(config('status-checker.wp_endpoint'))->json();
$laravelReleases = Http::withOptions([
'allow_redirects' => false,
])->asJson()->get(config('status-checker.laravel_endpoint'))->json();
$laravel_endpoint = 'https://github.com/laravel/laravel/releases/latest';
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', $laravel_endpoint, [
'allow_redirects' => false
]);
$content = $response->getBody()->getContents();
$laravel_latest = substr($content, 84);
$laravel_latest = substr($laravel_latest, 0, -31);
$wp_latest = collect(collect(\collect($wpReleases)->get('offers'))->first())->get('version');
$laravel_latest = ltrim(collect(collect($laravelReleases)->first())->get('tag_name'), 'v');
$projects = Project::orderBy('name')->get();
return view('status-checker.index', ['projects' => $projects, 'wp_latest' => $oContent->offers[0]->version, 'laravel_latest' => $laravel_latest]);
return view('status-checker.index', compact(
'projects',
'wp_latest',
'laravel_latest'
));
}
}

View file

@ -32,6 +32,7 @@ class SecureHeaders
{
View::share('nonce', $nonce = \uniqid());
// * For VueJS dev tool to execute
$cssDev = config('app.debug') ? "'unsafe-inline'" : "'nonce-$nonce'";
$jsDev = config('app.debug') ? "'unsafe-eval' 'unsafe-inline'" : "'nonce-$nonce'";
$reportUri = Route::has('cspReportUri') ?
\sprintf('report-uri %s', \parse_url(route('cspReportUri'), \PHP_URL_PATH)) : '';
@ -48,12 +49,12 @@ class SecureHeaders
"connect-src 'self' blob:;",
"img-src * data: blob:;",
"frame-src https://www.youtube.com;",
"font-src 'self' data:;",
"font-src 'self' data: https://fonts.gstatic.com;",
// ! Using CKEditor wiill must have unsafe-inline style
// phpcs:ignore Generic.Files.LineLength.TooLong
// "style-src 'self' 'unsafe-inline';",
// ! If you dont use ckeditor use this
"style-src 'self' 'nonce-$nonce';",
"style-src 'self' $cssDev https://fonts.googleapis.com;",
// phpcs:ignore Generic.Files.LineLength.TooLong
"script-src 'self' $jsDev;"
];

View file

@ -164,9 +164,9 @@ class Project extends Model
/**
* get logs_hr attribute
*
* @return float
* @return string
*/
public function getLogsHrAttribute(): float
public function getLogsHrAttribute(): string
{
$value = ProjectsStatusChecker::select('logs')->where('project_uuid', '=', $this->uuid)->first();
return $this->humanFilesize($value->logs);
@ -176,11 +176,11 @@ class Project extends Model
* Human readable file size
*
* @param float $size
* @return float
* @return string
*/
private function humanFilesize(float $size): float
private function humanFilesize(float $size): string
{
$i = floor(log($size, 1024));
$i = \floatval(floor(log($size, 1024)));
return round($size / pow(1024, $i), [0,0,2,2,3][$i]) . [' O',' Ko',' Mo',' Go',' To'][$i];
}
}

View file

@ -17,7 +17,7 @@ class RouteServiceProvider extends ServiceProvider
*
* @var string
*/
public const HOME = '/home';
public const HOME = '/';
/**
* Define your route model bindings, pattern filters, etc.

View file

@ -0,0 +1,6 @@
<?php
return [
'wp_endpoint' => 'https://api.wordpress.org/core/version-check/1.7/',
'laravel_endpoint' => 'https://api.github.com/repos/laravel/laravel/releases'
];

View file

@ -15,7 +15,7 @@
<!-- Styles -->
<link href="{{ mix('css/back.css') }}" rel="stylesheet">
<link href="{{ mix('css/fontawesome.min.css') }} rel="stylesheet">
<link href="{{ mix('css/fontawesome.min.css') }}" rel="stylesheet">
</head>
<body>
<div id="app">
@ -82,7 +82,7 @@
@stack('scriptsConstants')
@include('modules.scriptConstants')
<script src="{{ mix('js/back.js') }}"></script>
<script src="{{ mix('js/fontawesome.min.js') }}"></script>
<script src="{{ mix('js/fontawesome.min.js') }}" data-auto-add-css="false"></script>
@stack('scripts')
</div>
</body>

2
webpack.mix.js vendored
View file

@ -84,4 +84,4 @@ mix.copyDirectory('resources/assets', 'public/assets')
// * FontAwesome compile
mix.copy('node_modules/@fortawesome/fontawesome-free/js/all.min.js', 'public/js/fontawesome.min.js')
.copy('node_modules/@fortawesome/fontawesome-free/css/fontawesome.min.css', 'public/css/fontawesome.min.css')
.copy('node_modules/@fortawesome/fontawesome-free/css/svg-with-js.min.css', 'public/css/fontawesome.min.css')