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:
Frankie B 2023-09-08 23:19:40 +01:00 committed by GitHub
commit 9a0d3a4ccc
8 changed files with 85 additions and 15 deletions

View 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>

View 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>

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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