Lines 100.00% 5 / 5
Functions and Methods 100.00% 1 / 1
Classes and Traits 100.00% 1 / 1
Name Lines Functions and Methods CRAP Classes and Traits
ServiceCallError 100.00% 5 / 5 100.00% 1 / 1 5 100.00% 1 / 1
 messageTemplate 100.00% 5 / 5 100.00% 1 / 1 5
1<?php
2
3declare(strict_types=1);
4
5namespace Stewart\Contracts\Exception;
6
7enum ServiceCallError: string implements ExceptionReason
8{
9    case Rejected = 'rejected';
10    case Unreachable = 'unreachable';
11    case TimedOut = 'timed_out';
12
13    case Overloaded = 'overloaded';
14
15    public function messageTemplate(): string
16    {
17        return match ($this) {
18            self::Rejected => '{domain}.{service} was rejected by Home Assistant: {detail}',
19            self::Unreachable => '{domain}.{service} could not reach Home Assistant: {detail}',
20            self::TimedOut => '{domain}.{service} timed out: {detail}',
21            self::Overloaded => '{domain}.{service} was refused: {detail}',
22        };
23    }
24}