Example #1
0
 /**
  * @expectedException \Illuminate\Database\QueryException
  * @expectedExceptionCode 22P02
  */
 public function testCreateNewDataWithContentsAndMetadataNotMatchingIndex()
 {
     $this->logger->info("testCreateNewDataWithContentsAndMetadataNotMatchingIndex ...");
     $data = new Object();
     $data->type = 'blog-post';
     $data->save();
     $data->setJsonAttribute('data', 'foo', 'bar');
     $data->setJsonAttribute('metadata', 'created_at', 'toto');
     $data->save();
 }
Example #2
0
 public static function boot()
 {
     parent::boot();
     static::creating(function ($object) {
         $object->setJsonAttribute('metadata', 'author', UserProvider::getCurrentUserId());
     });
     static::created(function ($object) {
         $revision = new ObjectRevision();
         $revision->object_id = $object->id;
         $revision->revision_id = 0;
         // Data patch
         $revision->data_patch = json_encode(JsonPatch::diff([], json_decode($object->data, 1)));
         // Metadata patch
         $revision->metadata_patch = json_encode(JsonPatch::diff([], json_decode($object->metadata, 1)));
         $revision->author = UserProvider::getCurrentUserId();
         $revision->created_at = Carbon::now();
         $revision->save();
     });
     static::updating(function ($updatingObject) {
         // Get the object again from DB so we are sure we have up-to-date content to make the diff from
         $object = Object::find($updatingObject->id);
         var_dump("here updating");
         $lastRevision = ObjectRevision::where('object_id', $object->id)->orderBy('revision_id', 'DESC')->firstOrFail();
         $revision = new ObjectRevision();
         $revision->object_id = $object->id;
         $revision->revision_id = $lastRevision->revision_id + 1;
         // Data patch
         $revision->data_patch = json_encode(JsonPatch::diff(json_decode($object->data, 1), json_decode($updatingObject->data, 1)));
         // Metadata patch
         $revision->metadata_patch = json_encode(JsonPatch::diff(json_decode($object->metadata, 1), json_decode($updatingObject->metadata, 1)));
         $revision->author = UserProvider::getCurrentUserId();
         $revision->created_at = Carbon::now();
         $revision->save();
     });
 }