Files
boursecu_server/app/Http/Controllers/Admin/SettingsController.php
T
2026-06-05 17:43:02 +03:30

59 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Setting;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;
class SettingsController extends Controller
{
public function index(Request $request)
{
$query = Setting::query()
->select(Setting::adminSelectColumns())
->orderBy('key');
if (!$request->boolean('editable_only')) {
return response()->json($query->get());
}
return response()->json($query->where('can_edit', 1)->get());
}
public function edit(Request $request)
{
// Check if the setting exists
$setting = Setting::where('key', $request->key)->first();
if ($setting) {
$setting->value = $request->value;
$setting->description = $request->description;
if ($request->has('is_active')) {
$setting->is_active = filter_var($request->is_active, FILTER_VALIDATE_BOOLEAN) ? 1 : 0;
}
$setting->title_fa = $request->title_fa ?? '';
if (Setting::hasTypeColumn()) {
$setting->type = $request->type ?? '';
}
$setting->save();
} else {
$setting = new Setting();
$setting->key = $request->key;
$setting->title_fa = $request->title_fa ?? '';
$setting->value = $request->value;
$setting->description = $request->description;
$setting->is_active = filter_var($request->is_active ?? true, FILTER_VALIDATE_BOOLEAN) ? 1 : 0;
$setting->can_edit = 1;
if (Setting::hasTypeColumn()) {
$setting->type = $request->type ?? '';
}
$setting->save();
}
// Return the setting as a JSON response
return response()->json($setting);
}
}