From 316a98dc15186a586a5af376ee75cffa49b70c3f Mon Sep 17 00:00:00 2001 From: althaf Date: Fri, 5 Jun 2026 14:38:20 +0700 Subject: [PATCH] refoldering API Controllers --- .../Api/DesaKelurahanController.php | 107 --------- .../Ekosistem/ValueBasisDataController.php | 4 +- .../Controllers/Api/FacilitatorController.php | 123 ---------- .../Api/KabupatenKotaController.php | 97 -------- .../Controllers/Api/KecamatanController.php | 101 --------- .../Controllers/Api/KomoditasController.php | 69 ------ .../Api/{ => Konfigurasi}/AuthController.php | 4 +- .../DistributionController.php | 2 +- .../InspeksiLahanController.php | 2 +- .../InspeksiTanamanController.php | 2 +- .../{ => Produktivitas}/LahanController.php | 2 +- .../OfftakerController.php | 2 +- .../{ => Produktivitas}/PanenController.php | 2 +- .../{ => Produktivitas}/ProfileController.php | 2 +- .../Api/Produktivitas/TanamanController.php | 210 ++++++++++++++++++ .../Controllers/Api/ProvinsiController.php | 94 -------- .../ekosistem/kolom-basis-data/edit.blade.php | 2 +- routes/api.php | 41 ++-- 18 files changed, 246 insertions(+), 620 deletions(-) delete mode 100644 app/Http/Controllers/Api/DesaKelurahanController.php delete mode 100644 app/Http/Controllers/Api/FacilitatorController.php delete mode 100644 app/Http/Controllers/Api/KabupatenKotaController.php delete mode 100644 app/Http/Controllers/Api/KecamatanController.php delete mode 100644 app/Http/Controllers/Api/KomoditasController.php rename app/Http/Controllers/Api/{ => Konfigurasi}/AuthController.php (98%) rename app/Http/Controllers/Api/{ => Produktivitas}/DistributionController.php (98%) rename app/Http/Controllers/Api/{ => Produktivitas}/InspeksiLahanController.php (99%) rename app/Http/Controllers/Api/{ => Produktivitas}/InspeksiTanamanController.php (99%) rename app/Http/Controllers/Api/{ => Produktivitas}/LahanController.php (99%) rename app/Http/Controllers/Api/{ => Produktivitas}/OfftakerController.php (98%) rename app/Http/Controllers/Api/{ => Produktivitas}/PanenController.php (98%) rename app/Http/Controllers/Api/{ => Produktivitas}/ProfileController.php (99%) create mode 100644 app/Http/Controllers/Api/Produktivitas/TanamanController.php delete mode 100644 app/Http/Controllers/Api/ProvinsiController.php diff --git a/app/Http/Controllers/Api/DesaKelurahanController.php b/app/Http/Controllers/Api/DesaKelurahanController.php deleted file mode 100644 index ee0d285..0000000 --- a/app/Http/Controllers/Api/DesaKelurahanController.php +++ /dev/null @@ -1,107 +0,0 @@ -integer('size') ?: 10; - - $master = DesaKelurahan::with('kecamatan') - ->when($request->search, function ($q, $search) { - $search = strtolower($search); - $q->where(function ($query) use ($search) { - $query->whereRaw('lower(kode) like ?', ["%{$search}%"]) - ->orWhereRaw('lower(nama) like ?', ["%{$search}%"]); - }); - }) - ->when($request->kecamatan_id, fn($q,$v) => $q->where('kecamatan_id',$v)) - ->when($request->kabupaten_kota_id, fn ($q, $v) => - $q->whereHas('kecamatan', fn ($k) => - $k->where('kabupaten_kota_id', $v) - ) - ) - ->when($request->provinsi_id, fn ($q, $v) => - $q->whereHas('kecamatan.kabupatenkota', fn ($k) => - $k->where('provinsi_id', $v) - ) - ); - - if ($request->filled('sort')) { - $dir = str_starts_with($request->sort, '-') ? 'desc' : 'asc'; - $column = ltrim($request->sort, '-'); - - $allowed = ['id', 'kode', 'nama']; - - if (in_array($column, $allowed)) { - $master->orderBy($column, $dir); - } - } else { - $master->orderBy('kode', 'asc'); - } - - $masterList = $master->paginate($size); - - return DesaKelurahanResource::collection($masterList); - } - - /** - * Show the form for creating a new resource. - */ - public function create() - { - // - } - - /** - * Store a newly created resource in storage. - */ - public function store(Request $request) - { - // - } - - /** - * Display the specified resource. - */ - public function show(string $id): JsonResponse - { - return response()->json(DesaKelurahanResource::make(DesaKelurahan::with('kecamatan')->findOrFail($id))); - } - - /** - * Show the form for editing the specified resource. - */ - public function edit(string $id) - { - // - } - - /** - * Update the specified resource in storage. - */ - public function update(Request $request, string $id) - { - // - } - - /** - * Remove the specified resource from storage. - */ - public function destroy(string $id) - { - // - } -} diff --git a/app/Http/Controllers/Api/Ekosistem/ValueBasisDataController.php b/app/Http/Controllers/Api/Ekosistem/ValueBasisDataController.php index 2990981..2c5bf01 100644 --- a/app/Http/Controllers/Api/Ekosistem/ValueBasisDataController.php +++ b/app/Http/Controllers/Api/Ekosistem/ValueBasisDataController.php @@ -231,7 +231,7 @@ class ValueBasisDataController extends Controller /** * Update the specified resource in storage. */ - public function update(Request $request, string $id): JsonResponse + public function update(Request $request, string $tabelId, string $id): JsonResponse { if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) { abort(403); @@ -318,7 +318,7 @@ class ValueBasisDataController extends Controller /** * Remove the specified resource from storage. */ - public function destroy(string $tabelId, string $id): JsonResponse + public function destroy(Request $request, string $tabelId, string $id): JsonResponse { if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) { abort(403); diff --git a/app/Http/Controllers/Api/FacilitatorController.php b/app/Http/Controllers/Api/FacilitatorController.php deleted file mode 100644 index 01c37b8..0000000 --- a/app/Http/Controllers/Api/FacilitatorController.php +++ /dev/null @@ -1,123 +0,0 @@ -get('size') ?: 10; - $query = Facilitator::query(); - - // Fitur Pencarian (berdasarkan nama atau email) - if ($request->has('search')) { - $s = strtolower($request->get('search')); - $query->where(function($q) use ($s) { - $q->whereRaw('lower(full_name) like (?)', ["%{$s}%"]) - ->orWhereRaw('lower(user_email) like (?)', ["%{$s}%"]); - }); - } - - // Fitur Sorting (contoh: ?sort=-full_name) - if ($request->has('sort')) { - $order = $request->get('sort'); - $firstChar = substr($order, 0, 1); - $dir = $firstChar === '-' ? 'desc' : 'asc'; - $field = $firstChar === '-' ? substr($order, 1) : $order; - $query->orderBy($field, $dir); - } - - // Fitur Filter Wilayah - if ($request->has('province')) { - $query->where('province', $request->get('province')); - } - if ($request->has('regency')) { - $query->where('regency', $request->get('regency')); - } - if ($request->has('is_active')) { - $query->where('is_active', $request->boolean('is_active')); - } - - $users = $query->paginate($size); - - return response()->json($users); - } - - /** - * Menyimpan data user detail baru. - */ - public function store(Request $request): JsonResponse - { - - $validated = $request->validate([ - 'user_email' => ['required', 'email', 'unique:facilitator,user_email'], - 'full_name' => ['required', 'string', 'max:255'], - 'role' => ['required', 'string'], - 'village' => ['nullable', 'string'], - 'district' => ['nullable', 'string'], - 'regency' => ['nullable', 'string'], - 'province' => ['nullable', 'string'], - 'phone' => ['nullable', 'string'], - 'is_active' => ['boolean'], - ]); - - $user = Facilitator::create($validated); - - return response()->json($user, 201); - } - - /** - * Menampilkan detail satu user. - */ - public function show(string $id): JsonResponse - { - - $user = Facilitator::findOrFail($id); - return response()->json($user); - } - - /** - * Memperbarui data user detail. - */ - public function update(Request $request, string $id): JsonResponse - { - - $user = Facilitator::findOrFail($id); - - $validated = $request->validate([ - 'user_email' => ['required', 'email', 'unique:facilitator,user_email,' . $id], - 'full_name' => ['required', 'string', 'max:255'], - 'role' => ['required', 'string'], - 'village' => ['nullable', 'string'], - 'district' => ['nullable', 'string'], - 'regency' => ['nullable', 'string'], - 'province' => ['nullable', 'string'], - 'phone' => ['nullable', 'string'], - 'is_active' => ['boolean'], - ]); - - $user->update($validated); - - return response()->json($user); - } - - /** - * Menghapus data user detail. - */ - public function destroy(string $id): JsonResponse - { - - $user = Facilitator::findOrFail($id); - $user->delete(); - - return response()->json(['message' => 'User deleted successfully']); - } -} \ No newline at end of file diff --git a/app/Http/Controllers/Api/KabupatenKotaController.php b/app/Http/Controllers/Api/KabupatenKotaController.php deleted file mode 100644 index d8a6e81..0000000 --- a/app/Http/Controllers/Api/KabupatenKotaController.php +++ /dev/null @@ -1,97 +0,0 @@ -integer('size') ?: 10; - - $master = KabupatenKota::with('provinsi') - ->when($request->search, function ($q, $search) { - $search = strtolower($search); - $q->where(function ($query) use ($search) { - $query->whereRaw('lower(kode) like ?', ["%{$search}%"]) - ->orWhereRaw('lower(nama) like ?', ["%{$search}%"]); - }); - }) - ->when($request->provinsi_id, fn($q,$v) => $q->where('provinsi_id',$v)); - - if ($request->filled('sort')) { - $dir = str_starts_with($request->sort, '-') ? 'desc' : 'asc'; - $column = ltrim($request->sort, '-'); - - $allowed = ['id', 'kode', 'nama']; - - if (in_array($column, $allowed)) { - $master->orderBy($column, $dir); - } - } else { - $master->orderBy('kode', 'asc'); - } - - $masterList = $master->paginate($size); - - return KabupatenKotaResource::collection($masterList); - } - - /** - * Show the form for creating a new resource. - */ - public function create() - { - // - } - - /** - * Store a newly created resource in storage. - */ - public function store(Request $request) - { - // - } - - /** - * Display the specified resource. - */ - public function show(string $id): JsonResponse - { - return response()->json(KabupatenKotaResource::make(KabupatenKota::with('provinsi')->findOrFail($id))); - } - - /** - * Show the form for editing the specified resource. - */ - public function edit(string $id) - { - // - } - - /** - * Update the specified resource in storage. - */ - public function update(Request $request, string $id) - { - // - } - - /** - * Remove the specified resource from storage. - */ - public function destroy(string $id) - { - // - } -} diff --git a/app/Http/Controllers/Api/KecamatanController.php b/app/Http/Controllers/Api/KecamatanController.php deleted file mode 100644 index 568a936..0000000 --- a/app/Http/Controllers/Api/KecamatanController.php +++ /dev/null @@ -1,101 +0,0 @@ -integer('size') ?: 10; - - $master = Kecamatan::with('kabupatenKota') - ->when($request->search, function ($q, $search) { - $search = strtolower($search); - $q->where(function ($query) use ($search) { - $query->whereRaw('lower(kode) like ?', ["%{$search}%"]) - ->orWhereRaw('lower(nama) like ?', ["%{$search}%"]); - }); - }) - ->when($request->kabupaten_kota_id, fn($q,$v) => $q->where('kabupaten_kota_id',$v)) - ->when($request->provinsi_id, fn ($q, $v) => - $q->whereHas('kabupatenKota.provinsi', fn ($k) => - $k->where('provinsi_id', $v) - ) - ); - - if ($request->filled('sort')) { - $dir = str_starts_with($request->sort, '-') ? 'desc' : 'asc'; - $column = ltrim($request->sort, '-'); - - $allowed = ['id', 'kode', 'nama']; - - if (in_array($column, $allowed)) { - $master->orderBy($column, $dir); - } - } else { - $master->orderBy('kode', 'asc'); - } - - $masterList = $master->paginate($size); - - return KecamatanResource::collection($masterList); - } - - /** - * Show the form for creating a new resource. - */ - public function create() - { - // - } - - /** - * Store a newly created resource in storage. - */ - public function store(Request $request) - { - // - } - - /** - * Display the specified resource. - */ - public function show(string $id): JsonResponse - { - return response()->json(KecamatanResource::make(Kecamatan::with('kabupatenKota')->findOrFail($id))); - } - - /** - * Show the form for editing the specified resource. - */ - public function edit(string $id) - { - // - } - - /** - * Update the specified resource in storage. - */ - public function update(Request $request, string $id) - { - // - } - - /** - * Remove the specified resource from storage. - */ - public function destroy(string $id) - { - // - } -} diff --git a/app/Http/Controllers/Api/KomoditasController.php b/app/Http/Controllers/Api/KomoditasController.php deleted file mode 100644 index 83b4569..0000000 --- a/app/Http/Controllers/Api/KomoditasController.php +++ /dev/null @@ -1,69 +0,0 @@ -json(KomoditasResource::make(Komoditas::findOrFail($id))); - } - - /** - * Show the form for editing the specified resource. - */ - public function edit(string $id) - { - // - } - - /** - * Update the specified resource in storage. - */ - public function update(Request $request, string $id) - { - // - } - - /** - * Remove the specified resource from storage. - */ - public function destroy(string $id) - { - // - } -} diff --git a/app/Http/Controllers/Api/AuthController.php b/app/Http/Controllers/Api/Konfigurasi/AuthController.php similarity index 98% rename from app/Http/Controllers/Api/AuthController.php rename to app/Http/Controllers/Api/Konfigurasi/AuthController.php index a3d16b3..d9e6ff0 100644 --- a/app/Http/Controllers/Api/AuthController.php +++ b/app/Http/Controllers/Api/Konfigurasi/AuthController.php @@ -1,16 +1,14 @@ profile; + $profileId = $user->role === 'petani' ? $profile->id : $request->profile_id; + + $size = $request->integer('size') ?: 10; + + $tanamanList = Tanaman::when($request->search, function ($q, $search) { + $search = strtolower($search); + $q->whereRaw('lower(nama) like ?', ["%{$search}%"]); + }) + ->when($profileId, fn($q,$v) => $q->where('profile_id',$v)) + ->when($request->status_kepemilikan, fn($q,$v) => $q->where('status_kepemilikan',$v)) + ->when($request->lahan_id, fn($q,$v) => $q->where('lahan_id',$v)) + ->when($request->komoditas_id, fn($q,$v) => $q->where('komoditas_id',$v)) + ->when($request->desa_kelurahan_id, fn($q,$v) => + $q->whereHas('lahan', fn($k) + => $k->where('desa_kelurahan_id',$v) + ) + ) + ->when($request->kecamatan_id, fn ($q, $v) => + $q->whereHas('lahan.desaKelurahan', fn ($k) => + $k->where('kecamatan_id', $v) + ) + ) + ->when($request->kabupaten_kota_id, fn ($q, $v) => + $q->whereHas('lahan.desaKelurahan.kecamatan', fn ($k) => + $k->where('kabupaten_kota_id', $v) + ) + ) + ->when($request->provinsi_id, fn ($q, $v) => + $q->whereHas('lahan.desaKelurahan.kecamatan.kabupatenkota', fn ($k) => + $k->where('provinsi_id', $v) + ) + ); + + if ($request->filled('sort')) { + $dir = str_starts_with($request->sort, '-') ? 'desc' : 'asc'; + $column = ltrim($request->sort, '-'); + + $allowed = ['id', 'nama']; + + if (in_array($column, $allowed)) { + $tanamanList->orderBy($column, $dir); + } + } else { + $tanamanList->orderBy('nama', 'asc'); + } + + $tanamanList = $tanamanList->paginate($size); + + return TanamanResource::collection($tanamanList); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + // + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request): JsonResponse + { + if (!Gate::any(['petani', 'fasilitator','super_admin'])) { + abort(403); + } + + $user = Auth::user(); + $profile = $user->profile; + $profileId = $user->role === 'petani' ? $profile->id : $request->profile_id; + + $request->merge([ + 'komoditas_id' => $request->input('komoditas.id') ?? $request->input('komoditas_id'), + 'lahan_id' => $request->input('lahan.id') ?? $request->input('lahan_id'), + 'profile_id' => $profileId, + ]); + + $validated = $request->validate([ + 'nama' => ['required', 'string', 'max:255'], + 'komoditas_id' => ['required', 'exists:master_komoditas,id'], + 'lahan_id' => [ + 'required', + Rule::exists('map_lahan', 'id')->where(function ($query) use ($profileId) { + $query->where('profile_id', $profileId) + ->whereNull('deleted_at'); + }), + ], + 'latitude' => ['nullable', 'numeric', 'between:-90,90', 'required_with:longitude'], + 'longitude' => ['nullable', 'numeric', 'between:-180,180', 'required_with:latitude'], + 'kondisi_tanaman' => ['nullable', 'string', new Enum(KondisiTanaman::class)], + ]); + + $tanaman = Tanaman::create([ + ...$validated, + 'profile_id' => $profile->id, + ]); + + return (new TanamanResource($tanaman)) + ->response() + ->setStatusCode(201); + } + + /** + * Display the specified resource. + */ + public function show(string $id): JsonResponse + { + if (!Gate::any(['petani', 'fasilitator','super_admin'])) { + abort(403); + } + + $tanaman = Tanaman::findOrFail($id); + if ($tanaman->profile_id !== Auth::user()->profile->id) { + return response()->json(['message' => 'Unauthorized'], 403); + } + + return (new TanamanResource($tanaman))->response(); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(string $id) + { + // + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, string $id): JsonResponse + { + if (!Gate::any(['petani', 'fasilitator','super_admin'])) { + abort(403); + } + $tanaman = Tanaman::findOrFail($id); + if ($tanaman->profile_id !== Auth::user()->profile->id) { + return response()->json(['message' => 'Unauthorized'], 403); + } + + $profile = Auth::user()->profile; + + $validated = $request->validate([ + 'nama' => ['required', 'string', 'max:255'], + 'komoditas_id' => ['required', 'exists:master_komoditas,id'], + 'lahan_id' => [ + 'required', + Rule::exists('map_lahan', 'id')->where(function ($query) use ($profile) { + $query->where('profile_id', $profile->id) + ->whereNull('deleted_at'); + }), + ], + 'latitude' => ['nullable', 'numeric', 'between:-90,90', 'required_with:longitude'], + 'longitude' => ['nullable', 'numeric', 'between:-180,180', 'required_with:latitude'], + 'kondisi_tanaman' => ['nullable', 'string', new Enum(KondisiTanaman::class)], + ]); + + $tanaman->update($validated); + + return (new TanamanResource($tanaman))->response(); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(string $id): JsonResponse + { + if (!Gate::any(['petani', 'fasilitator','super_admin'])) { + abort(403); + } + $tanaman = Tanaman::findOrFail($id); + if ($tanaman->profile_id !== Auth::user()->profile->id) { + return response()->json(['message' => 'Unauthorized'], 403); + } + + $tanaman->delete(); + + return response()->json(null, 204); + } +} diff --git a/app/Http/Controllers/Api/ProvinsiController.php b/app/Http/Controllers/Api/ProvinsiController.php deleted file mode 100644 index c8df6c1..0000000 --- a/app/Http/Controllers/Api/ProvinsiController.php +++ /dev/null @@ -1,94 +0,0 @@ -integer('size') ?: 10; - - $master = Provinsi::when($request->search, function ($q, $search) { - $search = strtolower($search); - $q->where(function ($query) use ($search) { - $query->whereRaw('lower(kode) like ?', ["%{$search}%"]) - ->orWhereRaw('lower(nama) like ?', ["%{$search}%"]); - }); - }); - - if ($request->filled('sort')) { - $dir = str_starts_with($request->sort, '-') ? 'desc' : 'asc'; - $column = ltrim($request->sort, '-'); - - $allowed = ['id', 'kode', 'nama']; - - if (in_array($column, $allowed)) { - $master->orderBy($column, $dir); - } - } else { - $master->orderBy('kode', 'asc'); - } - - $masterList = $master->paginate($size); - - return ProvinsiResource::collection($masterList); - } - - /** - * Show the form for creating a new resource. - */ - public function create() - { - // - } - - /** - * Store a newly created resource in storage. - */ - public function store(Request $request) - { - // - } - - /** - * Display the specified resource. - */ - public function show(string $id): JsonResponse - { - return response()->json(ProvinsiResource::make(Provinsi::findOrFail($id))); - } - - /** - * Show the form for editing the specified resource. - */ - public function edit(string $id) - { - // - } - - /** - * Update the specified resource in storage. - */ - public function update(Request $request, string $id) - { - // - } - - /** - * Remove the specified resource from storage. - */ - public function destroy(string $id) - { - // - } -} diff --git a/resources/views/ekosistem/kolom-basis-data/edit.blade.php b/resources/views/ekosistem/kolom-basis-data/edit.blade.php index 8d94776..a38468d 100644 --- a/resources/views/ekosistem/kolom-basis-data/edit.blade.php +++ b/resources/views/ekosistem/kolom-basis-data/edit.blade.php @@ -209,4 +209,4 @@ }); }); -@endpush \ No newline at end of file +@endpush \ No newline at end of file diff --git a/routes/api.php b/routes/api.php index c5ccf8e..7192f8f 100644 --- a/routes/api.php +++ b/routes/api.php @@ -3,9 +3,9 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; -Route::post('/auth/login', [\App\Http\Controllers\Api\AuthController::class, 'login']) +Route::post('/auth/login', [\App\Http\Controllers\Api\Konfigurasi\AuthController::class, 'login']) ->middleware('throttle:5,1'); -Route::post('/auth/signup', [\App\Http\Controllers\Api\AuthController::class, 'signup']); +Route::post('/auth/signup', [\App\Http\Controllers\Api\Konfigurasi\AuthController::class, 'signup']); Route::get('/user', function (Request $request) { return $request->user(); @@ -15,14 +15,14 @@ Route::middleware('auth:sanctum') ->name('auth.') ->prefix('auth') ->group(function () { - Route::get('/me', [\App\Http\Controllers\Api\AuthController::class, 'me']); - Route::post('/logout', [\App\Http\Controllers\Api\AuthController::class, 'logout']); + Route::get('/me', [\App\Http\Controllers\Api\Konfigurasi\AuthController::class, 'me']); + Route::post('/logout', [\App\Http\Controllers\Api\Konfigurasi\AuthController::class, 'logout']); // Route::get('/profile', [\App\Http\Controllers\Api\ProfileController::class, 'show']); - Route::put('/profile/{id}', [\App\Http\Controllers\Api\ProfileController::class, 'update']); - Route::get('/profile/{id}/download/{type}', [\App\Http\Controllers\Api\ProfileController::class, 'downloadFile']); - Route::put('/profile/{id}/verify', [\App\Http\Controllers\Api\ProfileController::class, 'verify']); - Route::apiResource('/profile', \App\Http\Controllers\Api\ProfileController::class)->except(['create', 'edit', 'destroy']); + Route::put('/profile/{id}', [\App\Http\Controllers\Api\Produktivitas\ProfileController::class, 'update']); + Route::get('/profile/{id}/download/{type}', [\App\Http\Controllers\Api\Produktivitas\ProfileController::class, 'downloadFile']); + Route::put('/profile/{id}/verify', [\App\Http\Controllers\Api\Produktivitas\ProfileController::class, 'verify']); + Route::apiResource('/profile', \App\Http\Controllers\Api\Produktivitas\ProfileController::class)->except(['create', 'edit', 'destroy']); }); Route::middleware('auth:sanctum') @@ -30,12 +30,12 @@ Route::middleware('auth:sanctum') ->prefix('map') ->group(function () { - Route::apiResource('/lahan', \App\Http\Controllers\Api\LahanController::class)->except(['create', 'edit']); - Route::apiResource('/tanaman', \App\Http\Controllers\Api\TanamanController::class)->except(['create', 'edit']); - Route::apiResource('/inspeksi/tanaman', \App\Http\Controllers\Api\InspeksiTanamanController::class)->except(['create', 'edit']); - Route::apiResource('/inspeksi/lahan', \App\Http\Controllers\Api\InspeksiLahanController::class)->except(['create', 'edit']); - Route::apiResource('/panen', \App\Http\Controllers\Api\PanenController::class)->except(['create', 'edit']); - Route::apiResource('/offtaker', \App\Http\Controllers\Api\OfftakerController::class)->except(['create', 'edit']); + Route::apiResource('/lahan', \App\Http\Controllers\Api\Produktivitas\LahanController::class)->except(['create', 'edit']); + Route::apiResource('/tanaman', \App\Http\Controllers\Api\Produktivitas\TanamanController::class)->except(['create', 'edit']); + Route::apiResource('/inspeksi/tanaman', \App\Http\Controllers\Api\Produktivitas\InspeksiTanamanController::class)->except(['create', 'edit']); + Route::apiResource('/inspeksi/lahan', \App\Http\Controllers\Api\Produktivitas\InspeksiLahanController::class)->except(['create', 'edit']); + Route::apiResource('/panen', \App\Http\Controllers\Api\Produktivitas\PanenController::class)->except(['create', 'edit']); + Route::apiResource('/offtaker', \App\Http\Controllers\Api\Produktivitas\OfftakerController::class)->except(['create', 'edit']); }); Route::middleware('auth:sanctum') @@ -43,13 +43,14 @@ Route::middleware('auth:sanctum') ->prefix('distribusi') ->group(function () { - Route::apiResource('/panen', \App\Http\Controllers\Api\DistributionController::class)->except(['create', 'edit']); + Route::apiResource('/panen', \App\Http\Controllers\Api\Produktivitas\DistributionController::class)->except(['create', 'edit']); }); Route::middleware('auth:sanctum') ->name('master.') ->prefix('master') ->group(function () { +<<<<<<< Updated upstream Route::apiResource('/jenis-komoditas', \App\Http\Controllers\Api\JenisKomoditasController::class); Route::apiResource('/komoditas', \App\Http\Controllers\Api\KomoditasController::class)->only(['index', 'show']); @@ -58,6 +59,14 @@ Route::middleware('auth:sanctum') Route::apiResource('/kabupaten-kota', \App\Http\Controllers\Api\KabupatenKotaController::class)->only(['index', 'show']); Route::apiResource('/kecamatan', \App\Http\Controllers\Api\KecamatanController::class)->only(['index', 'show']); Route::apiResource('/desa-kelurahan', \App\Http\Controllers\Api\DesaKelurahanController::class)->only(['index', 'show']); +======= + + Route::apiResource('/komoditas', \App\Http\Controllers\Master\Api\KomoditasController::class)->only(['index', 'show']); + Route::apiResource('/provinsi', \App\Http\Controllers\Master\Api\ProvinsiController::class)->only(['index', 'show']); + Route::apiResource('/kabupaten-kota', \App\Http\Controllers\Master\Api\KabupatenKotaController::class)->only(['index', 'show']); + Route::apiResource('/kecamatan', \App\Http\Controllers\Master\Api\KecamatanController::class)->only(['index', 'show']); + Route::apiResource('/desa-kelurahan', \App\Http\Controllers\Master\Api\DesaKelurahanController::class)->only(['index', 'show']); +>>>>>>> Stashed changes }); Route::middleware('auth:sanctum') @@ -65,7 +74,7 @@ Route::middleware('auth:sanctum') ->prefix('manajemen') ->group(function () { - Route::apiResource('fasilitator', \App\Http\Controllers\Api\FacilitatorController::class); + Route::apiResource('fasilitator', \App\Http\Controllers\Api\Master\FacilitatorController::class); }); Route::middleware('auth:sanctum')