brokencube/automatorm

View on GitHub
src/Exception/BaseException.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
namespace Automatorm\Exception;

class BaseException extends \Exception implements \JsonSerializable
{
    protected $data;
    
    public function __construct($message = '', $data = null, \Exception $previousException = null)
    {
        parent::__construct($message, 0, $previousException);
        $this->data = $data;
    }
    
    public function getData()
    {
        return $this->data;
    }
    
    public function jsonSerialize()
    {
        $response = [
            'code' => $this->getCode(),
            'message' => $this->getMessage(),
            'file' => $this->getFile(),
            'line' => $this->getLine(),
            'trace' => $this->getTrace(),
            'data' => $this->getData()
        ];
        
        if ($previous = $this->getPrevious()) {
            if ($previous instanceof \JsonSerializable) {
                $response['previous'] = $previous;
            } else {
                $response['previous'] = $previous->getMessage();
            }
        }
        
        return $response;
    }
}