feat: Phase 3 - public registration pages and Mailwizz config
This commit is contained in:
@@ -5,23 +5,51 @@ declare(strict_types=1);
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Admin\UpdateMailwizzConfigRequest;
|
||||
use App\Models\PreregistrationPage;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class MailwizzController extends Controller
|
||||
{
|
||||
public function edit(PreregistrationPage $page): \Illuminate\View\View
|
||||
public function edit(PreregistrationPage $page): View
|
||||
{
|
||||
$this->authorize('update', $page);
|
||||
|
||||
$page->load('mailwizzConfig');
|
||||
|
||||
return view('admin.mailwizz.edit', compact('page'));
|
||||
}
|
||||
|
||||
public function update(Request $request, PreregistrationPage $page): \Illuminate\Http\RedirectResponse
|
||||
public function update(UpdateMailwizzConfigRequest $request, PreregistrationPage $page): RedirectResponse
|
||||
{
|
||||
return redirect()->route('admin.pages.mailwizz.edit', $page);
|
||||
$validated = $request->validated();
|
||||
|
||||
if (($validated['api_key'] ?? '') === '' && $page->mailwizzConfig !== null) {
|
||||
unset($validated['api_key']);
|
||||
}
|
||||
|
||||
DB::transaction(function () use ($page, $validated): void {
|
||||
$page->mailwizzConfig()->updateOrCreate(
|
||||
['preregistration_page_id' => $page->id],
|
||||
array_merge($validated, ['preregistration_page_id' => $page->id])
|
||||
);
|
||||
});
|
||||
|
||||
return redirect()
|
||||
->route('admin.pages.mailwizz.edit', $page)
|
||||
->with('status', __('Mailwizz configuration saved.'));
|
||||
}
|
||||
|
||||
public function destroy(PreregistrationPage $page): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(PreregistrationPage $page): RedirectResponse
|
||||
{
|
||||
return redirect()->route('admin.pages.mailwizz.edit', $page);
|
||||
$this->authorize('update', $page);
|
||||
|
||||
$page->mailwizzConfig()?->delete();
|
||||
|
||||
return redirect()
|
||||
->route('admin.pages.mailwizz.edit', $page)
|
||||
->with('status', __('Mailwizz integration removed.'));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user