2022-01-03 10:33:48 +01:00
|
|
|
<?php
|
2020-04-12 00:26:44 +02:00
|
|
|
|
|
|
|
namespace App\Initialize;
|
|
|
|
|
2023-02-07 02:45:15 +01:00
|
|
|
use App\Actions\PullCoursesAction;
|
2023-02-06 00:24:57 +01:00
|
|
|
use App\Actions\PullMemberAction;
|
2023-02-07 01:38:27 +01:00
|
|
|
use App\Actions\PullMembershipsAction;
|
2023-02-07 23:55:46 +01:00
|
|
|
use App\Setting\NamiSettings;
|
2022-09-02 00:45:39 +02:00
|
|
|
use DB;
|
2023-02-07 23:55:46 +01:00
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use Lorisleiva\Actions\Concerns\AsAction;
|
2022-02-12 16:16:56 +01:00
|
|
|
use Zoomyboy\LaravelNami\Api;
|
2023-02-07 23:23:15 +01:00
|
|
|
use Zoomyboy\LaravelNami\Exceptions\Skippable;
|
2021-04-10 01:39:39 +02:00
|
|
|
|
2022-03-11 20:19:17 +01:00
|
|
|
class InitializeMembers
|
|
|
|
{
|
2023-02-07 23:55:46 +01:00
|
|
|
use AsAction;
|
2022-01-03 10:33:48 +01:00
|
|
|
|
2023-02-08 00:14:59 +01:00
|
|
|
public string $commandSignature = 'member:pull';
|
2020-04-12 00:26:44 +02:00
|
|
|
|
2023-02-07 23:55:46 +01:00
|
|
|
public function handle(Api $api): void
|
2022-02-12 16:16:56 +01:00
|
|
|
{
|
2020-04-12 00:26:44 +02:00
|
|
|
$allMembers = collect([]);
|
|
|
|
|
2023-02-07 23:55:46 +01:00
|
|
|
$api->search([])->each(function ($member) {
|
2023-02-07 23:23:15 +01:00
|
|
|
try {
|
|
|
|
$localMember = app(PullMemberAction::class)->handle($member->groupId, $member->id);
|
|
|
|
} catch (Skippable $e) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2023-02-07 01:38:27 +01:00
|
|
|
app(PullMembershipsAction::class)->handle($localMember);
|
2023-02-07 02:45:15 +01:00
|
|
|
app(PullCoursesAction::class)->handle($localMember);
|
2023-02-07 01:38:27 +01:00
|
|
|
});
|
2022-01-03 10:33:48 +01:00
|
|
|
}
|
2022-09-02 00:45:39 +02:00
|
|
|
|
|
|
|
public function restore(): void
|
|
|
|
{
|
|
|
|
DB::table('payments')->delete();
|
|
|
|
DB::table('course_members')->delete();
|
|
|
|
DB::table('memberships')->delete();
|
|
|
|
DB::table('members')->delete();
|
|
|
|
}
|
2023-02-07 23:55:46 +01:00
|
|
|
|
|
|
|
public function asCommand(Command $command): int
|
|
|
|
{
|
|
|
|
$this->handle(app(NamiSettings::class)->login());
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
2020-04-12 00:26:44 +02:00
|
|
|
}
|