ErrorMessageExtractor::extractFromResponseData( mixed $data ): string|null

Extracts error message from API response data.

Description

Handles common error response formats:

  • { “error”: { “message”: “Error text” } }
  • { “error”: “Error text” }
  • { “message”: “Error text” }

Parameters

$datamixedrequired
The response data to extract error message from.

Return

string|null The extracted error message, or null if none found.

Source

public static function extractFromResponseData($data): ?string
{
    if (!is_array($data)) {
        return null;
    }
    // Handle [ { "error": { "message": "Error text" } } ]
    if (isset($data[0]) && is_array($data[0]) && isset($data[0]['error']) && is_array($data[0]['error']) && isset($data[0]['error']['message']) && is_string($data[0]['error']['message'])) {
        return $data[0]['error']['message'];
    }
    // Handle { "error": { "message": "Error text" } }
    if (isset($data['error']) && is_array($data['error']) && isset($data['error']['message']) && is_string($data['error']['message'])) {
        return $data['error']['message'];
    }
    // Handle { "error": "Error text" }
    if (isset($data['error']) && is_string($data['error'])) {
        return $data['error'];
    }
    // Handle { "message": "Error text" }
    if (isset($data['message']) && is_string($data['message'])) {
        return $data['message'];
    }
    return null;
}

Changelog

VersionDescription
0.2.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.