Nicer error display

This commit is contained in:
Pablo Ferreiro 2022-09-03 14:01:03 +02:00
parent 96fb2fd428
commit 38557fafa6
No known key found for this signature in database
GPG key ID: 41FBCE65B779FA24
15 changed files with 53 additions and 32 deletions

View file

@ -14,7 +14,7 @@ class DiscoverController {
$latte = Wrappers::latte();
$latte->render(Misc::getView('discover'), new FeedTemplate('Discover', $feed));
} else {
ErrorHandler::show($feed->meta);
ErrorHandler::showMeta($feed->meta);
}
}
}

View file

@ -9,12 +9,14 @@ use App\Models\VideoTemplate;
class EmbedController {
static public function v2(int $id) {
$api = Wrappers::api();
$feed = $api->getVideoByID($id);
if ($feed->meta->success) {
$video = $api->video($id);
$video->feed();
if ($video->ok()) {
$data = $video->getFull();
$latte = Wrappers::latte();
$latte->render(Misc::getView('video'), new VideoTemplate($feed->items[0], $feed->info->detail, true));
$latte->render(Misc::getView('video'), new VideoTemplate($data->feed->items[0], $data->info->detail, true));
} else {
ErrorHandler::show($feed->meta);
ErrorHandler::showMeta($video->error());
}
}
}

View file

@ -18,7 +18,7 @@ class MusicController {
$latte = Wrappers::latte();
$latte->render(Misc::getView('music'), new FullTemplate('Music', $data));
} else {
ErrorHandler::show($music->error());
ErrorHandler::showMeta($music->error());
}
}
}

View file

@ -15,7 +15,7 @@ class RedirectController {
case 'url':
$endpoint = self::to_endpoint($term);
if (!$endpoint) {
echo 'Invalid or unknown TikTok URL format';
ErrorHandler::showText(400, 'Invalid TikTok URL');
return;
}
break;

View file

@ -18,7 +18,7 @@ class TagController {
$latte = Wrappers::latte();
$latte->render(Misc::getView('tag'), new FullTemplate('Tag', $data));
} else {
ErrorHandler::show($hashtag->error());
ErrorHandler::showMeta($hashtag->error());
}
}

View file

@ -20,7 +20,7 @@ class TrendingController {
$latte = Wrappers::latte();
$latte->render(Misc::getView('trending'), new FeedTemplate('Trending', $feed));
} else {
ErrorHandler::show($trending->error());
ErrorHandler::showMeta($trending->error());
}
}

View file

@ -17,14 +17,13 @@ class UserController {
if ($user->ok()) {
$data = $user->getFull();
if ($data->info->detail->privateAccount) {
http_response_code(403);
echo 'Private account detected! Not supported';
exit;
ErrorHandler::showText(401, "Private account detected! Not supported");
return;
}
$latte = Wrappers::latte();
$latte->render(Misc::getView('user'), new FullTemplate($data->info->detail->nickname, $data));
} else {
ErrorHandler::show($user->error());
ErrorHandler::showMeta($user->error());
}
}
@ -37,7 +36,7 @@ class UserController {
$latte = Wrappers::latte();
$latte->render(Misc::getView('video'), new VideoTemplate($data->feed->items[0], $data->info->detail));
} else {
ErrorHandler::show($video->error());
ErrorHandler::showMeta($video->error());
}
}

View file

@ -5,9 +5,15 @@ use App\Models\ErrorTemplate;
use TikScraper\Models\Meta;
class ErrorHandler {
static public function show(Meta $meta) {
static public function showMeta(Meta $meta) {
http_response_code($meta->http_code);
$latte = Wrappers::latte();
$latte->render(Misc::getView('error'), new ErrorTemplate($meta));
$latte->render(Misc::getView('error'), new ErrorTemplate($meta->http_code, $meta->tiktok_msg, $meta->tiktok_code));
}
static public function showText(int $code, string $msg) {
http_response_code($code);
$latte = Wrappers::latte();
$latte->render(Misc::getView('error'), new ErrorTemplate($code, $msg));
}
}

View file

@ -1,13 +1,16 @@
<?php
namespace App\Models;
use TikScraper\Models\Meta;
class ErrorTemplate extends BaseTemplate {
public Meta $error;
public int $http_code = 502;
public ?int $tiktok_code = -1;
public string $msg = '';
function __construct(object $error) {
function __construct(int $http_code, string $msg, ?int $tiktok_code = null) {
parent::__construct('Error');
$this->error = $error;
$this->http_code = $http_code;
$this->msg = $msg;
$this->tiktok_code = $tiktok_code;
}
}