Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

spatie/freek.dev

636 stars
2 code files
View spatie/freek.dev on GitHub

app/Http/Controllers/Discovery/Community/LinkApproval.php

Open in GitHub
use App\Actions\ApproveLinkAction;
use App\Actions\RejectLinkAction;
use App\Models\Link;
 
class LinkApproval
{
public function approve(Link $link, ApproveLinkAction $approveLinkAction)
{
$approveLinkAction->execute($link);
 
return view('front.links.approved');
}
 
public function reject(Link $link, RejectLinkAction $rejectLinkAction)
{
$rejectLinkAction->execute($link);
 
return view('front.links.rejected');
}
}

app/Actions/ApproveLinkAction.php

Open in GitHub
use App\Mail\LinkApprovedMail;
use App\Models\Link;
use Illuminate\Support\Facades\Mail;
use Spatie\ResponseCache\Facades\ResponseCache;
 
class ApproveLinkAction
{
public function execute(Link $link): Link
{
if ($link->isApproved()) {
return $link;
}
 
Mail::to($link->user->email)->queue(new LinkApprovedMail($link));
 
$link->update([
'publish_date' => now(),
'status' => Link::STATUS_APPROVED,
]);
 
ResponseCache::clear();
 
return $link;
}
}