Added presenters and timezone locales with diff and popover

This commit is contained in:
Joseph Cohen
2015-01-07 18:48:10 -06:00
parent ff73992050
commit ffbe9b31bf
10 changed files with 169 additions and 21 deletions

View File

@@ -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.
*

View 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();
}
}