Skip to content

Commit c874dab

Browse files
author
dante
committed
Adding trait to serialize dates Iso8601 in Eloquent models
1 parent f4c64e7 commit c874dab

9 files changed

Lines changed: 33 additions & 1 deletion

File tree

‎ProcessMaker/Models/Group.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Illuminate\Database\Eloquent\Model;
66
use Illuminate\Validation\Rule;
7+
use ProcessMaker\Traits\SerializeToIso8601;
78

89
/**
910
* Represents a group definition.
@@ -30,6 +31,7 @@
3031
*/
3132
class Group extends Model
3233
{
34+
use SerializeToIso8601;
3335

3436
protected $fillable = [
3537
'name',

‎ProcessMaker/Models/Process.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use ProcessMaker\Nayra\Contracts\Bpmn\ScriptTaskInterface;
1010
use ProcessMaker\Nayra\Contracts\Storage\BpmnDocumentInterface;
1111
use ProcessMaker\Nayra\Storage\BpmnDocument;
12+
use ProcessMaker\Traits\SerializeToIso8601;
1213
use Spatie\MediaLibrary\HasMedia\HasMedia;
1314
use Spatie\MediaLibrary\HasMedia\HasMediaTrait;
1415

@@ -47,6 +48,7 @@
4748
class Process extends Model implements HasMedia
4849
{
4950
use HasMediaTrait;
51+
use SerializeToIso8601;
5052

5153
/**
5254
* The attributes that aren't mass assignable.

‎ProcessMaker/Models/ProcessCategory.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Illuminate\Database\Eloquent\Model;
66
use Illuminate\Validation\Rule;
77
use ProcessMaker\Models\Process;
8+
use ProcessMaker\Traits\SerializeToIso8601;
89

910
/**
1011
* Represents a business process category definition.
@@ -30,6 +31,7 @@
3031
*/
3132
class ProcessCategory extends Model
3233
{
34+
use SerializeToIso8601;
3335

3436
protected $fillable = [
3537
'name',

‎ProcessMaker/Models/ProcessRequest.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Illuminate\Validation\Rule;
77
use ProcessMaker\Nayra\Contracts\Engine\ExecutionInstanceInterface;
88
use ProcessMaker\Nayra\Engine\ExecutionInstanceTrait;
9+
use ProcessMaker\Traits\SerializeToIso8601;
910

1011
/**
1112
* Represents an Eloquent model of a Request which is an instance of a Process.
@@ -50,6 +51,7 @@ class ProcessRequest extends Model implements ExecutionInstanceInterface
5051
{
5152

5253
use ExecutionInstanceTrait;
54+
use SerializeToIso8601;
5355

5456
/**
5557
* The attributes that aren't mass assignable.

‎ProcessMaker/Models/Screen.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Carbon\Carbon;
66
use Illuminate\Database\Eloquent\Model;
77
use Illuminate\Validation\Rule;
8+
use ProcessMaker\Traits\SerializeToIso8601;
89

910
/**
1011
* Class Screen
@@ -37,6 +38,7 @@
3738
*/
3839
class Screen extends Model
3940
{
41+
use SerializeToIso8601;
4042

4143
protected $casts = [
4244
'config' => 'array'

‎ProcessMaker/Models/ScreenCategory.php‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Illuminate\Database\Eloquent\Model;
66
use Illuminate\Validation\Rule;
77
use ProcessMaker\Models\Screen;
8+
use ProcessMaker\Traits\SerializeToIso8601;
89

910
/**
1011
* Represents a business screen category definition.
@@ -29,7 +30,8 @@
2930
* )
3031
*/
3132
class ScreenCategory extends Model
32-
{
33+
{
34+
use SerializeToIso8601;
3335

3436
protected $fillable = [
3537
'name',

‎ProcessMaker/Models/Script.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Illuminate\Validation\Rule;
77
use ProcessMaker\Models\EnvironmentVariable;
88
use ProcessMaker\Exception\ScriptLanguageNotSupported;
9+
use ProcessMaker\Traits\SerializeToIso8601;
910

1011
/**
1112
* Represents an Eloquent model of a Script
@@ -36,6 +37,7 @@
3637
*/
3738
class Script extends Model
3839
{
40+
use SerializeToIso8601;
3941

4042
protected $guarded = [
4143
'id',

‎ProcessMaker/Models/User.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Illuminate\Notifications\Notifiable;
88
use Illuminate\Foundation\Auth\User as Authenticatable;
99

10+
use ProcessMaker\Traits\SerializeToIso8601;
1011
use Spatie\MediaLibrary\HasMedia\HasMedia;
1112
use Spatie\MediaLibrary\HasMedia\HasMediaTrait;
1213
use ProcessMaker\Traits\HasAuthorization;
@@ -17,6 +18,7 @@ class User extends Authenticatable implements HasMedia
1718
use Notifiable;
1819
use HasMediaTrait;
1920
use HasAuthorization;
21+
use SerializeToIso8601;
2022

2123
//Disk
2224
public const DISK_PROFILE = 'profile';
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
namespace ProcessMaker\Traits;
3+
4+
/**
5+
* Trait that allows that all dates of an Eloquent model be serialized in ISO 8601 format
6+
*
7+
* @package ProcessMaker\Traits
8+
*/
9+
trait SerializeToIso8601
10+
{
11+
protected function serializeDate(\DateTimeInterface $date)
12+
{
13+
return $date->format('c');
14+
}
15+
16+
}

0 commit comments

Comments
 (0)