computer-journal/app/Http/Controllers/ComputerController.php
2024-11-02 16:13:08 +08:00

74 lines
2.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Computer;
use Illuminate\Http\Request;
class ComputerController extends Controller
{
public function index()
{
return Computer::select()->get();
}
public function getById(Request $request){
return response()->json(Computer::find($request->get('id')), 200);;
}
public function getByUserId(Request $request){
return Computer::select()->where('user_id', '=', $request->get('user_id'))->get();
}
public function create(Request $request)
{
$request->validate([
'user_id' => 'required|exists:users,id',
'name' => 'required|string|max:256',
'cpu' => 'nullable|string|max:256',
'ram' => 'nullable|string|max:256',
'motherboard' => 'nullable|string|max:256',
'gpu' => 'nullable|string|max:256',
'additional_info' => 'nullable|string|max:256',
]);
$computer = Computer::create($request->all());
return response()->json($computer, 201);
}
public function update(Request $request)
{
$request->validate([
'id' => 'required|exists:computers,id',
'name' => 'required|string|max:256',
'cpu' => 'nullable|string|max:256',
'ram' => 'nullable|string|max:256',
'motherboard' => 'nullable|string|max:256',
'gpu' => 'nullable|string|max:256',
'additional_info' => 'nullable|string|max:256',
]);
$computer = Computer::find($request->get('id'));
$computer->name = $request->get('name');
$computer->cpu = $request->get('cpu');
$computer->ram = $request->get('ram');
$computer->motherboard = $request->get('motherboard');
$computer->gpu = $request->get('gpu');
$computer->additional_info = $request->get('additional_info');
$computer->save();
return response()->json($computer);
}
public function destroy(Request $request)
{
$request->validate([
'id' => 'required|exists:computers,id',
]);
$computer = Computer::find($request->get('id'));
JobController::destroyByComputerId($computer);
$destroyed = Computer::destroy($request->get('id'));
return response()->json($destroyed, 204);
}
}