Pull membeer before pushing
This commit is contained in:
parent
326761e88d
commit
b833537f32
|
@ -125,8 +125,12 @@ class Api {
|
||||||
|
|
||||||
public function putMember(array $attributes) {
|
public function putMember(array $attributes) {
|
||||||
$member = Member::fromAttributes($attributes);
|
$member = Member::fromAttributes($attributes);
|
||||||
|
$existing = $this->member($member->group_id, $member->id);
|
||||||
if (data_get($attributes, 'id')) {
|
if (data_get($attributes, 'id')) {
|
||||||
$response = $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,
|
||||||
|
array_merge($existing, $member->toNami())
|
||||||
|
);
|
||||||
if (data_get($response->json(), 'success') !== true) {
|
if (data_get($response->json(), 'success') !== true) {
|
||||||
$this->exception('Update failed', $member->toNami(), $response->json());
|
$this->exception('Update failed', $member->toNami(), $response->json());
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,6 +67,11 @@ class FakeBackend {
|
||||||
return $this->fakeMembers([$data]);
|
return $this->fakeMembers([$data]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function singleMemberUrl(int $gruppierungId, int $memberId): string
|
||||||
|
{
|
||||||
|
return "https://nami.dpsg.de/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/{$gruppierungId}/{$memberId}";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<int, array<string, mixed>> $data
|
* @param array<int, array<string, mixed>> $data
|
||||||
*/
|
*/
|
||||||
|
@ -74,7 +79,7 @@ class FakeBackend {
|
||||||
{
|
{
|
||||||
Http::fake(function($request) use ($data) {
|
Http::fake(function($request) use ($data) {
|
||||||
foreach ($data as $member) {
|
foreach ($data as $member) {
|
||||||
if ($request->url() === "https://nami.dpsg.de/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/{$member['gruppierungId']}/{$member['id']}") {
|
if ($request->url() === $this->singleMemberUrl($member['gruppierungId'], $member['id']) && $request->method() === 'GET') {
|
||||||
$content = [
|
$content = [
|
||||||
'success' => true,
|
'success' => true,
|
||||||
'data' => $member,
|
'data' => $member,
|
||||||
|
|
|
@ -58,7 +58,7 @@ class PushMemberTest extends TestCase
|
||||||
$this->assertEquals(16, $res['id']);
|
$this->assertEquals(16, $res['id']);
|
||||||
|
|
||||||
Http::assertSent(function($request) use ($check) {
|
Http::assertSent(function($request) use ($check) {
|
||||||
if ($request->url() != 'https://nami.dpsg.de/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/103/16') {
|
if ($request->url() != 'https://nami.dpsg.de/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/103/16' || $request->method() !== 'PUT') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ class PushMemberTest extends TestCase
|
||||||
return $request->method() === 'PUT';
|
return $request->method() === 'PUT';
|
||||||
});
|
});
|
||||||
|
|
||||||
Http::assertSentCount(1);
|
Http::assertSentCount(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue