public function includeCurrentUserAttributes(BeatmapDiscussion $discussion)
{
if (!priv_check('BeatmapDiscussionShow', $discussion)->can()) {
return;
}
$currentUser = Auth::user();
if ($currentUser === null) {
return;
}
$score = 0;
// This assumes beatmapDiscussionVotes are already preloaded and
// thus will save one query.
foreach ($discussion->beatmapDiscussionVotes as $vote) {
if ($vote->user_id === $currentUser->user_id) {
$score = $vote->score;
break;
}
}
return $this->item($discussion, function ($discussion) use($score) {
return ['vote_score' => $score];
});
}