From 78860cb5293cbe28b2d077c923e1616d8f174d0e Mon Sep 17 00:00:00 2001 From: philipp lang Date: Sun, 13 Jun 2021 16:22:01 +0200 Subject: [PATCH] Throw exception when update failed --- src/Api.php | 7 ++++++- tests/Unit/PushMemberTest.php | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Api.php b/src/Api.php index 4c16bf9..6b23d1a 100644 --- a/src/Api.php +++ b/src/Api.php @@ -10,6 +10,7 @@ use Illuminate\Support\Facades\Http; use Illuminate\Support\Collection; use Zoomyboy\LaravelNami\Backend\Backend; use Zoomyboy\LaravelNami\Concerns\IsNamiMember; +use Zoomyboy\LaravelNami\NamiException; class Api { @@ -67,7 +68,11 @@ class Api { public function putMember(array $attributes) { $member = Member::fromAttributes($attributes); - $this->http()->put(self::$url.'/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/'.$member->group_id.'/'.$member->id, $member->toNami()); + $response = $this->http()->put(self::$url.'/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/'.$member->group_id.'/'.$member->id, $member->toNami()); + + if (!data_get($response->json(), 'id')) { + throw new NamiException('update failed'); + } } public function membershipsOf($memberId): Collection { diff --git a/tests/Unit/PushMemberTest.php b/tests/Unit/PushMemberTest.php index 6a2a6a9..6737ef8 100644 --- a/tests/Unit/PushMemberTest.php +++ b/tests/Unit/PushMemberTest.php @@ -70,8 +70,8 @@ class PushMemberTest extends TestCase */ public function test_push_a_single_member($key, $values) { Http::fake(array_merge($this->login(), [ - 'https://nami.dpsg.de/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/103/16' => Http::response('', 200), - 'https://nami.dpsg.de/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/103/17' => Http::response('', 200), + 'https://nami.dpsg.de/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/103/16' => Http::response('{"id": 16}', 200), + 'https://nami.dpsg.de/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/103/17' => Http::response('{"id": 17}', 200), ])); $this->setCredentials();