From dccf9bba17be36f9f00b5f0d0e7cbb7c2a112c06 Mon Sep 17 00:00:00 2001
From: W <W>
Date: Sun, 24 Feb 2019 02:49:57 +0700
Subject: [PATCH] fixing api tas

---
 app/Http/Controllers/TasksController.php | 43 ++++++++++++++++++++----
 app/Tasks.php                            |  2 +-
 routes/api.php                           |  2 ++
 3 files changed, 40 insertions(+), 7 deletions(-)

diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php
index ef9c282..590382f 100644
--- a/app/Http/Controllers/TasksController.php
+++ b/app/Http/Controllers/TasksController.php
@@ -6,6 +6,7 @@ use Illuminate\Http\Request;
 use App\Tasks;
 use App\Groups;
 use App\TasksMember;
+use Illuminate\Support\Facades\Config;
 use Illuminate\Support\Facades\DB;
 use function GuzzleHttp\json_encode;
 class TasksController extends Controller
@@ -20,28 +21,29 @@ class TasksController extends Controller
     public function store(Request $request)
     {
         //
-        $user = $request->user();
         $result = $request->has([
             'group_id',
             'task_name',
             'description',
-            'kanban_status'
+            'kanban_status',
+            'work_hour'
         ]);
         if ($result) {
             $form = [
                 'group_id' => $request->group_id,
                 'task_name' => $request->task_name,
                 'description' => $request->description,
-                'kanban_status' => $request->kanban_status
+                'kanban_status' => $request->kanban_status,
+                'work_hour' => $request->work_hour
             ];
             $task = Tasks::create($form);
             return response(json_encode([
-                'data' => $task->toArray(),
-                'msg' => ['Success']
+                'data' => NULL,
+                'statusMessage' => 'success'
             ]), 200);
         } else {
             return response(json_encode([
-                'err' => ['Bad Request']
+                'statusMessage' => 'error'
             ]), 400);
         }
     }
@@ -171,4 +173,33 @@ class TasksController extends Controller
             ]), 200);
         }
     }
+
+
+
+    public function moveTask($taskId) {
+        $task = Tasks::where([
+            'id' => $taskId
+        ])->first();
+        if (is_null($task)) {
+            return response(json_encode([
+                'data' => NULL,
+                'statusMessage' => 'error'
+            ]), 404); 
+        } else {
+
+            switch($task->kanban_status) {
+                case Config::get('constants.KANBAN_STATUS.OPEN'): 
+                    $task->kanban_status = Config::get('constants.KANBAN_STATUS.WIP');
+                    break;
+                case Config::get('constants.KANBAN_STATUS.WIP'): 
+                    $task->kanban_status = Config::get('constants.KANBAN_STATUS.DONE');
+                    break;
+            }
+            $task->save();
+            return response(json_encode([
+                'data' => NULL,
+                'statusMessage' => 'success'
+            ]), 200); 
+        }
+    }
 }
diff --git a/app/Tasks.php b/app/Tasks.php
index e0a2a33..2ecce70 100644
--- a/app/Tasks.php
+++ b/app/Tasks.php
@@ -9,7 +9,7 @@ class Tasks extends Model
 
     protected $fillable = [
         'group_id', 'task_name',
-        'description', 'kanban_status'
+        'description', 'kanban_status', 'work_hour'
     ];
 
     public function groups()
diff --git a/routes/api.php b/routes/api.php
index 1a09b56..03b7208 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -33,6 +33,8 @@ Route::get('/tasks/{taskId}', 'TasksController@show');
 Route::put('/tasks/{taskId}', 'TasksController@update');
 Route::delete('/tasks/{taskId}', 'TasksController@destroy'); //Bisa //Hapus Task
 
+Route::put('/task/move/{taskId}', 'TasksController@moveTask'); 
+
 //Task Member
 Route::delete('/task_member', 'TasksMemberController@removeMember'); //Bisa //delete member di task
 Route::post('/task_member', 'TasksMemberController@addMember'); //Bisa //Tambah member task
-- 
GitLab