1
0
Fork 0
internet-everythings-agricu.../app/Http/Controllers/Api/RegionController.php

65 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\{Region, RegionCategory};
use App\Http\Resources\{RegionResource, RegionCategoryResource, RegionPlantResource, PlantHarvestResource};
use App\Filters\Admin\RegionFilter;
class RegionController extends Controller
{
public function category(Request $request)
{
$list = RegionCategory::query()->show()->sort()->get();
return $this->json(RegionCategoryResource::collection($list));
}
public function index(Request $request)
{
$query = Region::with(['currentPlant', 'monitorModes'])->filter($request->all(), RegionFilter::class)->sort()->show();
$list = $query->paginate($request->input('per_page'));
return $this->json(RegionResource::collection($list));
}
public function show($id)
{
$info = Region::with(['currentPlant', 'monitorModes'])->show()->findOrFail($id);
return $this->json(RegionResource::make($info));
}
public function plants($id, Request $request)
{
$info = Region::show()->findOrFail($id);
$query = $info->plants();
$per = $request->input('per_page');
if ($per == -1) {
$list = $query->get();
} else {
$list = $query->paginate($per);
}
return $this->json(RegionPlantResource::collection($list));
}
public function harvests($id, Request $request)
{
$info = Region::show()->findOrFail($id);
$query = $info->harvests()->filter($request->all());
$per = $request->input('per_page');
if ($per == -1) {
$list = $query->get();
} else {
$list = $query->paginate($per);
}
return $this->json(PlantHarvestResource::collection($list));
}
}