Add courses

This commit is contained in:
philipp lang 2021-11-18 01:54:41 +01:00
parent 2ac35dd8c5
commit df0ae96814
2 changed files with 44 additions and 0 deletions

View File

@ -194,6 +194,26 @@ class Api {
return $response->json()['data'];
}
public function courses(): Collection
{
$url = self::$url.'/ica/rest/module/baustein';
$response = $this->http()->get($url);
return collect($response->json()['data'])->map(function($course) {
return (object) ['name' => $course['descriptor'], 'id' => $course['id']];
});
}
public function coursesFor(int $memberId): Collection
{
$url = self::$url."/ica/rest/nami/mitglied-ausbildung/filtered-for-navigation/mitglied/mitglied/{$memberId}/flist";
$response = $this->http()->get($url);
return collect($response->json()['data'])->map(function($course) {
return (object) ['id' => $course['id'], 'organizer' => $course['veranstalter'], 'course_id' => $course['bausteinId'], 'event_name' => $course['vstgName'], 'completed_at' => $course['vstgTag']];
});
}
public function member($groupId, $memberId) {
$url = self::$url.'/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/'.$groupId.'/'.$memberId;
$response = $this->http()->get($url);

View File

@ -235,6 +235,16 @@ class FakeBackend {
]) ?: '{}', 200);
}
}
foreach ($data as $member) {
if ($request->url() === "https://nami.dpsg.de/ica/rest/nami/mitglied-ausbildung/filtered-for-navigation/mitglied/mitglied/{$member['id']}/flist") {
return Http::response(json_encode([
'success' => true,
'totalEntries' => count($member['courses'] ?? []),
'data' => collect($member['courses'] ?? [])
]) ?: '{}', 200);
}
}
});
return $this;
@ -254,6 +264,20 @@ class FakeBackend {
return $this;
}
/**
* @param array<int, array{name: string, id: int}> $data
*/
public function fakeCourses(array $data): self
{
Http::fake(function($request) use ($data) {
if ($request->url() === 'https://nami.dpsg.de/ica/rest/module/baustein') {
return $this->dataResponse($data);
}
});
return $this;
}
/**
* @param array<int, array{name: string, id: int}> $data
*/