35 lines
1.2 KiB
PHP
35 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Setting;
|
|
use Illuminate\Http\Request;
|
|
|
|
class SettingController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
return response()->json(Setting::allKeyValue());
|
|
}
|
|
|
|
public function update(Request $request)
|
|
{
|
|
// Batch: {"settings": {"invoice_number_start": 2, "foo": "bar"}}
|
|
if ($request->has('settings') && is_array($request->input('settings'))) {
|
|
foreach ($request->input('settings') as $k => $v) {
|
|
Setting::updateOrCreate(['key' => $k], ['value' => is_scalar($v) ? (string)$v : json_encode($v)]);
|
|
}
|
|
return response()->json(Setting::allKeyValue());
|
|
}
|
|
|
|
// Single: {"key":"invoice_number_start","value":2}
|
|
$validated = $request->validate([
|
|
'key' => 'required|string',
|
|
'value' => 'nullable',
|
|
]);
|
|
|
|
Setting::updateOrCreate(['key' => $validated['key']], ['value' => isset($validated['value']) && !is_scalar($validated['value']) ? json_encode($validated['value']) : (string)($validated['value'] ?? null)]);
|
|
|
|
return response()->json(Setting::allKeyValue());
|
|
}
|
|
} |