48 lines
1.1 KiB
PHP
Executable File
48 lines
1.1 KiB
PHP
Executable File
<?php namespace Common\Auth\Controllers;
|
|
|
|
use App\Models\User;
|
|
use Auth;
|
|
use Common\Core\BaseController;
|
|
|
|
class UserFollowersController extends BaseController
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->middleware('auth')->except(['index']);
|
|
}
|
|
|
|
public function index(User $user)
|
|
{
|
|
$this->authorize('show', $user);
|
|
|
|
$pagination = $user
|
|
->followers()
|
|
->withCount(['followers'])
|
|
->simplePaginate(request('perPage') ?? 20);
|
|
|
|
return $this->success(['pagination' => $pagination]);
|
|
}
|
|
|
|
public function follow(User $userToFollow)
|
|
{
|
|
if ($userToFollow->id !== Auth::user()->id) {
|
|
Auth::user()
|
|
->followedUsers()
|
|
->sync([$userToFollow->id], false);
|
|
}
|
|
|
|
return $this->success();
|
|
}
|
|
|
|
public function unfollow(User $userToFollow)
|
|
{
|
|
if ($userToFollow->id != Auth::user()->id) {
|
|
Auth::user()
|
|
->followedUsers()
|
|
->detach($userToFollow->id);
|
|
}
|
|
|
|
return $this->success();
|
|
}
|
|
}
|