#40 - generate pdf
This commit is contained in:
		@@ -1,18 +0,0 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
declare(strict_types=1);
 | 
			
		||||
 | 
			
		||||
namespace Toby\Infrastructure\Http\Controllers;
 | 
			
		||||
 | 
			
		||||
use Barryvdh\DomPDF\Facade\Pdf;
 | 
			
		||||
use Illuminate\Http\Response;
 | 
			
		||||
 | 
			
		||||
class GeneratePdfController extends Controller
 | 
			
		||||
{
 | 
			
		||||
    public function generatePDF(): Response
 | 
			
		||||
    {
 | 
			
		||||
        $data = ["data"];
 | 
			
		||||
        $pdf = PDF::loadView('vacation-request-pdf', $data);
 | 
			
		||||
        return $pdf->stream();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -4,13 +4,16 @@ declare(strict_types=1);
 | 
			
		||||
 | 
			
		||||
namespace Toby\Infrastructure\Http\Controllers;
 | 
			
		||||
 | 
			
		||||
use Barryvdh\DomPDF\Facade\Pdf;
 | 
			
		||||
use Illuminate\Http\RedirectResponse;
 | 
			
		||||
use Illuminate\Http\Request;
 | 
			
		||||
use Illuminate\Http\Response as LaravelResponse;
 | 
			
		||||
use Inertia\Response;
 | 
			
		||||
use Toby\Domain\Enums\VacationRequestState;
 | 
			
		||||
use Toby\Domain\Enums\VacationType;
 | 
			
		||||
use Toby\Domain\VacationRequestStateManager;
 | 
			
		||||
use Toby\Domain\Validation\VacationRequestValidator;
 | 
			
		||||
use Toby\Eloquent\Helpers\YearPeriodRetriever;
 | 
			
		||||
use Toby\Eloquent\Models\VacationRequest;
 | 
			
		||||
use Toby\Infrastructure\Http\Requests\VacationRequestRequest;
 | 
			
		||||
use Toby\Infrastructure\Http\Resources\VacationRequestActivityResource;
 | 
			
		||||
@@ -18,10 +21,11 @@ use Toby\Infrastructure\Http\Resources\VacationRequestResource;
 | 
			
		||||
 | 
			
		||||
class VacationRequestController extends Controller
 | 
			
		||||
{
 | 
			
		||||
    public function index(Request $request): Response
 | 
			
		||||
    public function index(Request $request, YearPeriodRetriever $yearPeriodRetriever): Response
 | 
			
		||||
    {
 | 
			
		||||
        $vacationRequests = $request->user()
 | 
			
		||||
            ->vacationRequests()
 | 
			
		||||
            ->where("year_period_id", $yearPeriodRetriever->selected()->id)
 | 
			
		||||
            ->latest()
 | 
			
		||||
            ->states(VacationRequestState::filterByStatus($request->query("status", "all")))
 | 
			
		||||
            ->paginate();
 | 
			
		||||
@@ -40,6 +44,15 @@ class VacationRequestController extends Controller
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function download(VacationRequest $vacationRequest): LaravelResponse
 | 
			
		||||
    {
 | 
			
		||||
        $pdf = PDF::loadView("pdf.vacation-request", [
 | 
			
		||||
            "vacationRequest" => $vacationRequest,
 | 
			
		||||
        ]);
 | 
			
		||||
 | 
			
		||||
        return $pdf->stream();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function create(): Response
 | 
			
		||||
    {
 | 
			
		||||
        return inertia("VacationRequest/Create", [
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ class UserRequest extends FormRequest
 | 
			
		||||
            "lastName" => ["required", "min:3", "max:80"],
 | 
			
		||||
            "email" => ["required", "email", Rule::unique("users", "email")->ignore($this->user)],
 | 
			
		||||
            "role" => ["required", new Enum(Role::class)],
 | 
			
		||||
            "position" => ["required"],
 | 
			
		||||
            "employmentForm" => ["required", new Enum(EmploymentForm::class)],
 | 
			
		||||
            "employmentDate" => ["required", "date_format:Y-m-d"],
 | 
			
		||||
        ];
 | 
			
		||||
@@ -30,6 +31,7 @@ class UserRequest extends FormRequest
 | 
			
		||||
            "first_name" => $this->get("firstName"),
 | 
			
		||||
            "last_name" => $this->get("lastName"),
 | 
			
		||||
            "email" => $this->get("email"),
 | 
			
		||||
            "position" => $this->get("position"),
 | 
			
		||||
            "role" => $this->get("role"),
 | 
			
		||||
            "employment_form" => $this->get("employmentForm"),
 | 
			
		||||
            "employment_date" => $this->get("employmentDate"),
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,7 @@ class UserFormDataResource extends JsonResource
 | 
			
		||||
            "lastName" => $this->last_name,
 | 
			
		||||
            "email" => $this->email,
 | 
			
		||||
            "role" => $this->role,
 | 
			
		||||
            "position" => $this->position,
 | 
			
		||||
            "employmentForm" => $this->employment_form,
 | 
			
		||||
            "employmentDate" => $this->employment_date->toDateString(),
 | 
			
		||||
        ];
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@ class UserResource extends JsonResource
 | 
			
		||||
            "name" => $this->fullName,
 | 
			
		||||
            "email" => $this->email,
 | 
			
		||||
            "role" => $this->role->label(),
 | 
			
		||||
            "position" => $this->position,
 | 
			
		||||
            "avatar" => asset($this->avatar),
 | 
			
		||||
            "deleted" => $this->trashed(),
 | 
			
		||||
            "employmentForm" => $this->employment_form->label(),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user