Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
71.43% covered (warning)
71.43%
5 / 7
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
SchemaUsages
71.43% covered (warning)
71.43%
5 / 7
0.00% covered (danger)
0.00%
0 / 1
4.37
0.00% covered (danger)
0.00%
0 / 1
 toSchema
71.43% covered (warning)
71.43%
5 / 7
0.00% covered (danger)
0.00%
0 / 1
4.37
1<?php
2namespace Apie\SchemaGenerator\Enums;
3
4use Apie\SchemaGenerator\Builders\ComponentsBuilder;
5use cebe\openapi\spec\Reference;
6use cebe\openapi\spec\Schema;
7
8enum SchemaUsages: string
9{
10    case CREATE = 'post';
11    case MODIFY = 'patch';
12    case GET = 'get';
13
14    public function toSchema(ComponentsBuilder $componentsBuilder, string $className, bool $nullable = false): Schema|Reference
15    {
16        if ($this === self::MODIFY) {
17            return $componentsBuilder->addModificationSchemaFor($className);
18        }
19        $method = match($this) {
20            self::CREATE => 'addCreationSchemaFor',
21            default => 'addDisplaySchemaFor'
22        };
23        return $componentsBuilder->$method($className, nullable: $nullable);
24    }
25}