Files
boursecu_server/app/Http/Controllers/Admin/SettingsController.php
T
2026-06-04 16:01:13 +03:30

57 lines
1.7 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;
$setting->is_active = $request->is_active;
$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 = $request->is_active;
$setting->can_edit = 1;
if (Setting::hasTypeColumn()) {
$setting->type = $request->type ?? '';
}
$setting->save();
}
// Return the setting as a JSON response
return response()->json($setting);
}
}