. */ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use App\Account; class AccountContactController extends Controller { public function create(int $id) { $account = Account::findOrFail($id); return view('admin.account.contact.create', [ 'account' => $account ]); } public function store(Request $request, int $id) { $request->validate([ 'sip' => 'required', ]); $account = Account::findOrFail($id); $contact = Account::sip($request->get('sip'))->first(); if (!$contact) { return redirect()->back()->withErrors([ 'sip' => 'The contact SIP address doesn\'t exists' ]); } $account->contacts()->detach($contact->id); $account->contacts()->attach($contact->id); Log::channel('events')->info('Web Admin: Account contact added', ['id' => $account->identifier, 'contact' => $contact->identifier]); return redirect()->route('admin.account.edit', $account); } public function delete(int $id, int $contactId) { $account = Account::findOrFail($id); $contact = $account->contacts()->where('id', $contactId)->firstOrFail(); return view('admin.account.contact.delete', [ 'account' => $account, 'contact' => $contact ]); } public function destroy(Request $request, int $id) { $account = Account::findOrFail($id); $contact = $account->contacts()->where('id', $request->get('contact_id'))->firstOrFail(); $account->contacts()->detach($contact->id); Log::channel('events')->info('Web Admin: Account contact removed', ['id' => $account->identifier, 'contact' => $contact->identifier]); return redirect()->route('admin.account.edit', $account); } }