This commit is contained in:
Adrian Hopek
2022-02-07 14:37:14 +01:00
parent 6deb5b65e2
commit cc90851bca
22 changed files with 155 additions and 45 deletions

View File

@@ -7,11 +7,9 @@ namespace Toby\Infrastructure\Http\Controllers;
use Illuminate\Http\RedirectResponse;
use Inertia\Response;
use Toby\Eloquent\Models\Holiday;
use Toby\Eloquent\Models\User;
use Toby\Infrastructure\Http\Requests\HolidayRequest;
use Toby\Infrastructure\Http\Resources\HolidayFormDataResource;
use Toby\Infrastructure\Http\Resources\HolidayResource;
use Toby\Infrastructure\Http\Resources\UserResource;
class HolidayController extends Controller
{

View File

@@ -28,6 +28,7 @@ class VacationRequestController extends Controller
$vacationRequests = $request->user()
->vacationRequests()
->with("vacations")
->where("year_period_id", $yearPeriodRetriever->selected()->id)
->latest()
->states(VacationRequestState::filterByStatus($status))
@@ -73,15 +74,11 @@ class VacationRequestController extends Controller
): RedirectResponse {
/** @var VacationRequest $vacationRequest */
$vacationRequest = $request->user()->vacationRequests()->make($request->data());
$vacationRequest->estimated_days = $vacationDaysCalculator->calculateDays(
$vacationRequest->yearPeriod,
$vacationRequest->from,
$vacationRequest->to,
)->count();
$vacationRequestValidator->validate($vacationRequest);
$vacationRequest->save();
$stateManager->markAsCreated($vacationRequest);
return redirect()

View File

@@ -20,8 +20,8 @@ class VacationRequestResource extends JsonResource
"state" => $this->state->label(),
"from" => $this->from->toDisplayString(),
"to" => $this->to->toDisplayString(),
"estimatedDays" => $this->estimated_days,
"comment" => $this->comment,
"days" => VacationResource::collection($this->vacations),
];
}
}

View File

@@ -0,0 +1,21 @@
<?php
declare(strict_types=1);
namespace Toby\Infrastructure\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class VacationResource extends JsonResource
{
public static $wrap = null;
public function toArray($request): array
{
return [
"id" => $this->id,
"displayDate" => $this->date->toDisplayString(),
"date" => $this->date->toDateString(),
];
}
}