Introduce option model for storing necessary configuration data.

This commit is contained in:
2025-01-04 18:37:29 +01:00
parent 3b51ab109d
commit fa085b7384
10 changed files with 412 additions and 2 deletions

View File

@@ -0,0 +1,33 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Option;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
class OptionController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index(): JsonResponse
{
return response()->json(Option::all(['name', 'value']));
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request): JsonResponse
{
foreach ($request->all() as $key => $value) {
$option = Option::firstOrNew(['name' => $key]);
$option->value = $value;
$option->save();
}
return response()->json($request->all());
}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Contracts\View\View;
class OptionController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index(): View
{
return view('option.index');
}
}

19
app/Models/Option.php Normal file
View File

@@ -0,0 +1,19 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Option extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'name',
'value',
];
}