Impment webcron and internal scheduling methods and change settings to a key value store
This commit is contained in:
@@ -9,19 +9,27 @@ class SettingController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
return Setting::firstOrCreate([]);
|
||||
return response()->json(Setting::allKeyValue());
|
||||
}
|
||||
|
||||
public function update(Request $request)
|
||||
{
|
||||
$validatedData = $request->validate([
|
||||
'invoice_number_format' => 'required|string',
|
||||
'invoice_number_start' => 'required|integer',
|
||||
// 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 = Setting::firstOrCreate([]);
|
||||
$setting->update($validatedData);
|
||||
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, 200);
|
||||
return response()->json(Setting::allKeyValue());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user