57 lines
1.7 KiB
PHP
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);
|
|
}
|
|
|
|
}
|