Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
Permission
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
100.00%
1 / 1
 tryFromString
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
3
1<?php
2
3declare(strict_types=1);
4
5namespace LambdaTwelve\OneRecord\Api;
6
7use LambdaTwelve\OneRecord\Vocabulary\Generated\Api;
8
9/**
10 * The four permissions every server must support, per logistics object.
11 */
12enum Permission: string
13{
14    case GetLogisticsObject = Api::GET_LOGISTICS_OBJECT;
15    case PatchLogisticsObject = Api::PATCH_LOGISTICS_OBJECT;
16    case PostLogisticsEvent = Api::POST_LOGISTICS_EVENT;
17    case GetLogisticsEvent = Api::GET_LOGISTICS_EVENT;
18
19    public static function tryFromString(string $value): ?self
20    {
21        $value = str_starts_with($value, 'api:') ? Api::NAMESPACE . substr($value, 4) : $value;
22
23        return self::tryFrom(str_contains($value, ':') ? $value : Api::NAMESPACE . $value);
24    }
25}