MerkController.php 1.99 KB
<?php

namespace App\Http\Controllers\CRUD;

use Illuminate\Http\Request;
use App\Models\Merk;
use Illuminate\Support\Facades\Storage;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;

class MerkController extends Controller

{
    public function showMerk()
    {
        $merk = Merk::all();
        return response()->json($merk);
    }

    public function createMerkProcess(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'nama_merk' => 'required',
        ]);

        if ($validator->fails()) {
            return response()->json($validator->errors(), 400);
        }

        $merk = Merk::create([
            'nama_merk' => $request->nama_merk,
        ]);

        return response()->json(['message' => 'merk berhasil ditambahkan']);

    }

    public function editMerkForm($id)
    {
        $merk = Merk::find($id);
        if ($merk) {
            return response()->json($merk);
        } else {
            return response()->json(['message' => 'merk tidak ditemukan'], 404);
        }
    }

    public function editMerkProcess(Request $request, $id)
    {
        
            $db_merk = Merk::findOrFail($id);

            $validator = Validator::make($request->all(), [
                'nama_merk' => 'required',
            ]);

            if ($validator->fails()) {
                return response()->json($validator->errors(), 400);
            }

            $data = [
                'nama_merk' => $request->nama_merk,
            ];

            $db_merk->update($data);

            return response()->json(['message' => 'merk berhasil diupdate'], 200);
    }

        public function deleteMerk($id)
    {
        $merk = Merk::findOrFail($id);

        if (!$merk) {
            return response()->json(['message' => 'merk tidak ditemukan'], 404);
        }

        $merk->delete();

        return response()->json(['message' => 'merk berhasil dihapus']);
    }
}