PixelPlacerBot/app/Http/Controllers/PaletteController.php

69 lines
1.7 KiB
PHP
Raw Normal View History

2024-07-27 15:40:35 -04:00
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Palette;
use App\Models\PaletteColor;
class PaletteController extends Controller
{
public function index()
{
$palettes = Palette::all();
return view('palette-editor', compact('palettes'));
}
public function store(Request $request)
{
$request->validate([
'name' => 'required|unique:palettes,name',
]);
$palette = Palette::create(['name' => $request->name]);
return response()->json($palette);
}
public function addColor(Request $request, Palette $palette)
{
$request->validate([
'name' => 'required|regex:/^[a-z-]+$/',
'hex_value' => 'required|regex:/^#[a-fA-F0-9]{6}$/'
]);
$color = PaletteColor::create([
'palette_id' => $palette->id,
'name' => $request->name,
'hex_value' => $request->hex_value
]);
return response()->json($color);
}
public function updateColor(Request $request, Palette $palette, PaletteColor $color)
{
$request->validate([
'name' => 'required|regex:/^[a-z-]+$/',
'hex_value' => 'required|regex:/^#[a-fA-F0-9]{6}$/'
]);
$color->update([
'name' => $request->name,
'hex_value' => $request->hex_value
]);
return response()->json($color);
}
public function deleteColor(Palette $palette, PaletteColor $color)
{
$color->delete();
return response()->json(['message' => 'Color deleted']);
}
public function getColors(Palette $palette)
{
return response()->json($palette->colors);
}
}