🆙 More fixes 🆙

This commit is contained in:
Remco
2026-01-19 20:43:46 +01:00
parent deed2158ca
commit 7b9849c159
77 changed files with 1084 additions and 13612 deletions
@@ -20,7 +20,7 @@ class BadgeController extends Controller
public function show(SettingsService $settingsService): \Illuminate\Contracts\View\View
{
$cost = (int) $settingsService->getOrDefault('drawbadge_currency_value', 150);
$cost = (int) $settingsService->getOrDefault('drawbadge_currency_value', '150');
$currencyType = $settingsService->getOrDefault('drawbadge_currency_type', 'credits');
$badgesPath = $settingsService->getOrDefault('badge_path_filesystem');
@@ -43,8 +43,14 @@ class BadgeController extends Controller
public function buy(Request $request, SendCurrency $sendCurrency, SettingsService $settingsService): \Illuminate\Http\JsonResponse
{
$user = Auth::user();
$cost = (int) $settingsService->getOrDefault('drawbadge_currency_value', 150);
/** @var \App\Models\User|null $user */
$user = $request->user();
if (! $user) {
return response()->json(['success' => false, 'message' => 'Unauthorized.'], 401);
}
$cost = (int) $settingsService->getOrDefault('drawbadge_currency_value', '150');
$currencyType = $settingsService->getOrDefault('drawbadge_currency_type', 'credits');
$currentAmount = match ($currencyType) {
@@ -65,13 +71,13 @@ class BadgeController extends Controller
return response()->json(['success' => false, 'message' => 'Failed to deduct ' . $currencyType . '.'], 500);
}
$badgeData = $request->input('badge_data');
if (! $badgeData) {
$badgeData = $request->string('badge_data')->toString();
if ($badgeData === '') {
return response()->json(['success' => false, 'message' => 'No badge data provided.'], 400);
}
$badgeData = preg_replace('#^data:image/\w+;base64,#i', '', (string) $badgeData);
$decoded = base64_decode((string) $badgeData, true);
$badgeData = (string) preg_replace('#^data:image/\w+;base64,#i', '', $badgeData);
$decoded = base64_decode($badgeData, true);
if ($decoded === false) {
return response()->json(['success' => false, 'message' => 'Invalid base64 data.'], 400);