From eb6dd27bf4e30449fff8abaae20dc1ee2136e033 Mon Sep 17 00:00:00 2001 From: philipp lang Date: Thu, 18 Nov 2021 00:09:37 +0100 Subject: [PATCH] Add group name --- app/Initialize/InitializeMembers.php | 63 +++++++++++---------- packages/laravel-nami | 2 +- tests/Feature/Initialize/InitializeTest.php | 3 + 3 files changed, 38 insertions(+), 30 deletions(-) diff --git a/app/Initialize/InitializeMembers.php b/app/Initialize/InitializeMembers.php index ae9fb9c5..14b4509d 100644 --- a/app/Initialize/InitializeMembers.php +++ b/app/Initialize/InitializeMembers.php @@ -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); + } }); }); } diff --git a/packages/laravel-nami b/packages/laravel-nami index b8c67aa5..2ac35dd8 160000 --- a/packages/laravel-nami +++ b/packages/laravel-nami @@ -1 +1 @@ -Subproject commit b8c67aa5edfcb950435d66211976e26ddadcde91 +Subproject commit 2ac35dd8c5226234ccc5755fe77530dfb5ffc4de diff --git a/tests/Feature/Initialize/InitializeTest.php b/tests/Feature/Initialize/InitializeTest.php index 5eccfe1d..9646638f 100644 --- a/tests/Feature/Initialize/InitializeTest.php +++ b/tests/Feature/Initialize/InitializeTest.php @@ -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::', ]); }