. */ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Account; use App\AccountDictionaryEntry; class AccountDictionaryController extends Controller { public function create(int $accountId) { return view('admin.account.dictionary.create_edit', [ 'account' => Account::findOrFail($accountId), 'entry' => new AccountDictionaryEntry ]); } public function store(Request $request, int $accountId) { $account = Account::findOrFail($accountId); $request->validate([ 'key' => 'required', 'value' => 'required' ]); $account->setDictionaryEntry($request->get('key'), $request->get('value')); if (function_exists('accountServiceAccountEditedHook')) { $account->refresh(); accountServiceAccountEditedHook($request, $account); } return redirect()->route('admin.account.show', $account); } public function edit(int $accountId, string $key) { $account = Account::findOrFail($accountId); return view('admin.account.dictionary.create_edit', [ 'account' => $account, 'entry' => $account->dictionaryEntries()->where('key', $key)->firstOrFail() ]); } public function update(Request $request, int $accountId, int $entryId) { $request->validate([ 'value' => 'required' ]); $account = Account::findOrFail($accountId); $entry = $account->dictionaryEntries()->findOrFail($entryId); $entry->value = $request->get('value'); $entry->save(); if (function_exists('accountServiceAccountEditedHook')) { $account->refresh(); accountServiceAccountEditedHook($request, $account); } return redirect()->route('admin.account.show', $account); } public function delete(int $accountId, string $key) { $account = Account::findOrFail($accountId); return view( 'admin.account.dictionary.delete', [ 'account' => $account, 'entry' => $account->dictionaryEntries()->where('key', $key)->firstOrFail() ] ); } public function destroy(Request $request, int $accountId) { $account = Account::findOrFail($accountId); $account->dictionaryEntries()->where('key', $request->get('key'))->delete(); return redirect()->route('admin.account.show', $account); } }