Skip to content

Commit 15d1bad

Browse files
committed
WIP - Update API
1 parent 44c7769 commit 15d1bad

File tree

4 files changed

+25
-1
lines changed

4 files changed

+25
-1
lines changed

app/Http/Controllers/Api/PostController.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
use App\Http\Requests\Api\PostRequest;
66
use App\Http\Resources\PostResource;
77
use App\Http\Resources\PostResources;
8+
use App\Http\Resources\UserResource;
89
use App\Post;
910
use App\Http\Controllers\Controller;
11+
use App\User;
1012

1113
class PostController extends Controller
1214
{
@@ -16,13 +18,24 @@ class PostController extends Controller
1618
public function index()
1719
{
1820
$posts = Post::with('author')
19-
->withCount('comments')
2021
->latest()
2122
->paginate(20);
2223

2324
return new PostResources($posts);
2425
}
2526

27+
/**
28+
* @param \App\User $user
29+
*
30+
* @return \App\Http\Resources\PostResources
31+
*/
32+
public function userPosts(User $user)
33+
{
34+
$user->load('posts.author');
35+
36+
return new UserResource($user);
37+
}
38+
2639
/**
2740
* @param \App\Http\Requests\Api\PostRequest $request
2841
*

app/Http/Resources/UserResource.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
class UserResource extends JsonResource
88
{
9+
public static $wrap = false;
10+
911
/**
1012
* Transform the resource into an array.
1113
*
@@ -22,6 +24,7 @@ public function toArray($request)
2224
'postsCount' => $this->posts()->count(),
2325
'followersCount' => $this->followers()->count(),
2426
'followingCount' => $this->followings()->count(),
27+
'posts' => new PostResources($this->whenLoaded('posts'))
2528
];
2629
}
2730
}

app/Post.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ class Post extends Model
1616
'text',
1717
];
1818

19+
/**
20+
* @var array
21+
*/
22+
protected $withCount = [
23+
'comments'
24+
];
25+
1926
/**
2027
* @return \Illuminate\Database\Eloquent\Relations\HasMany
2128
*/

routes/api.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
->name('verification.resend');
3030

3131
Route::get('posts', 'PostController@index');
32+
Route::get('posts/user/{user}', 'PostController@userPosts');
3233
Route::post('posts', 'PostController@store');
3334

3435
Route::get('posts/{id}/comments', 'CommentController@index');

0 commit comments

Comments
 (0)