Files
Caramel-CRM/app/Http/Controllers/SettingController.php
T

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());
}
}