5
5
use Illuminate \Http \Request ;
6
6
use App \Models \Post ;
7
7
use Illuminate \Support \Facades \Validator ;
8
+ use App \Http \Resources \Post as PostResource ;
8
9
9
10
class PostController extends Controller
10
11
{
11
12
/**
12
- * Display a listing of the resource .
13
+ * List of posts .
13
14
*
14
15
* @return \Illuminate\Http\JsonResponse
15
16
*/
16
17
public function index ()
17
18
{
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 ());
34
20
}
35
21
36
22
/**
37
- * Store a newly created resource in storage.
23
+ * Store a newly created post in storage.
38
24
*
39
25
* @param \Illuminate\Http\Request $request
40
26
* @return \Illuminate\Http\Response
@@ -52,19 +38,22 @@ public function store(Request $request)
52
38
'description.regex ' => 'No HTML tags are allowed. '
53
39
]);
54
40
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 );
56
45
}
57
46
$ post = Post::create ([
58
47
'user_id ' => $ request ->user_id ,
59
48
'title ' => $ request ->title ,
60
49
'description ' => $ request ->description
61
50
]);;
62
51
63
- return response ()-> json ( $ post-> load ( ' user ' ) );
52
+ return new PostResource ( $ post );
64
53
}
65
54
66
55
/**
67
- * Update the specified resource in storage.
56
+ * Update the specified post in storage.
68
57
*
69
58
* @param \Illuminate\Http\Request $request
70
59
* @param Post $post
@@ -83,19 +72,22 @@ public function update(Request $request, Post $post)
83
72
'description.regex ' => 'No HTML tags are allowed. '
84
73
]);
85
74
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 );
87
79
}
88
80
$ post ->update ([
89
81
'user_id ' => $ request ->user_id ,
90
82
'title ' => $ request ->title ,
91
83
'description ' => $ request ->description
92
84
]);;
93
85
94
- return response ()-> json ( $ post-> load ( ' user ' ) );
86
+ return new PostResource ( $ post );
95
87
}
96
88
97
89
/**
98
- * Remove the specified resource from storage.
90
+ * Remove the specified post from storage.
99
91
*
100
92
* @param Post $post
101
93
* @return \Illuminate\Http\Response
0 commit comments