lolispace-applications/app/Livewire/ApplicationList.php

56 lines
1.2 KiB
PHP

<?php
namespace App\Livewire;
use App\Models\Application;
use App\Services\SynapseService;
use Livewire\Component;
use Livewire\WithPagination;
class ApplicationList extends Component
{
use WithPagination;
public $hideApproved = true;
public $error = false;
public function updatingHideApproved()
{
$this->resetPage();
}
public function refresh()
{
$this->resetPage();
}
public function approveApplication($uuid)
{
$service = new SynapseService();
$token = $service->createRegistrationToken();
if (!$token) {
$this->error = true;
return;
}
Application::where('uuid', $uuid)->update(['status' => 1, 'registration_token' => $token]);
}
public function rejectApplication($uuid)
{
Application::where('uuid', $uuid)->update(['status' => 2]);
}
public function render()
{
$applications = Application::with('uploads')
->when($this->hideApproved !== false, fn($query) => $query->where('status', 0))
->latest()
->paginate(10);
return view('livewire.application-list', compact('applications'));
}
}