Skip to content

Commit dba1619

Browse files
authored
Fix audits prune
1 parent 4f72181 commit dba1619

File tree

1 file changed

+10
-16
lines changed

1 file changed

+10
-16
lines changed

src/Drivers/Database.php

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,23 +23,17 @@ public function prune(Auditable $model): bool
2323
{
2424
if (($threshold = $model->getAuditThreshold()) > 0) {
2525
$auditClass = get_class($model->audits()->getModel());
26-
$auditModel = new $auditClass;
26+
$keyName = (new $auditClass)->getKeyName();
27+
$forRemoval = array_slice(
28+
$model->audits()->latest()->pluck($keyName)->all(),
29+
$threshold
30+
);
2731

28-
return $model->audits()
29-
->leftJoinSub(
30-
$model->audits()->getQuery()
31-
->select($auditModel->getKeyName())->limit($threshold)->latest(),
32-
'audit_threshold',
33-
function ($join) use ($auditModel) {
34-
$join->on(
35-
$auditModel->gettable().'.'.$auditModel->getKeyName(),
36-
'=',
37-
'audit_threshold.'.$auditModel->getKeyName()
38-
);
39-
}
40-
)
41-
->whereNull('audit_threshold.'.$auditModel->getKeyName())
42-
->delete() > 0;
32+
if (count($forRemoval)) {
33+
return $model->audits()
34+
->whereIntegerInRaw($keyName, $forRemoval)
35+
->delete() > 0;
36+
}
4337
}
4438

4539
return false;

0 commit comments

Comments
 (0)