Files
Epicnabbo-Catalogus-Updated…/Updated_Cms/app/Services/Articles/ReactionService.php
T
2026-01-07 19:32:43 +01:00

37 lines
1.0 KiB
PHP

<?php
namespace App\Services\Articles;
use App\Models\Articles\WebsiteArticle;
use App\Models\Articles\WebsiteArticleReaction;
use App\Models\User;
use Illuminate\Http\Request;
class ReactionService
{
public function toggleReaction(WebsiteArticle $article, User $user, Request $request): array
{
$reaction = $request->get('reaction');
if (! is_string($reaction) || ! in_array($reaction, config('habbo.reactions'))) {
return ['success' => false];
}
$existingReaction = WebsiteArticleReaction::getReaction($article->id, $user->id, $reaction);
if ($existingReaction instanceof \App\Models\Articles\WebsiteArticleReaction) {
$existingReaction->update(['active' => ! $existingReaction->active]);
} else {
$article->reactions()->create([
'reaction' => $reaction,
]);
}
return [
'success' => true,
'added' => $existingReaction?->active ?? true,
'username' => $user->username,
];
}
}