diff --git a/app/Gamify/Points/ReplyCreated.php b/app/Gamify/Points/ReplyCreated.php index cabdb51c..8be711e8 100644 --- a/app/Gamify/Points/ReplyCreated.php +++ b/app/Gamify/Points/ReplyCreated.php @@ -2,19 +2,23 @@ namespace App\Gamify\Points; +use App\Models\User; use QCod\Gamify\PointType; class ReplyCreated extends PointType { public int $points = 2; - public function __construct($subject) + public User $author; + + public function __construct($subject, $author) { $this->subject = $subject; + $this->author = $author; } public function payee() { - return $this->getSubject()->author; + return $this->author; } } diff --git a/app/Http/Controllers/Api/ReplyController.php b/app/Http/Controllers/Api/ReplyController.php index 74f3ba72..670c1823 100644 --- a/app/Http/Controllers/Api/ReplyController.php +++ b/app/Http/Controllers/Api/ReplyController.php @@ -47,7 +47,7 @@ public function store(CreateReplyRequest $request): ReplyResource $reply->to($target); $reply->save(); - givePoint(new ReplyCreated($target), $author); + $author->givePoint(new ReplyCreated($target, $author)); // On envoie un event pour une nouvelle réponse à tous les abonnés de la discussion event(new CommentWasAdded($reply, $target)); @@ -79,6 +79,9 @@ public function delete(int $id): JsonResponse { /** @var Reply $reply */ $reply = Reply::findOrFail($id); + + undoPoint(new ReplyCreated($reply->replyAble, $reply->author)); + $reply->delete(); return response()->json(['message' => 'Commentaire supprimé avec succès']); diff --git a/app/Http/Livewire/Forum/CreateReply.php b/app/Http/Livewire/Forum/CreateReply.php index 2ee4f8c0..52a3a946 100644 --- a/app/Http/Livewire/Forum/CreateReply.php +++ b/app/Http/Livewire/Forum/CreateReply.php @@ -40,9 +40,9 @@ public function save() $reply->to($this->thread); $reply->save(); - event(new ReplyWasCreated($reply)); + givePoint(new ReplyCreated($this->thread, Auth::user())); - givePoint(new ReplyCreated($this->thread)); + event(new ReplyWasCreated($reply)); session()->flash('status', 'Réponse ajoutée avec succès!');