Rewrite tabulation #14
|
|
@ -1,69 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Tabulation;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Models\Audition;
|
|
||||||
use App\Models\Seat;
|
|
||||||
use App\Services\AuditionService;
|
|
||||||
use App\Services\DoublerService;
|
|
||||||
use App\Services\SeatingService;
|
|
||||||
use App\Services\TabulationService;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Cache;
|
|
||||||
|
|
||||||
use function compact;
|
|
||||||
|
|
||||||
class TabulationController extends Controller
|
|
||||||
{
|
|
||||||
protected $tabulationService;
|
|
||||||
|
|
||||||
protected $doublerService;
|
|
||||||
|
|
||||||
protected $seatingService;
|
|
||||||
|
|
||||||
protected $auditionService;
|
|
||||||
|
|
||||||
public function __construct(TabulationService $tabulationService,
|
|
||||||
DoublerService $doublerService,
|
|
||||||
SeatingService $seatingService,
|
|
||||||
AuditionService $auditionService)
|
|
||||||
{
|
|
||||||
$this->tabulationService = $tabulationService;
|
|
||||||
$this->doublerService = $doublerService;
|
|
||||||
$this->seatingService = $seatingService;
|
|
||||||
$this->auditionService = $auditionService;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function publishSeats(Request $request, Audition $audition)
|
|
||||||
{
|
|
||||||
// TODO move this to SeatingService
|
|
||||||
$sessionKey = 'audition'.$audition->id.'seatingProposal';
|
|
||||||
$seats = $request->session()->get($sessionKey);
|
|
||||||
foreach ($seats as $seat) {
|
|
||||||
Seat::create([
|
|
||||||
'ensemble_id' => $seat['ensemble_id'],
|
|
||||||
'audition_id' => $seat['audition_id'],
|
|
||||||
'seat' => $seat['seat'],
|
|
||||||
'entry_id' => $seat['entry_id'],
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
$audition->addFlag('seats_published');
|
|
||||||
$request->session()->forget($sessionKey);
|
|
||||||
Cache::forget('resultsSeatList');
|
|
||||||
|
|
||||||
// TODO move the previous Cache functions here and in unplublish to the services, need to add an event for publishing an audition as well
|
|
||||||
return redirect()->route('tabulation.audition.seat', ['audition' => $audition->id]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function unpublishSeats(Request $request, Audition $audition)
|
|
||||||
{
|
|
||||||
// TODO move this to SeatingService
|
|
||||||
$audition->removeFlag('seats_published');
|
|
||||||
Cache::forget('resultsSeatList');
|
|
||||||
Seat::where('audition_id', $audition->id)->delete();
|
|
||||||
|
|
||||||
return redirect()->route('tabulation.audition.seat', ['audition' => $audition->id]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -39,12 +39,6 @@ Route::middleware(['auth', 'verified', CheckIfCanTab::class])->group(function ()
|
||||||
Route::post('/{audition}/unpublish', [SeatingPublicationController::class, 'unpublishSeats'])->name('seating.audition.unpublish');
|
Route::post('/{audition}/unpublish', [SeatingPublicationController::class, 'unpublishSeats'])->name('seating.audition.unpublish');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Generic Tabulation Routes (TO BE REPLACED)
|
|
||||||
Route::prefix('tabulation/')->controller(TabulationController::class)->group(function () {
|
|
||||||
Route::post('/auditions/{audition}/publish-seats', 'publishSeats')->name('tabulation.seat.publish');
|
|
||||||
Route::post('/auditions/{audition}/unpublish-seats', 'unpublishSeats')->name('tabulation.seat.unpublish');
|
|
||||||
});
|
|
||||||
|
|
||||||
// Advancement Routes
|
// Advancement Routes
|
||||||
Route::prefix('advancement/')->controller(AdvancementController::class)->group(function () {
|
Route::prefix('advancement/')->controller(AdvancementController::class)->group(function () {
|
||||||
Route::get('/status', 'status')->name('advancement.status');
|
Route::get('/status', 'status')->name('advancement.status');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue