. */ namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\SipDomain; use Illuminate\Validation\Rule; class SipDomainController extends Controller { public function index() { return view('admin.sip_domain.index', ['sip_domains' => SipDomain::withCount('accounts')->get()]); } public function create() { return view('admin.sip_domain.create_edit', [ 'sip_domain' => new SipDomain ]); } public function store(Request $request) { $request->validate([ 'domain' => 'required|unique:sip_domains', ]); $sipDomain = new SipDomain; $sipDomain->domain = $request->get('domain'); $sipDomain->super = $request->has('super') ? (bool)$request->get('super') == "true" : false; $sipDomain->save(); return redirect()->route('admin.sip_domains.index'); } public function edit(int $id) { return view('admin.sip_domain.create_edit', [ 'sip_domain' => SipDomain::findOrFail($id) ]); } public function update(Request $request, int $id) { $sipDomain = SipDomain::findOrFail($id); $sipDomain->super = $request->has('super') ? $request->get('super') == "true" : false; $sipDomain->save(); return redirect()->route('admin.sip_domains.index'); } public function delete(int $id) { return view('admin.sip_domain.delete', [ 'sip_domain' => SipDomain::findOrFail($id) ]); } public function destroy(Request $request, int $id) { $sipDomain = SipDomain::findOrFail($id); $request->validate([ 'domain' => [ 'required', Rule::in(['first-zone', $sipDomain->domain]), ] ]); $sipDomain->delete(); return redirect()->route('admin.sip_domains.index'); } }