Skip to content

Commit 7e0a2e3

Browse files
committed
fix: updateReview now doesnt accept isApproved param
1 parent 339428f commit 7e0a2e3

File tree

2 files changed

+30
-14
lines changed

2 files changed

+30
-14
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ To update an existing review:
8686
$mentee->updateReview($mentor, 5, 'Mentor is even better now!');
8787
```
8888

89+
The `updateReview()` method accepts three parameters: a reviewable model, a rating, and an optional review text.
90+
8991
### Unreviewing a model
9092

9193
To cancel an existing review:

src/Traits/CanReview.php

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public function review($model, float $rating, ?string $reviewContent = null, boo
7272
*
7373
* @param \Illuminate\Database\Eloquent\Model $model
7474
*/
75-
public function updateReview($model, float $newRating, ?string $newReview = null, bool $isApproved = true): Review
75+
public function updateReview($model, float $newRating, ?string $newReview = null): Review
7676
{
7777
$data = [
7878
'reviewer_id' => $this->id,
@@ -81,7 +81,6 @@ public function updateReview($model, float $newRating, ?string $newReview = null
8181
'reviewable_type' => $model->getMorphClass(),
8282
'rating' => $newRating,
8383
'content' => $newReview,
84-
'approved_at' => $isApproved ? now() : null,
8584
];
8685

8786
return $this->saveReview($data, true);
@@ -125,24 +124,39 @@ protected function saveReview(array $data, bool $isUpdate = false): Review
125124
->where('reviewable_type', $data['reviewable_type'])
126125
->firstOrNew();
127126

128-
$oldRating = 0.0;
129-
if ($isUpdate) {
130-
$oldRating = $review->rating;
131-
}
127+
$oldRating = $this->getOldRating($review, $isUpdate);
132128

133129
$review->fill($data);
134130
$review->save();
135131

136-
if ($data['approved_at']) {
137-
$params = [
138-
'rating' => $data['rating'],
139-
'oldRating' => $oldRating,
140-
'isUpdate' => $isUpdate,
141-
];
142-
$review->reviewable->updateReviewSummary($params);
143-
}
132+
$this->handleUpdateReviewSummary($review, $data, $isUpdate, $oldRating);
144133

145134
return $review;
146135
});
147136
}
137+
138+
protected function getOldRating($review, $isUpdate)
139+
{
140+
$oldRating = 0.0;
141+
if ($isUpdate) {
142+
$oldRating = $review->rating;
143+
}
144+
145+
return $oldRating;
146+
}
147+
148+
protected function handleUpdateReviewSummary($review, $data, $isUpdate, $oldRating)
149+
{
150+
$isUnapprove = array_key_exists('approved_at', $data) && is_null($data['approved_at']);
151+
if ($isUnapprove) {
152+
return;
153+
}
154+
155+
$params = [
156+
'rating' => $data['rating'],
157+
'oldRating' => $oldRating,
158+
'isUpdate' => $isUpdate,
159+
];
160+
$review->reviewable->updateReviewSummary($params);
161+
}
148162
}

0 commit comments

Comments
 (0)