Jesteś menegenren transformersów (z jakiegoś powodu autoboty i decepticony współpracują). Twoim głównym zajęciem jest prowadzenie ewidencji napraw robotów i skutków tych napraw. Należy podłączyc aplikację do API - zależy nam na sprawnym, periodycznym synchronizowaniu danych przy minimalnym obciążeniu serwera. Pobrane już dane wykorzystujemy wszędzie tam, gdzie mogą zostac wykorzystane.
API baseUrl
https://rod.codefray.net/api/v1/
- Pobieranie listy robotów i napraw + state management
- Dodawanie / edycja robotów + obsługa błędów
- Usuwanie robotów przez przeciągnięcie kafelka w lewo
- Ewaluacja
isActiveibrokenBeyondRepairdla robota na podstawie jego awarii + wizualna reprezentacja - Lista awarii z podziałem na archiwalne (ukończone), zaległe i aktywne
isActive- robot, który nie ma aktywnej awarii oraz ostatnia awaria NIE ZAKOŃCZYŁA się NIEPOWODZENIEMbrokenBeyondRepair- jeżeliisActive === falsei ostatnia awaria zakończyła się niepowodzeniem
Listy /transformers i /repairs skonstruowane są w ten sposób, że przyjmują opcjonalny parametr lastUpdate w formacie ISO8601.
https://rod.codefray.net/api/v1/transformers?lastUpdate=2021-01-01T00:00:00.000Z
{
data: Transformer[] | Repair[],
updated:Transformer[] | Repair[],
deleted: number[]
}
Jeżeli request zostanie wykonany bez tego parametru, wszystkie dostępne elementy znajdą się w data.
Jeżeli parametr zostanie ustawiony, zwrócona zostanie różnica. W data znajdą się elementy utworzone po lastUpdate,
w updated elementy zaktualizowane po tym znaczniku, a w deleted będzie lista id usuniętych elementów, których dotyczy endpoint po lastUpdate
GET(id), POST, PUT, DELETE410 (GoneException) - rekord nie istniejePUT409 (ConflictException) - obiekt pobrany o czasie T, ktoś inny zaktualizował o T+x, pobrany obiekt jest przestarzały
Gdy zapytanie pomyślnie przejdze walidację schemy, następuje dodatkowe sprawdzenie poprawności
w oparciu o stan danych na serwerze. W przypadku wykrycia nieprawidłowości serwer odpowie kodem 200 - w body
znajdzie się obiekt errors, gdzie kluczem będzie nazwa pola z body którego dotyczy błąd oraz informacja o kodzie błędu
{
errors: {
name: { code: 'not-unique' }
}
}Na liście transformersów potrzebujemy informację czy jest aktywny (czy nie posiada aktywnej awarii albo awarii zakończonej niepowodzeniem) - isActive
jeżeli nie jest aktywny i ostatnia awaria zakończyła się niepowodzeniem - oznacza to, że robot nie nadaje się do użytku (naprawa wykracza poza nasze możliwości) - brokenBeyondRepair.
Obie informacje powinny zostać wizualnie zaprezentowane na kafelkach robotów
