Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 12 additions & 19 deletions src/Traits/Bookmark/Markable/Actions.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,33 +7,26 @@

trait Actions
{
protected function markBookmark(Model $marker, bool $value, array | null | NotPassed $metaData = new NotPassed)
public function unbookmarkBy(Model $marker)
{
return $this->bookmarks()
->whereBelongsTo($marker, 'marker')
->first()
?->delete();
}

public function bookmarkBy(Model $marker, array | null | NotPassed $metadata = new NotPassed): Model
{
$attributes = [
'marker_id' => $marker->getKey(),
];

$values = [
'value' => $value,
];
$values = [];

if (! $metaData instanceof NotPassed) {
$values['metadata'] = $metaData;
if (! $metadata instanceof NotPassed) {
$values['metadata'] = $metadata;
}

return $this->bookmarks()->updateOrCreate($attributes, $values);
}

public function unmarkBookmark(Model $marker)
{
return $this->bookmarks()
->whereBelongsTo($marker, 'marker')
->first()
?->delete();
}

public function bookmarkBy(Model $marker, $metadata = null): array
{
return $this->markBookmark($marker, true, $metadata);
}
}
8 changes: 1 addition & 7 deletions src/Traits/Bookmark/Markable/Relations.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
namespace LaraZeus\Mark\Traits\Bookmark\Markable;

use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\Relations\MorphOne;
use LaraZeus\Mark\Facades\Mark;

trait Relations
{
public function bookmarkedBy()
public function bookmarkers()
{
return $this->morphToMany(
related: Mark::getMarkerModel(),
Expand All @@ -26,9 +25,4 @@ public function bookmarks(): MorphMany
{
return $this->morphMany(Mark::getBookmarkMorphPivotModel(), 'markable');
}

public function bookmark(): MorphOne
{
return $this->morphOne(Mark::getBookmarkMorphPivotModel(), 'markable');
}
}
2 changes: 1 addition & 1 deletion src/Traits/Bookmark/Markable/Scopes.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

trait Scopes
{
public function scopeWhereBookmarkedBy(Builder $query, Model | Collection $marker): Builder
public function scopeBookmarkedBy(Builder $query, Model | Collection $marker): Builder
{
return $query->whereRelation(
'bookmarks',
Expand Down
31 changes: 12 additions & 19 deletions src/Traits/Bookmark/Marker/Actions.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,34 +7,27 @@

trait Actions
{
public function markBookmark(Model $markable, bool $value, array | null | NotPassed $metaData = new NotPassed)
public function unbookmark(Model $markable)
{
return $this->bookmarks()
->whereMorphedTo('markable', $markable)
->first()
?->delete();
}

public function bookmark(Model $markable, array | null | NotPassed $metadata = new NotPassed): Model
{
$attributes = [
'markable_type' => $markable->getMorphClass(),
'markable_id' => $markable->getKey(),
];

$values = [
'value' => $value,
];
$values = [];

if (! $metaData instanceof NotPassed) {
$values['metadata'] = $metaData;
if (! $metadata instanceof NotPassed) {
$values['metadata'] = $metadata;
}

return $this->bookmarks()->updateOrCreate($attributes, $values);
}

public function unmarkBookmark(Model $markable)
{
return $this->bookmarks()
->whereMorphedTo('markable', $markable)
->first()
?->delete();
}

public function bookmark(Model $markable, array | null | NotPassed $metaData = new NotPassed)
{
return $this->markBookmark($markable, true, $metaData);
}
}
2 changes: 1 addition & 1 deletion src/Traits/Bookmark/Marker/Scopes.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

trait Scopes
{
public function scopeWhereBookmarked(Builder $query, Model | Collection $markable): Builder
public function scopeBookmarked(Builder $query, Model | Collection $markable): Builder
{
return $query->whereRelation(
'bookmarks',
Expand Down
12 changes: 6 additions & 6 deletions src/Traits/Like/Markable/Actions.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

trait Actions
{
protected function markLike(Model $marker, bool $value, array | null | NotPassed $metaData = new NotPassed)
protected function markLike(Model $marker, bool $value, array | null | NotPassed $metadata = new NotPassed): Model
{
$attributes = [
'marker_id' => $marker->getKey(),
Expand All @@ -17,27 +17,27 @@ protected function markLike(Model $marker, bool $value, array | null | NotPassed
'value' => $value,
];

if (! $metaData instanceof NotPassed) {
$values['metadata'] = $metaData;
if (! $metadata instanceof NotPassed) {
$values['metadata'] = $metadata;
}

return $this->likes()->updateOrCreate($attributes, $values);
}

public function unmarkLike(Model $marker)
public function unlikeBy(Model $marker)
{
return $this->likes()
->whereBelongsTo($marker, 'marker')
->first()
?->delete();
}

public function likeBy(Model $marker, $metadata = null): array
public function likeBy(Model $marker, $metadata = null): Model
{
return $this->markLike($marker, true, $metadata);
}

public function dislikeBy(Model $marker, $metadata = null): array
public function dislikeBy(Model $marker, $metadata = null): Model
{
return $this->markLike($marker, false, $metadata);
}
Expand Down
8 changes: 1 addition & 7 deletions src/Traits/Like/Markable/Relations.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
namespace LaraZeus\Mark\Traits\Like\Markable;

use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\Relations\MorphOne;
use LaraZeus\Mark\Facades\Mark;

trait Relations
{
public function likedBy()
public function likers()
{
return $this->morphToMany(
related: Mark::getMarkerModel(),
Expand All @@ -25,9 +24,4 @@ public function likes(): MorphMany
{
return $this->morphMany(Mark::getLikeMorphPivotModel(), 'markable');
}

public function like(): MorphOne
{
return $this->morphOne(Mark::getLikeMorphPivotModel(), 'markable');
}
}
6 changes: 3 additions & 3 deletions src/Traits/Like/Markable/Scopes.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@

trait Scopes
{
public function scopeWhereLikedOrDislikedBy(Builder $query, Model | Collection $marker): Builder
public function scopeLikedOrDislikedBy(Builder $query, Model | Collection $marker): Builder
{
return $query->whereRelation(
'likes',
fn (Builder $q) => $q->whereBelongsTo($marker, 'marker')
);
}

public function scopeWhereLikedBy(Builder $query, Model | Collection $marker): Builder
public function scopeLikedBy(Builder $query, Model | Collection $marker): Builder
{
return $query->whereRelation(
'likes',
Expand All @@ -26,7 +26,7 @@ public function scopeWhereLikedBy(Builder $query, Model | Collection $marker): B
);
}

public function scopeWhereDislikedBy(Builder $query, Model | Collection $marker): Builder
public function scopeDislikedBy(Builder $query, Model | Collection $marker): Builder
{
return $query->whereRelation(
'likes',
Expand Down
12 changes: 6 additions & 6 deletions src/Traits/Like/Marker/Actions.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

trait Actions
{
public function markLike(Model $markable, bool $value, array | null | NotPassed $metaData = new NotPassed)
protected function markLike(Model $markable, bool $value, array | null | NotPassed $metadata = new NotPassed): Model
{
$attributes = [
'markable_type' => $markable->getMorphClass(),
Expand All @@ -18,27 +18,27 @@ public function markLike(Model $markable, bool $value, array | null | NotPassed
'value' => $value,
];

if (! $metaData instanceof NotPassed) {
$values['metadata'] = $metaData;
if (! $metadata instanceof NotPassed) {
$values['metadata'] = $metadata;
}

return $this->likes()->updateOrCreate($attributes, $values);
}

public function unmarkLike(Model $markable)
public function unlike(Model $markable)
{
return $this->likes()
->whereMorphedTo('markable', $markable)
->first()
?->delete();
}

public function like(Model $markable, array | null | NotPassed $metaData = new NotPassed)
public function like(Model $markable, array | null | NotPassed $metaData = new NotPassed): Model
{
return $this->markLike($markable, true, $metaData);
}

public function dislike(Model $markable, array | null | NotPassed $metaData = new NotPassed)
public function dislike(Model $markable, array | null | NotPassed $metaData = new NotPassed): Model
{
return $this->markLike($markable, false, $metaData);
}
Expand Down
6 changes: 3 additions & 3 deletions src/Traits/Like/Marker/Scopes.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@

trait Scopes
{
public function scopeWhereLikedOrDisliked(Builder $query, Model | Collection $markable): Builder
public function scopeLikedOrDisliked(Builder $query, Model | Collection $markable): Builder
{
return $query->whereRelation(
'likes',
fn (Builder $q) => $q->whereMorphedTo('markable', $markable)
);
}

public function scopeWhereLiked(Builder $query, Model | Collection $markable): Builder
public function scopeLiked(Builder $query, Model | Collection $markable): Builder
{
return $query->whereRelation(
'likes',
Expand All @@ -26,7 +26,7 @@ public function scopeWhereLiked(Builder $query, Model | Collection $markable): B
);
}

public function scopeWhereDisliked(Builder $query, Model | Collection $markable): Builder
public function scopeDisliked(Builder $query, Model | Collection $markable): Builder
{
return $query->whereRelation(
'likes',
Expand Down
27 changes: 11 additions & 16 deletions src/Traits/Rating/Markable/Actions.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,15 @@

trait Actions
{
protected function markRating(Model $marker, int $value, array | null | NotPassed $metaData = new NotPassed)
public function unrateBy(Model $marker)
{
return $this->ratings()
->whereBelongsTo($marker, 'marker')
->first()
?->delete();
}

public function rateBy(Model $marker, int $value, array | null | NotPassed $metadata = new NotPassed): Model
{
$attributes = [
'marker_id' => $marker->getKey(),
Expand All @@ -17,23 +25,10 @@ protected function markRating(Model $marker, int $value, array | null | NotPasse
'value' => $value,
];

if (! $metaData instanceof NotPassed) {
$values['metadata'] = $metaData;
if (! $metadata instanceof NotPassed) {
$values['metadata'] = $metadata;
}

return $this->ratings()->updateOrCreate($attributes, $values);
}

public function unmarkRating(Model $marker)
{
return $this->ratings()
->whereBelongsTo($marker, 'marker')
->first()
?->delete();
}

public function rateBy(Model $marker, int $value, $metadata = null): array
{
return $this->markRating($marker, $value, $metadata);
}
}
8 changes: 1 addition & 7 deletions src/Traits/Rating/Markable/Relations.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
namespace LaraZeus\Mark\Traits\Rating\Markable;

use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\Relations\MorphOne;
use LaraZeus\Mark\Facades\Mark;

trait Relations
{
public function ratedBy()
public function raters()
{
return $this->morphToMany(
related: Mark::getMarkerModel(),
Expand All @@ -25,9 +24,4 @@ public function ratings(): MorphMany
{
return $this->morphMany(Mark::getRatingMorphPivotModel(), 'markable');
}

public function rating(): MorphOne
{
return $this->morphOne(Mark::getRatingMorphPivotModel(), 'markable');
}
}
2 changes: 1 addition & 1 deletion src/Traits/Rating/Markable/Scopes.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

trait Scopes
{
public function scopeWhereRatedBy(Builder $query, Model | Collection $marker): Builder
public function scopeRatedBy(Builder $query, Model | Collection $marker): Builder
{
return $query->whereRelation(
'ratings',
Expand Down
Loading