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:
floppydiskette 2023-09-08 23:19:40 +01:00 committed by GitHub
parent 5d14848540
commit 26901f8222
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 85 additions and 15 deletions

View file

@ -28,6 +28,5 @@
App\Providers\RouteServiceProvider::class,
])->toArray(),
'aliases' => Facade::defaultAliases()->merge([
// 'Example' => App\Facades\Example::class,
])->toArray(),
];

View file

@ -1,6 +1,7 @@
:root {
--background: #1c1b22;
--foreground: #dddddd;
--background: #181926;
--foreground: #cad3f5;
--links: #8aadf4;
}
body {
@ -128,7 +129,7 @@ div.note {
table {
border-collapse: collapse;
border-color: #fff;
border-color: var(--foreground);
}
table.weather th {
@ -178,7 +179,7 @@ td {
}
.header .title {
color: #fff;
color: var(--foreground);
}
.header {
@ -186,7 +187,6 @@ .header {
font-weight: normal;
padding-bottom: 0;
text-align: center;
color: #ffffff;
}
h1 {
@ -224,7 +224,7 @@ table.commits tr td {
}
a {
color: #99f;
color: var(--links);
text-decoration: none;
}
@ -265,7 +265,7 @@ table.gb-entry-form tbody tr td textarea {
}
table.gb-entry tr td {
border: solid #ffffff 1px;
border: solid var(--foreground) 1px;
width: 500px;
vertical-align: top;
padding: 5px;
@ -278,7 +278,7 @@ table.gb-entry {
table.gb-admin {
margin-bottom: 5px;
width: 500px;
border: #fff solid;
border: var(--foreground) solid;
}
table.gb-admin tr td {
@ -371,3 +371,15 @@ .spec-title {
.computer-specs {
margin-top: 5px;
}
.error-box {
width: 500px;
border: 5px solid #c81a11;
background-color: #f64a3c;
padding: 5px;
}
.error-box a,
.error-box p {
margin: 0;
color: var(--foreground)
}

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