Deactivate auditing for import and increase max_execution_time

This commit is contained in:
Constantin Graf
2024-09-12 14:22:25 +02:00
committed by Constantin Graf
parent cc10af0b97
commit 0a0b7a03b4
14 changed files with 49 additions and 22 deletions

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\CustomAuditable;
use App\Models\Concerns\HasUuids;
use Database\Factories\ClientFactory;
use Illuminate\Database\Eloquent\Casts\Attribute;
@@ -12,7 +13,6 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Carbon;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
@@ -29,7 +29,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
*/
class Client extends Model implements AuditableContract
{
use Auditable;
use CustomAuditable;
/** @use HasFactory<ClientFactory> */
use HasFactory;

View File

@@ -0,0 +1,22 @@
<?php
declare(strict_types=1);
namespace App\Models\Concerns;
use OwenIt\Auditing\Auditable;
trait CustomAuditable
{
use Auditable;
/**
* @var array<string>|null
*/
protected ?array $auditEvents = null;
public function disableAuditing(): void
{
$this->auditEvents = [];
}
}

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\CustomAuditable;
use App\Models\Concerns\HasUuids;
use Database\Factories\MemberFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
@@ -11,7 +12,6 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Carbon;
use Laravel\Jetstream\Membership as JetstreamMembership;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
@@ -29,7 +29,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
*/
class Member extends JetstreamMembership implements AuditableContract
{
use Auditable;
use CustomAuditable;
/** @use HasFactory<MemberFactory> */
use HasFactory;

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\CustomAuditable;
use App\Models\Concerns\HasUuids;
use Database\Factories\OrganizationFactory;
use Illuminate\Database\Eloquent\Collection;
@@ -19,7 +20,6 @@ use Laravel\Jetstream\Events\TeamDeleted;
use Laravel\Jetstream\Events\TeamUpdated;
use Laravel\Jetstream\Jetstream;
use Laravel\Jetstream\Team as JetstreamTeam;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
@@ -42,7 +42,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
*/
class Organization extends JetstreamTeam implements AuditableContract
{
use Auditable;
use CustomAuditable;
/** @use HasFactory<OrganizationFactory> */
use HasFactory;

View File

@@ -4,13 +4,13 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\CustomAuditable;
use App\Models\Concerns\HasUuids;
use Database\Factories\OrganizationInvitationFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Carbon;
use Laravel\Jetstream\TeamInvitation as JetstreamTeamInvitation;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
@@ -26,7 +26,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
*/
class OrganizationInvitation extends JetstreamTeamInvitation implements AuditableContract
{
use Auditable;
use CustomAuditable;
/** @use HasFactory<OrganizationInvitationFactory> */
use HasFactory;

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\CustomAuditable;
use App\Models\Concerns\HasUuids;
use Database\Factories\ProjectFactory;
use Illuminate\Database\Eloquent\Builder;
@@ -14,7 +15,6 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Carbon;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
@@ -40,7 +40,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
*/
class Project extends Model implements AuditableContract
{
use Auditable;
use CustomAuditable;
/** @use HasFactory<ProjectFactory> */
use HasFactory;
@@ -55,6 +55,7 @@ class Project extends Model implements AuditableContract
protected $casts = [
'name' => 'string',
'color' => 'string',
'archived_at' => 'datetime',
];
/**

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\CustomAuditable;
use App\Models\Concerns\HasUuids;
use Database\Factories\ProjectMemberFactory;
use Illuminate\Database\Eloquent\Builder;
@@ -11,7 +12,6 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Carbon;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
@@ -31,7 +31,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
*/
class ProjectMember extends Model implements AuditableContract
{
use Auditable;
use CustomAuditable;
/** @use HasFactory<ProjectMemberFactory> */
use HasFactory;

View File

@@ -4,13 +4,13 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\CustomAuditable;
use App\Models\Concerns\HasUuids;
use Database\Factories\TagFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Carbon;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
@@ -25,7 +25,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
*/
class Tag extends Model implements AuditableContract
{
use Auditable;
use CustomAuditable;
/** @use HasFactory<TagFactory> */
use HasFactory;

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\CustomAuditable;
use App\Models\Concerns\HasUuids;
use Database\Factories\TaskFactory;
use Illuminate\Database\Eloquent\Builder;
@@ -14,7 +15,6 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Carbon;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
@@ -34,7 +34,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
*/
class Task extends Model implements AuditableContract
{
use Auditable;
use CustomAuditable;
/** @use HasFactory<TaskFactory> */
use HasFactory;

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\CustomAuditable;
use App\Models\Concerns\HasUuids;
use App\Service\BillableRateService;
use Carbon\CarbonInterval;
@@ -14,7 +15,6 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Carbon;
use Korridor\LaravelComputedAttributes\ComputedAttributes;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
@@ -47,8 +47,8 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
*/
class TimeEntry extends Model implements AuditableContract
{
use Auditable;
use ComputedAttributes;
use CustomAuditable;
/** @use HasFactory<TimeEntryFactory> */
use HasFactory;

View File

@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Models;
use App\Enums\Weekday;
use App\Models\Concerns\CustomAuditable;
use App\Models\Concerns\HasUuids;
use Database\Factories\UserFactory;
use Filament\Models\Contracts\FilamentUser;
@@ -25,7 +26,6 @@ use Laravel\Fortify\TwoFactorAuthenticatable;
use Laravel\Jetstream\HasProfilePhoto;
use Laravel\Jetstream\HasTeams;
use Laravel\Passport\HasApiTokens;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
@@ -57,7 +57,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
*/
class User extends Authenticatable implements AuditableContract, FilamentUser, MustVerifyEmail
{
use Auditable;
use CustomAuditable;
use HasApiTokens;
/** @use HasFactory<UserFactory> */

View File

@@ -98,6 +98,7 @@ class ImportDatabaseHelper
throw new ImportException('Invalid data: '.implode(', ', $validator->errors()->all()));
}
/** @var TModel $model */
$model = new $this->model;
foreach ($data as $key => $value) {
$model->{$key} = $value;
@@ -105,6 +106,9 @@ class ImportDatabaseHelper
if ($this->beforeSave !== null) {
($this->beforeSave)($model);
}
if (method_exists($model, 'disableAuditing')) {
$model->disableAuditing();
}
$model->save();
if ($this->afterCreate !== null) {

View File

@@ -221,7 +221,7 @@ return [
|
*/
'max_execution_time' => 30,
'max_execution_time' => 45,
/**
* Custom swoole config

View File

@@ -36,7 +36,7 @@ class TogglTimeEntriesImporterTest extends ImporterTestAbstract
$queryLog = DB::getQueryLog();
// Assert
$this->assertCount(31, $queryLog);
$this->assertCount(23, $queryLog);
$testScenario = $this->checkTestScenarioAfterImportExcludingTimeEntries();
$this->checkTimeEntries($testScenario);
$this->assertSame(2, $report->timeEntriesCreated);