Pull membeer before pushing

This commit is contained in:
philipp lang 2022-02-11 01:23:31 +01:00
parent 326761e88d
commit b833537f32
3 changed files with 13 additions and 4 deletions

View File

@ -125,8 +125,12 @@ class Api {
public function putMember(array $attributes) {
$member = Member::fromAttributes($attributes);
$existing = $this->member($member->group_id, $member->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) {
$this->exception('Update failed', $member->toNami(), $response->json());
}

View File

@ -67,6 +67,11 @@ class FakeBackend {
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
*/
@ -74,7 +79,7 @@ class FakeBackend {
{
Http::fake(function($request) use ($data) {
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 = [
'success' => true,
'data' => $member,

View File

@ -58,7 +58,7 @@ class PushMemberTest extends TestCase
$this->assertEquals(16, $res['id']);
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;
}
@ -71,7 +71,7 @@ class PushMemberTest extends TestCase
return $request->method() === 'PUT';
});
Http::assertSentCount(1);
Http::assertSentCount(2);
}
}