52 lines
1.6 KiB
PHP
52 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Tabulation\Seating;
|
|
|
|
use App\Exceptions\AuditionAdminException;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Audition;
|
|
|
|
use function redirect;
|
|
|
|
class PublishSeatingController extends Controller
|
|
{
|
|
public function publishSeats(
|
|
Audition $audition
|
|
) {
|
|
$publisher = app('App\Actions\Tabulation\PublishSeats');
|
|
$seatingProposal = (session('proposedSeatingArray-'.$audition->id));
|
|
$proposal = [];
|
|
foreach ($seatingProposal as $ensemble) {
|
|
$ensembleId = $ensemble['ensemble_id'];
|
|
if (isset($ensemble['seats'])) {
|
|
foreach ($ensemble['seats'] as $seat) {
|
|
$proposal[] = [
|
|
'ensemble_id' => $ensembleId,
|
|
'audition_id' => $audition->id,
|
|
'seat' => $seat['seat'],
|
|
'entry_id' => $seat['entry_id'],
|
|
];
|
|
}
|
|
}
|
|
}
|
|
try {
|
|
$publisher($audition, $proposal);
|
|
} catch (AuditionAdminException $e) {
|
|
return redirect()->route('seating.audition', [$audition])->with('error', $e->getMessage());
|
|
}
|
|
session()->forget('proposedSeatingArray-'.$audition->id);
|
|
|
|
return redirect()->route('seating.audition', [$audition]);
|
|
}
|
|
|
|
public function unpublishSeats(
|
|
Audition $audition
|
|
) {
|
|
$unpublisher = app('App\Actions\Tabulation\UnpublishSeats');
|
|
$unpublisher($audition);
|
|
session()->forget('proposedSeatingArray-'.$audition->id);
|
|
|
|
return redirect()->route('seating.audition', [$audition]);
|
|
}
|
|
}
|