Add group name

This commit is contained in:
philipp lang 2021-11-18 00:09:37 +01:00
parent 86885b153d
commit eb6dd27bf4
3 changed files with 38 additions and 30 deletions
app/Initialize
packages
tests/Feature/Initialize

View File

@ -11,6 +11,7 @@ use App\Group;
use App\Member\Member;
use App\Nationality;
use App\Region;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Zoomyboy\LaravelNami\Member as NamiMember;
class InitializeMembers {
@ -38,35 +39,39 @@ class InitializeMembers {
$this->bar->task('Synchronisiere Mitglieder', function() {
$this->api->search([])->each(function($member) {
$member = NamiMember::fromNami($this->api->member($member->group_id, $member->id));
$m = Member::create([
'firstname' => $member->firstname,
'lastname' => $member->lastname,
'nickname' => $member->nickname,
'joined_at' => $member->joined_at,
'birthday' => $member->birthday,
'send_newspaper' => $member->send_newspaper,
'address' => $member->address,
'zip' => $member->zip,
'location' => $member->location,
'nickname' => $member->nickname,
'other_country' => $member->other_country,
'further_address' => $member->further_address,
'main_phone' => $member->main_phone,
'mobile_phone' => $member->mobile_phone,
'work_phone' => $member->work_phone,
'fax' => $member->fax,
'email' => $member->email,
'email_parents' => $member->email_parents,
'nami_id' => $member->id,
'group_id' => Group::firstOrCreate(['nami_id' => $member->group_id], ['nami_id' => $member->group_id, 'name' => 'AAA'])->id,
'gender_id' => optional(Gender::firstWhere('nami_id', $member->gender_id ?: -1))->id,
'confession_id' => optional(Confession::firstWhere('nami_id', $member->confession_id ?: -1))->id,
'region_id' => optional(Region::firstWhere('nami_id', $member->region_id ?: -1))->id,
'country_id' => Country::where('nami_id', $member->country_id)->firstOrFail()->id,
'subscription_id' => $this->getSubscriptionId($member),
'nationality_id' => Nationality::where('nami_id', $member->nationality_id)->firstOrFail()->id,
'version' => $member->version,
]);
try {
$m = Member::create([
'firstname' => $member->firstname,
'lastname' => $member->lastname,
'nickname' => $member->nickname,
'joined_at' => $member->joined_at,
'birthday' => $member->birthday,
'send_newspaper' => $member->send_newspaper,
'address' => $member->address,
'zip' => $member->zip,
'location' => $member->location,
'nickname' => $member->nickname,
'other_country' => $member->other_country,
'further_address' => $member->further_address,
'main_phone' => $member->main_phone,
'mobile_phone' => $member->mobile_phone,
'work_phone' => $member->work_phone,
'fax' => $member->fax,
'email' => $member->email,
'email_parents' => $member->email_parents,
'nami_id' => $member->id,
'group_id' => Group::firstOrCreate(['nami_id' => $member->group_id], ['nami_id' => $member->group_id, 'name' => $member->group_name])->id,
'gender_id' => optional(Gender::firstWhere('nami_id', $member->gender_id ?: -1))->id,
'confession_id' => optional(Confession::firstWhere('nami_id', $member->confession_id ?: -1))->id,
'region_id' => optional(Region::firstWhere('nami_id', $member->region_id ?: -1))->id,
'country_id' => Country::where('nami_id', $member->country_id)->firstOrFail()->id,
'subscription_id' => $this->getSubscriptionId($member),
'nationality_id' => Nationality::where('nami_id', $member->nationality_id)->firstOrFail()->id,
'version' => $member->version,
]);
} catch (ModelNotFoundException $e) {
dd($e->exception(), $member);
}
});
});
}

@ -1 +1 @@
Subproject commit b8c67aa5edfcb950435d66211976e26ddadcde91
Subproject commit 2ac35dd8c5226234ccc5755fe77530dfb5ffc4de

View File

@ -47,6 +47,7 @@ class InitializeTest extends TestCase
'strasse' => '::street',
'plz' => '12345',
'ort' => '::location::',
'gruppierung' => '::group::',
'version' => 40,
]);
} else {
@ -97,6 +98,7 @@ class InitializeTest extends TestCase
'name' => 'Leiter',
'nami_id' => 305
]);
$this->assertDatabaseHas('groups', ['nami_id' => 1000, 'name' => '::group::']);
$this->assertDatabaseHas('members', [
'nami_id' => 411,
'gender_id' => Gender::nami(303)->id,
@ -155,6 +157,7 @@ class InitializeTest extends TestCase
'plz' => '12345',
'ort' => '::location::',
'version' => 40,
'gruppierung' => '::group::',
]);
}