Added presenters and timezone locales with diff and popover
This commit is contained in:
@@ -7,6 +7,7 @@ use Dingo\Api\Transformer\TransformableInterface;
|
||||
use GrahamCampbell\Markdown\Facades\Markdown;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingTrait;
|
||||
use McCool\LaravelAutoPresenter\PresenterInterface;
|
||||
use Watson\Validating\ValidatingTrait;
|
||||
|
||||
/**
|
||||
@@ -21,7 +22,7 @@ use Watson\Validating\ValidatingTrait;
|
||||
* @property \Carbon\Carbon $updated_at
|
||||
* @property \Carbon\Carbon $deleted_at
|
||||
*/
|
||||
class Incident extends Model implements TransformableInterface
|
||||
class Incident extends Model implements TransformableInterface, PresenterInterface
|
||||
{
|
||||
use SoftDeletingTrait, ValidatingTrait;
|
||||
|
||||
@@ -52,6 +53,16 @@ class Incident extends Model implements TransformableInterface
|
||||
*/
|
||||
protected $appends = ['humanStatus'];
|
||||
|
||||
/**
|
||||
* Get presenter class.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getPresenter()
|
||||
{
|
||||
return 'CachetHQ\Cachet\Presenters\IncidentPresenter';
|
||||
}
|
||||
|
||||
/**
|
||||
* An incident belongs to a component.
|
||||
*
|
||||
|
||||
50
src/Presenters/IncidentPresenter.php
Normal file
50
src/Presenters/IncidentPresenter.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace CachetHQ\Cachet\Presenters;
|
||||
|
||||
use CachetHQ\Cachet\Models\Incident;
|
||||
use Jenssegers\Date\Date;
|
||||
use McCool\LaravelAutoPresenter\BasePresenter;
|
||||
|
||||
class IncidentPresenter extends BasePresenter
|
||||
{
|
||||
/**
|
||||
* Create a incident presenter instance.
|
||||
*
|
||||
* @param \CachetHQ\Cachet\Models\Incident $incident
|
||||
*/
|
||||
public function __construct(Incident $incident)
|
||||
{
|
||||
$this->resource = $incident;
|
||||
}
|
||||
|
||||
/**
|
||||
* Present diff for humans date time.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function created_at_diff()
|
||||
{
|
||||
return (new Date($this->resource->created_at))->diffForHumans();
|
||||
}
|
||||
|
||||
/**
|
||||
* Present formated date time.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function created_at_formated()
|
||||
{
|
||||
return ucfirst((new Date($this->resource->created_at))->format('l j F Y H:i:s'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Present formated date time.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function created_at_iso()
|
||||
{
|
||||
return $this->resource->created_at->toISO8601String();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user