adrema/app/Initialize/InitializeJob.php

53 lines
1.3 KiB
PHP
Raw Normal View History

2020-04-12 00:26:44 +02:00
<?php
namespace App\Initialize;
use App\Member;
use Aweos\Agnoster\Progress\HasProgress;
2021-11-17 22:32:52 +01:00
use Illuminate\Bus\Queueable;
2020-04-12 00:26:44 +02:00
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
2021-11-17 22:32:52 +01:00
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
2021-06-21 23:50:09 +02:00
use Zoomyboy\LaravelNami\NamiUser;
2020-04-12 00:26:44 +02:00
class InitializeJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, HasProgress;
public $user;
public static $initializers = [
InitializeNationalities::class,
InitializeFees::class,
InitializeConfessions::class,
InitializeCountries::class,
InitializeGenders::class,
InitializeRegions::class,
InitializeActivities::class,
2020-06-01 22:22:19 +02:00
InitializeMembers::class,
2020-04-12 00:26:44 +02:00
];
2021-06-21 23:50:09 +02:00
public function __construct(NamiUser $user)
2020-04-12 00:26:44 +02:00
{
$this->user = $user;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
2021-06-21 23:50:09 +02:00
$api = $this->user->api();
2020-04-12 00:26:44 +02:00
$bar = $this->createProgressBar('Initialisiere');
foreach (static::$initializers as $initializer) {
2021-11-17 23:58:28 +01:00
(new $initializer($bar, $api))->handle($this->user);
2020-04-12 00:26:44 +02:00
}
$bar->finish('Initialisierung abgeschlossen');
}
}