File tree Expand file tree Collapse file tree 6 files changed +63
-0
lines changed Expand file tree Collapse file tree 6 files changed +63
-0
lines changed Original file line number Diff line number Diff line change 6060 'created ' ,
6161 'updated ' ,
6262 'deleted ' ,
63+ 'forceDeleted ' ,
6364 'restored ' ,
6465 ],
6566
Original file line number Diff line number Diff line change @@ -185,6 +185,16 @@ protected function getDeletedEventAttributes(): array
185185 ];
186186 }
187187
188+ /**
189+ * Get the old/new attributes of a forceDeleted event.
190+ *
191+ * @return array
192+ */
193+ protected function getforceDeletedEventAttributes (): array
194+ {
195+ return $ this ->getDeletedEventAttributes ();
196+ }
197+
188198 /**
189199 * Get the old/new attributes of a restored event.
190200 *
Original file line number Diff line number Diff line change @@ -65,6 +65,18 @@ public function deleted(Auditable $model)
6565 Auditor::execute ($ model ->setAuditEvent ('deleted ' ));
6666 }
6767
68+ /**
69+ * Handle the forceDeleted event.
70+ *
71+ * @param \OwenIt\Auditing\Contracts\Auditable $model
72+ *
73+ * @return void
74+ */
75+ public function forceDeleted (Auditable $ model )
76+ {
77+ Auditor::execute ($ model ->setAuditEvent ('forceDeleted ' ));
78+ }
79+
6880 /**
6981 * Handle the restoring event.
7082 *
Original file line number Diff line number Diff line change @@ -221,6 +221,37 @@ public function itWillAuditTheDeletedEvent()
221221 $ this ->assertEmpty ($ audit ->new_values );
222222 }
223223
224+ /**
225+ * @test
226+ */
227+ public function itWillAuditTheForceDeletedEvent ()
228+ {
229+ $ this ->app ['config ' ]->set ('audit.events ' , [
230+ 'forceDeleted ' ,
231+ ]);
232+
233+ $ article = factory (Article::class)->create ([
234+ 'title ' => 'How To Audit Eloquent Models ' ,
235+ 'content ' => 'N/A ' ,
236+ 'published_at ' => null ,
237+ 'reviewed ' => 0 ,
238+ ]);
239+
240+ $ article ->forceDelete ();
241+
242+ $ audit = Audit::first ();
243+
244+ $ this ->assertArraySubset ([
245+ 'title ' => 'How To Audit Eloquent Models ' ,
246+ 'content ' => 'N/A ' ,
247+ 'published_at ' => null ,
248+ 'reviewed ' => 0 ,
249+ 'id ' => 1 ,
250+ ], $ audit ->old_values , true );
251+
252+ $ this ->assertEmpty ($ audit ->new_values );
253+ }
254+
224255 /**
225256 * @test
226257 */
Original file line number Diff line number Diff line change @@ -60,6 +60,11 @@ public function auditableObserverTestProvider(): array
6060 false ,
6161 false ,
6262 ],
63+ [
64+ 'forceDeleted ' ,
65+ false ,
66+ false ,
67+ ],
6368 [
6469 'restoring ' ,
6570 false ,
Original file line number Diff line number Diff line change @@ -119,6 +119,7 @@ public function itReturnsTheDefaultAuditEvents()
119119 'created ' ,
120120 'updated ' ,
121121 'deleted ' ,
122+ 'forceDeleted ' ,
122123 'restored ' ,
123124 ], $ model ->getAuditEvents (), true );
124125 }
@@ -217,6 +218,9 @@ public function itIsReadyForAuditingWithRegularEvents()
217218 $ model ->setAuditEvent ('deleted ' );
218219 $ this ->assertTrue ($ model ->readyForAuditing ());
219220
221+ $ model ->setAuditEvent ('forceDeleted ' );
222+ $ this ->assertTrue ($ model ->readyForAuditing ());
223+
220224 $ model ->setAuditEvent ('restored ' );
221225 $ this ->assertTrue ($ model ->readyForAuditing ());
222226 }
You can’t perform that action at this time.
0 commit comments