]> git.localhorst.tv Git - alttp.git/blobdiff - app/Http/Controllers/TechniqueController.php
tech relations
[alttp.git] / app / Http / Controllers / TechniqueController.php
index 97a45f047a9bb6d5635480111afd9206690a4102..98623259f494f701e78a8fa3dedcd21da7350ccf 100644 (file)
@@ -3,13 +3,38 @@
 namespace App\Http\Controllers;
 
 use App\Models\Technique;
+use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Http\Request;
 
 class TechniqueController extends Controller
 {
 
+       public function search(Request $request) {
+               $validatedData = $request->validate([
+                       'phrase' => 'string|nullable',
+                       'type' => 'string|nullable',
+               ]);
+
+               $techs = Technique::where('index', '=', 1);
+
+               if (!empty($validatedData['type'])) {
+                       $techs = $techs->where('type', '=', $validatedData['type']);
+               }
+
+               if (!empty($validatedData['phrase'])) {
+                       $search = $validatedData['phrase'];
+                       $techs = $techs->where(function (Builder $query) use ($search) {
+                               $query->where('title', 'LIKE', '%'.$search.'%')
+                               ->orWhere('short', 'LIKE', '%'.$search.'%');
+                       });
+               }
+
+               return $techs->get()->toJson();
+       }
+
        public function single(Request $request, Technique $tech) {
                $this->authorize('view', $tech);
+               $tech->load(['chapters', 'relations']);
                return $tech->toJson();
        }