mirror of
https://github.com/HolgerHatGarKeineNode/einundzwanzig-nostr.git
synced 2025-12-13 05:26:47 +00:00
feat: Add error handling for relay server response and custom error pages
This commit includes the following changes: - Added error handling in the election views to check if the relay server responds with an error message - Included custom error pages for different HTTP status codes (401, 402, 403, 404, 419, 429, 500, 503) - Created a new layout for the error pages
This commit is contained in:
5
resources/views/errors/401.blade.php
Normal file
5
resources/views/errors/401.blade.php
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@extends('errors::minimal')
|
||||||
|
|
||||||
|
@section('title', __('Unauthorized'))
|
||||||
|
@section('code', '401')
|
||||||
|
@section('message', __('Unauthorized'))
|
||||||
5
resources/views/errors/402.blade.php
Normal file
5
resources/views/errors/402.blade.php
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@extends('errors::minimal')
|
||||||
|
|
||||||
|
@section('title', __('Payment Required'))
|
||||||
|
@section('code', '402')
|
||||||
|
@section('message', __('Payment Required'))
|
||||||
5
resources/views/errors/403.blade.php
Normal file
5
resources/views/errors/403.blade.php
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@extends('errors::minimal')
|
||||||
|
|
||||||
|
@section('title', __('Forbidden'))
|
||||||
|
@section('code', '403')
|
||||||
|
@section('message', __($exception->getMessage() ?: 'Forbidden'))
|
||||||
5
resources/views/errors/404.blade.php
Normal file
5
resources/views/errors/404.blade.php
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@extends('errors::minimal')
|
||||||
|
|
||||||
|
@section('title', __('Not Found'))
|
||||||
|
@section('code', '404')
|
||||||
|
@section('message', __('Not Found'))
|
||||||
5
resources/views/errors/419.blade.php
Normal file
5
resources/views/errors/419.blade.php
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@extends('errors::minimal')
|
||||||
|
|
||||||
|
@section('title', __('Page Expired'))
|
||||||
|
@section('code', '419')
|
||||||
|
@section('message', __('Page Expired'))
|
||||||
5
resources/views/errors/429.blade.php
Normal file
5
resources/views/errors/429.blade.php
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@extends('errors::minimal')
|
||||||
|
|
||||||
|
@section('title', __('Too Many Requests'))
|
||||||
|
@section('code', '429')
|
||||||
|
@section('message', __('Too Many Requests'))
|
||||||
5
resources/views/errors/500.blade.php
Normal file
5
resources/views/errors/500.blade.php
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@extends('errors::minimal')
|
||||||
|
|
||||||
|
@section('title', __('Server Error'))
|
||||||
|
@section('code', '500')
|
||||||
|
@section('message', __($exception->getMessage() ?: 'Server Error'))
|
||||||
5
resources/views/errors/503.blade.php
Normal file
5
resources/views/errors/503.blade.php
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@extends('errors::minimal')
|
||||||
|
|
||||||
|
@section('title', __('Service Unavailable'))
|
||||||
|
@section('code', '503')
|
||||||
|
@section('message', __('Service Unavailable'))
|
||||||
53
resources/views/errors/layout.blade.php
Normal file
53
resources/views/errors/layout.blade.php
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
<title>@yield('title')</title>
|
||||||
|
|
||||||
|
<!-- Styles -->
|
||||||
|
<style>
|
||||||
|
html, body {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #636b6f;
|
||||||
|
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
|
font-weight: 100;
|
||||||
|
height: 100vh;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.full-height {
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-center {
|
||||||
|
align-items: center;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.position-ref {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 36px;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="flex-center position-ref full-height">
|
||||||
|
<div class="content">
|
||||||
|
<div class="title">
|
||||||
|
@yield('message')
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
34
resources/views/errors/minimal.blade.php
Normal file
34
resources/views/errors/minimal.blade.php
Normal file
File diff suppressed because one or more lines are too long
@@ -94,6 +94,11 @@ $loadEvents = function () {
|
|||||||
$request = new Request($relaySet, $requestMessage);
|
$request = new Request($relaySet, $requestMessage);
|
||||||
$response = $request->send();
|
$response = $request->send();
|
||||||
|
|
||||||
|
// Check for errors in the response
|
||||||
|
if (isset($response[config('services.relay')][0][0]) && $response[config('services.relay')][0][0] === 'ERROR') {
|
||||||
|
abort(500, 'Kann keine Events laden. Nostr Relay antwortet nicht.');
|
||||||
|
}
|
||||||
|
|
||||||
$this->events = collect($response[config('services.relay')])
|
$this->events = collect($response[config('services.relay')])
|
||||||
->map(fn($event)
|
->map(fn($event)
|
||||||
=> [
|
=> [
|
||||||
|
|||||||
@@ -134,6 +134,11 @@ $loadEvents = function () {
|
|||||||
$request = new Request($relaySet, $requestMessage);
|
$request = new Request($relaySet, $requestMessage);
|
||||||
$response = $request->send();
|
$response = $request->send();
|
||||||
|
|
||||||
|
// Check for errors in the response
|
||||||
|
if (isset($response[config('services.relay')][0][0]) && $response[config('services.relay')][0][0] === 'ERROR') {
|
||||||
|
abort(500, 'Kann keine Events laden. Nostr Relay antwortet nicht.');
|
||||||
|
}
|
||||||
|
|
||||||
$this->events = collect($response[config('services.relay')])
|
$this->events = collect($response[config('services.relay')])
|
||||||
->map(fn($event)
|
->map(fn($event)
|
||||||
=> [
|
=> [
|
||||||
|
|||||||
Reference in New Issue
Block a user