33namespace App \Http \Controllers ;
44
55use App \Task ;
6- use App \User ;
7- use Illuminate \Http \Request ;
8- use Illuminate \Support \Facades \Auth ;
9- use App \Http \Requests \UpdateUserTask ;
6+ use App \Http \Requests \TaskRequest ;
107
118class TaskController extends Controller
129{
10+ public function __construct ()
11+ {
12+ $ this ->authorizeResource (Task::class, 'task ' );
13+ }
14+
1315 /**
1416 * Display a listing of the resource.
1517 *
1618 * @return \Illuminate\Http\Response
1719 */
1820 public function index ()
1921 {
20- $ tasks = Task:: where ( ' user_id ' , Auth:: id () )->latest ()->paginate (10 );
22+ $ tasks = auth ()-> user ()-> tasks ( )->latest ()->paginate (10 );
2123 return view ('tasks.index ' )->with ('tasks ' , $ tasks );
2224 }
2325
@@ -34,21 +36,14 @@ public function create()
3436 /**
3537 * Store a newly created resource in storage.
3638 *
37- * @param \Illuminate\Http\Request $request
39+ * @param \Illuminate\Http\Request $request
3840 * @return \Illuminate\Http\Response
3941 */
40- public function store (Request $ request )
42+ public function store (TaskRequest $ request )
4143 {
42-
43- $ task = $ this ->validate (request (), [
44- 'name ' => 'required|max:150; ' ,
45- ]);
46-
47-
48- Task::create ([
44+ auth ()->user ()->tasks ()->create ([
4945 'name ' => request ('name ' ),
5046 'description ' => request ('description ' ),
51- 'user_id ' => Auth::id (),
5247 ]);
5348
5449 return back ()->with ('success ' , 'task has been added ' );
@@ -57,79 +52,69 @@ public function store(Request $request)
5752 /**
5853 * Display the specified resource.
5954 *
60- * @param \App\Task $task
55+ * @param \App\Task $task
6156 * @return \Illuminate\Http\Response
6257 */
6358 public function show (Task $ task )
6459 {
65- if ($ task ->user_id == Auth::id ()){
66- return view ('tasks.show ' )->with ('task ' , $ task );
67- }
60+ return view ('tasks.show ' )->with ('task ' , $ task );
6861 }
6962
7063 /**
7164 * Show the form for editing the specified resource.
7265 *
73- * @param \App\Task $task
66+ * @param \App\Task $task
7467 * @return \Illuminate\Http\Response
7568 */
7669 public function edit (Task $ task )
7770 {
78- if ($ task ->user_id == Auth::id ()){
79- return view ('tasks.edit ' )->with ('task ' , $ task );
80- }
71+ return view ('tasks.edit ' )->with ('task ' , $ task );
8172 }
8273
8374 /**
8475 * Update the specified resource in storage.
8576 *
86- * @param integer $id
87- * @param \Illuminate\Http\Request $request
77+ * @param \App\Task $task
78+ * @param \Illuminate\Http\Request $request
8879 * @return \Illuminate\Http\Response
8980 */
90- public function update ($ id , UpdateUserTask $ request )
91- {
92- $ task = Task::findOrFail ($ id );
93- if ($ request ->user_id == Auth::id ()){
94- $ task ->update ($ request ->all ());
95- }
81+ public function update (Task $ task , TaskRequest $ request )
82+ {
83+ $ task ->update ($ request ->all ());
84+
9685 return back ()->with ('success ' , 'task has been updated ' );
9786 }
9887
9988 /**
10089 * Remove the specified resource from storage.
10190 *
102- * @param integer $id
91+ * @param \App\Task $task
10392 * @return \Illuminate\Http\Response
10493 */
105- public function destroy ($ id )
94+ public function destroy (Task $ task )
10695 {
107- $ task = Task::find ($ id );
108- if ($ task ->user_id == Auth::id ()){
109- $ task ->delete ();
96+ $ task ->delete ();
11097
111- return redirect ('/tasks ' )->with ('success ' , 'Task has been deleted!! ' );
112- }
98+ return redirect ('/tasks ' )->with ('success ' , 'Task has been deleted! ' );
11399 }
114-
100+
115101 /**
116102 * complete the task
117103 *
118- * @param integer $id
104+ * @param integer $id
119105 * @return \Illuminate\Http\Response
120106 */
121107 public function complete ($ id )
122108 {
123- $ task = Task::find ($ id );
124- if ($ task ->user_id == Auth::id ()){
125- if (!$ task ->complete ){
126- $ task ->complete = true ;
127- }else {
128- $ task ->complete = false ;
129- }
130- $ task ->save ();
131-
132- return redirect ('/tasks ' )->with ('success ' , 'Task has been completed! ' );
109+ $ task = auth ()->user ()->tasks ()->findOrFail ($ id );
110+
111+ if (!$ task ->is_completed ) {
112+ $ task ->is_completed = true ;
113+ } else {
114+ $ task ->is_completed = false ;
133115 }
116+ $ task ->save ();
117+
118+ return redirect ('/tasks ' )->with ('success ' , 'Task has been completed! ' );
134119 }
135120}
0 commit comments