Skip to content

Commit cf7dd86

Browse files
Follow and Unfollow Users
1 parent 5fe6172 commit cf7dd86

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Api;
4+
5+
use App\Models\User;
6+
use Illuminate\Http\Request;
7+
8+
class FollowController extends Controller
9+
{
10+
public function follow(Request $request)
11+
{
12+
$request->validate([
13+
'user_id' => 'required|exists:users,id',
14+
]);
15+
16+
$user = auth()->user();
17+
18+
$userToFollow = User::find($request->user_id);
19+
20+
$user->follows()->attach($userToFollow);
21+
22+
return response()->json([
23+
'message' => 'You are now following this user.',
24+
]);
25+
}
26+
27+
28+
public function unfollow(Request $request)
29+
{
30+
$request->validate([
31+
'user_id' => 'required|exists:users,id',
32+
]);
33+
34+
$user = auth()->user();
35+
36+
$userToUnfollow = User::find($request->user_id);
37+
38+
39+
$user->follows()->detach($userToUnfollow);
40+
41+
return response()->json([
42+
'message' => 'You have unfollowed this user.',
43+
]);
44+
}
45+
}
46+
47+

routes/api.php

+9
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
use App\Http\Controllers\Api\Dashboard\CommunityController;
2222
use App\Http\Controllers\Api\NotificationController;
2323
use App\Http\Controllers\Api\SearchController;
24+
use App\Http\Controllers\Api\FollowController;
2425

2526

2627
/*
@@ -206,4 +207,12 @@
206207
Route::get('/users', 'searchUsers');
207208
Route::get('/teams', 'searchTeams');
208209

210+
});
211+
212+
// --------------------------------- Follow Controller ------------------------------------------
213+
214+
Route::group(['prefix' => 'users', 'middleware' => ['auth:sanctum'], 'controller' => FollowController::class], function () {
215+
Route::get('/follow', 'follow');
216+
Route::get('/unfollow', 'unfollow');
217+
209218
});

0 commit comments

Comments
 (0)