Browse Source

显示和修改namerule的组合规则

kely 11 months ago
parent
commit
1db7320c2b

+ 26 - 0
app/Http/Controllers/API/NameRuleController.php

@@ -6,7 +6,9 @@ use App\Http\Controllers\Controller;
 use App\Http\Requests\API\NamingRule\AutonameRequest;
 use App\Http\Requests\API\NamingRule\CombinationSettingRequest;
 use App\Http\Requests\API\NamingRule\CreateOrUpdateRequest;
+use App\Http\Resources\API\NamingRuleCombinationResource;
 use App\Http\Resources\API\NamingRuleResource;
+use App\Models\CustomField;
 use App\Models\NamingRule;
 use App\Models\Project;
 use Illuminate\Http\Request;
@@ -71,6 +73,16 @@ class NameRuleController extends Controller
      */
     public function destroy(string $id)
     {
+        DB::transaction(function () use ($id) {
+            $namerule = NamingRule::query()->allowed()->findOrFail($id);
+            $namerule->delete();
+
+            $customfield = CustomField::query()->where('group', $id);
+            if (!empty($customfield)) {
+                $customfield->delete();
+            }
+        });
+            return $this->noContent();
 
     }
 
@@ -98,6 +110,20 @@ class NameRuleController extends Controller
         return $this->noContent();
     }
 
+    public function combinationShow(string $id){
+        $nameRule=NamingRule::query()->allowed()->findOrFail($id);
+
+        return new NamingRuleCombinationResource($nameRule);
+    }
+
+    public function combinationUpdate(CombinationSettingRequest $request, string $id)
+    {
+        $namingRule = NamingRule::query()->allowed()->findOrFail($id);
+        $namingRule->combination_rules = $request->all();
+        $namingRule->save();
+        return $this->noContent();
+    }
+
     public function autoname(AutonameRequest $request, string $id)
     {
         $namingRule = NamingRule::query()->allowed()->findOrFail($id);

+ 25 - 0
app/Http/Resources/API/NamingRuleCombinationResource.php

@@ -0,0 +1,25 @@
+<?php
+/**
+ * Created by IntelliJ IDEA.
+ * User: kelyliang
+ * Date: 2024/3/26
+ * Time: 上午 10:26
+ */
+
+namespace App\Http\Resources\API;
+
+
+use Illuminate\Http\Request;
+use Illuminate\Http\Resources\Json\JsonResource;
+
+class NamingRuleCombinationResource extends JsonResource
+{
+    public function toArray(Request $request): array
+    {
+        return [
+            'id' => $this->id,
+            'name' => $this->name,
+            'combination' => $this->combination_rules,
+        ];
+    }
+}

+ 4 - 0
routes/api.php

@@ -86,6 +86,10 @@ Route::middleware(['auth:sanctum'])->group(function () {
             ->name("naming-rule.enabled");
         Route::post("naming-rule/{naming_rule}/combination", [API\NameRuleController::class, "combinationSetting"])
             ->name("naming-rule.combination-setting");
+        Route::get("naming-rule/{naming_rule}/combination/show", [API\NameRuleController::class, "combinationShow"])
+            ->name("naming-rule.combination-show");
+        Route::patch("naming-rule/{naming_rule}/combination/update", [API\NameRuleController::class, "combinationUpdate"])
+            ->name("naming-rule.combination-update");
         Route::post("naming-rule/{name_rule}/autoname", [API\NameRuleController::class, "autoname"])
             ->name("name-rule.autoname");