feat: add error handling (#14)
* Remove commented out crap * Update theme to use some colors from catppuccin, add error handling for API/DB
This commit is contained in:
parent
3fc99d1c9d
commit
9a0d3a4ccc
8 changed files with 85 additions and 15 deletions
4
resources/views/components/errors/api-error.blade.php
Normal file
4
resources/views/components/errors/api-error.blade.php
Normal file
|
@ -0,0 +1,4 @@
|
|||
<div class="error-box">
|
||||
<p><b>API Error:</b> There was an error connecting to the API.</p>
|
||||
<p>If this error persists, please notify me via <a href="mailto:webmaster@diskfloppy.me">e-mail</a>.</p>
|
||||
</div>
|
4
resources/views/components/errors/db-error.blade.php
Normal file
4
resources/views/components/errors/db-error.blade.php
Normal file
|
@ -0,0 +1,4 @@
|
|||
<div class="error-box">
|
||||
<p><b>DB Error:</b> There was an error connecting to the database.</p>
|
||||
<p>If this error persists, please notify me via <a href="mailto:webmaster@diskfloppy.me">e-mail</a>.</p>
|
||||
</div>
|
|
@ -3,7 +3,18 @@
|
|||
@section('description', 'This is the personal homepage of floppydisk.')
|
||||
@section('content')
|
||||
@php
|
||||
$categories = DB::select('
|
||||
$db_alive = true;
|
||||
try {
|
||||
DB::connection()->getPdo();
|
||||
} catch (Exception $e) {
|
||||
$db_alive = false;
|
||||
}
|
||||
@endphp
|
||||
@if (!$db_alive)
|
||||
@include('components.errors.db-error')
|
||||
@else
|
||||
@php
|
||||
$categories = DB::select('
|
||||
SELECT id, name
|
||||
FROM bookmark__categories
|
||||
ORDER BY priority ASC
|
||||
|
@ -37,4 +48,5 @@
|
|||
</table>
|
||||
<br>
|
||||
@endforeach
|
||||
@endif
|
||||
@stop
|
||||
|
|
|
@ -1,13 +1,24 @@
|
|||
@extends('layouts.default')
|
||||
@section('title', 'Guestbook')
|
||||
@section('content')
|
||||
@php
|
||||
$db_alive = true;
|
||||
try {
|
||||
DB::connection()->getPdo();
|
||||
} catch (Exception $e) {
|
||||
$db_alive = false;
|
||||
}
|
||||
@endphp
|
||||
@if (!$db_alive)
|
||||
@include('components.errors.db-error')
|
||||
@else
|
||||
<br>
|
||||
<table class="gb-entry-form-container">
|
||||
<tr>
|
||||
<td>
|
||||
<form method="POST" action="/guestbook">
|
||||
@csrf
|
||||
<x-honeypot />
|
||||
<x-honeypot/>
|
||||
<table class="gb-entry-form">
|
||||
<tr>
|
||||
<td>
|
||||
|
@ -44,7 +55,7 @@
|
|||
<p>A few things to note:</p>
|
||||
<ul>
|
||||
<li>You can submit an entry <u>once every hour</u>.</li>
|
||||
<li>Your IP address is logged but <u>not</u> publically displayed.</li>
|
||||
<li>Your IP address is logged but <u>not</u> publicly displayed.</li>
|
||||
<li>Any entries that appear to be spam <u>will</u> be removed.</li>
|
||||
</ul>
|
||||
</td>
|
||||
|
@ -74,4 +85,5 @@
|
|||
</table>
|
||||
<br>
|
||||
@endforeach
|
||||
@endif
|
||||
@stop
|
||||
|
|
|
@ -7,6 +7,19 @@
|
|||
$cfg = app('config')->get('services')['lastfm'];
|
||||
$api_root = app('config')->get('app')['api_root'];
|
||||
|
||||
$api_alive = true;
|
||||
|
||||
try {
|
||||
$data = file_get_contents($api_root.'/lastfm/current');
|
||||
} catch (Exception $e) {
|
||||
$api_alive = false;
|
||||
}
|
||||
@endphp
|
||||
@if (!$api_alive)
|
||||
@include('components.errors.api-error')
|
||||
@else
|
||||
|
||||
@php
|
||||
$current_track = json_decode(file_get_contents($api_root . '/lastfm/current'));
|
||||
$top_tracks = json_decode(file_get_contents($api_root . '/lastfm/top'));
|
||||
$count = 0;
|
||||
|
@ -51,4 +64,5 @@
|
|||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
@endif
|
||||
@stop
|
||||
|
|
|
@ -13,10 +13,22 @@ function degreesToCompassDirection($degrees) {
|
|||
return $cardinalDirections[round($degrees*16/360)];
|
||||
}
|
||||
|
||||
$data = json_decode(file_get_contents($api_root.'/weather'));
|
||||
$updated = gmdate('H:i Y-m-d', $data->updated);
|
||||
$data = $data->current;
|
||||
$api_alive = true;
|
||||
|
||||
try {
|
||||
$data = file_get_contents($api_root.'/weather');
|
||||
} catch (Exception $e) {
|
||||
$api_alive = false;
|
||||
}
|
||||
@endphp
|
||||
@if (!$api_alive)
|
||||
@include('components.errors.api-error')
|
||||
@else
|
||||
@php
|
||||
$data = json_decode(file_get_contents($api_root.'/weather'));
|
||||
$updated = gmdate('H:i Y-m-d', $data->updated);
|
||||
$data = $data->current;
|
||||
@endphp
|
||||
<table class="info-table">
|
||||
<caption>
|
||||
<h1>Local Weather</h1>
|
||||
|
@ -45,4 +57,5 @@ function degreesToCompassDirection($degrees) {
|
|||
</table>
|
||||
<br>
|
||||
<small><i>(Last Update: {{ $updated }})</i></small>
|
||||
@endif
|
||||
@stop
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue