Browse Source

kanban中任务分配给用户接口

kely 11 months ago
parent
commit
5f8cd018cc

+ 18 - 0
app/Http/Controllers/API/TaskController.php

@@ -3,6 +3,7 @@
 namespace App\Http\Controllers\API;
 
 use App\Http\Controllers\Controller;
+use App\Http\Requests\API\Task\AssignRequest;
 use App\Http\Requests\API\Task\BatchCreateItemRules;
 use App\Http\Requests\API\Task\BatchCreateRequest;
 use App\Http\Requests\API\Task\CreateOrUpdateRequest;
@@ -192,6 +193,23 @@ class TaskController extends Controller
 
     }
 
+    public function assign(AssignRequest $request,string $id){
+        $task = Task::query()->allowed($id)->findOrFail($id);
+        $task->fill([
+            'assign'=>$request->get('assign'),
+            'end'=>$request->get('deadline'),
+        ]);
+
+        $changes = ModelChangeDetector::detector(ActionObjectType::TASK, $task);
+        $task->save();
+
+        ActionRepository::createByTask(
+            $task, ObjectAction::ASSIGNED, $request->get("comment"), objectChanges: $changes
+        );
+
+        return $this->noContent();
+    }
+
     /**
      * Update the specified resource in storage.
      */

+ 35 - 0
app/Http/Requests/API/Task/AssignRequest.php

@@ -0,0 +1,35 @@
+<?php
+/**
+ * Created by IntelliJ IDEA.
+ * User: kelyliang
+ * Date: 2024/4/8
+ * Time: 上午 11:09
+ */
+
+namespace App\Http\Requests\API\Task;
+
+
+use App\Http\Requests\RuleHelper;
+use Illuminate\Foundation\Http\FormRequest;
+use Illuminate\Validation\Rule;
+
+class AssignRequest extends FormRequest
+{
+    use RuleHelper;
+
+
+    public function authorize(): bool
+    {
+        return true;
+    }
+
+    public function rules(): array
+    {
+        return $rules =  [
+            'assign' => [
+                Rule::exists('users', 'id')->where($this->userCompanyWhere()),
+            ],
+        ];
+
+    }
+}

+ 3 - 1
routes/api.php

@@ -88,6 +88,8 @@ Route::middleware(['auth:sanctum'])->group(function () {
         Route::patch("task/{task}/done", [API\TaskController::class, "done"])->name("task.done");
         Route::patch("task/{task}/cancel", [API\TaskController::class, "cancel"])->name("task.cancel");
         Route::patch("task/{task}/wait", [API\TaskController::class, "wait"])->name("task.wait");
+        Route::post("task-batch-create", [API\TaskController::class, "batchStore"])->name("task.batch-store");
+        Route::patch("task/{task}/assign", [API\TaskController::class, "assign"])->name("task.assign");
 
         Route::get("permission", [API\PermissionController::class, 'groupPermissions'])->name("permission.group-permission");
 
@@ -123,7 +125,7 @@ Route::middleware(['auth:sanctum'])->group(function () {
         Route::get("plan-by-assets", [API\PlanController::class, "byAssets"])->name("plan.by-assets");
         Route::get("requirement-by-assets", [API\RequirementController::class, "byAssets"])->name("requirement.by-assets");
 
-        Route::post("task-batch-create", [API\TaskController::class, "batchStore"])->name("task.batch-store");
+
 
         Route::get("project-tree/{project_id}", [API\ProjectController::class, "treeIndex"])->name("project.project-tree");