Skip to content

Commit de739d7

Browse files
committed
post
1 parent ca803f0 commit de739d7

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

app/Http/Controllers/PostController.php

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,22 @@
55
use Illuminate\Http\Request;
66
use App\Models\Post;
77
use Illuminate\Support\Facades\Validator;
8+
use App\Http\Resources\Post as PostResource;
89

910
class PostController extends Controller
1011
{
1112
/**
12-
* Display a listing of the resource.
13+
* List of posts.
1314
*
1415
* @return \Illuminate\Http\JsonResponse
1516
*/
1617
public function index()
1718
{
18-
$posts = Post::all()->load('user');
19-
$result = [];
20-
foreach ($posts as $post) {
21-
array_push($result, [
22-
'id' => $post->id,
23-
'user_id' => $post->user_id,
24-
'user_name' => $post->user->name,
25-
'title' => $post->title,
26-
'description' => $post->description,
27-
'created_at' => $post->created_at,
28-
'updated_at' => $post->updated_at,
29-
'action' => $post->id,
30-
]);
31-
}
32-
33-
return response()->json($result);
19+
return PostResource::collection(Post::all());
3420
}
3521

3622
/**
37-
* Store a newly created resource in storage.
23+
* Store a newly created post in storage.
3824
*
3925
* @param \Illuminate\Http\Request $request
4026
* @return \Illuminate\Http\Response
@@ -52,19 +38,22 @@ public function store(Request $request)
5238
'description.regex' => 'No HTML tags are allowed.'
5339
]);
5440
if ($validator->fails()) {
55-
return response()->json(array("message"=> "The given data was invalid.", "errors" => $validator->getMessageBag()->getMessages()), 422);
41+
return response()->json([
42+
"message"=> "The given data was invalid.",
43+
"errors" => $validator->getMessageBag()->getMessages()
44+
], 422);
5645
}
5746
$post = Post::create([
5847
'user_id' => $request->user_id,
5948
'title' => $request->title,
6049
'description' => $request->description
6150
]);;
6251

63-
return response()->json($post->load('user'));
52+
return new PostResource($post);
6453
}
6554

6655
/**
67-
* Update the specified resource in storage.
56+
* Update the specified post in storage.
6857
*
6958
* @param \Illuminate\Http\Request $request
7059
* @param Post $post
@@ -83,19 +72,22 @@ public function update(Request $request, Post $post)
8372
'description.regex' => 'No HTML tags are allowed.'
8473
]);
8574
if ($validator->fails()) {
86-
return response()->json(array("message"=> "The given data was invalid.", "errors" => $validator->getMessageBag()->getMessages()), 422);
75+
return response()->json([
76+
"message"=> "The given data was invalid.",
77+
"errors" => $validator->getMessageBag()->getMessages()
78+
], 422);
8779
}
8880
$post->update([
8981
'user_id' => $request->user_id,
9082
'title' => $request->title,
9183
'description' => $request->description
9284
]);;
9385

94-
return response()->json($post->load('user'));
86+
return new PostResource($post);
9587
}
9688

9789
/**
98-
* Remove the specified resource from storage.
90+
* Remove the specified post from storage.
9991
*
10092
* @param Post $post
10193
* @return \Illuminate\Http\Response

app/Http/Resources/Post.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ class Post extends JsonResource
1414
*/
1515
public function toArray($request)
1616
{
17-
return parent::toArray($request);
17+
return [
18+
'id' => $this->id,
19+
'title' => $this->title,
20+
'user' => $this->user,
21+
'description' => $this->description,
22+
'created_at' => $this->created_at,
23+
'updated_at' => $this->updated_at,
24+
'action' => $this->id,
25+
];
1826
}
1927
}

0 commit comments

Comments
 (0)