Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
15 / 15
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
RequestResource
100.00% covered (success)
100.00%
15 / 15
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 toArray
100.00% covered (success)
100.00%
15 / 15
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace Domain\Request\Resources;
4
5use Domain\CostCenter\Resources\CostCenterResource;
6use Domain\CostCenter\Resources\ResourceCenterResource;
7use Domain\Request\Enums\RequestStatusEnum;
8use Domain\StockIO\Resources\StockOIResource;
9use Illuminate\Http\Request;
10use Illuminate\Http\Resources\Json\JsonResource;
11
12use Domain\User\Resources\UserResource;
13
14/**
15 * @property int $id
16 * @property UserResource $requester
17 * @property RequestStatusEnum $status
18 * @property RequestItemResource $items
19 * @property StockOIResource|null $stockIO
20 * @property string $created_at
21 * @property string $updated_at
22 */
23class RequestResource extends JsonResource
24{
25
26    public function toArray(Request $request): array
27    {
28        return [
29            'id'              => $this->id,
30            'requester'       => UserResource::make($this->whenLoaded('requester')),
31            'applicant'       => json_decode($this->applicant),
32            'cost_center'     => CostCenterResource::make($this->whenLoaded('costCenter')),
33            'resource_center' => ResourceCenterResource::make($this->whenLoaded('resourceCenter')),
34            'resource'        => json_decode($this->resource->resource),
35            'status'          => $this->status,
36            'urgent'          => $this->urgent,
37            'requestItems'    => RequestItemResource::collection($this->whenLoaded('requestItems')),
38            'stock_io'        => StockOIResource::make($this->whenLoaded('stockIO')),
39            'request_number'  => $this->stockIO?->integration?->parameters['request_number'] ?? null,
40            'created_at'      => (string)$this->created_at,
41            'updated_at'      => (string)$this->updated_at,
42        ];
43    }
44}