Potencjalne błędy:

 

- brak 'from' gdy jest 'to' = /expenses/filter?to=2000-01-01

- brak 'to' gdy jest 'from' = /expenses/filter?from=2000-01-01

- brak 'month' gdy jest 'year'= /expenses/filter?year=2000

- brak 'year' gdy jest 'month' = /expenses/filter?month=may

 

Klasa MissingExpensesFilterException powinna rozszerzać RuntimeException, dla ułatwienie odnalezienia miejsca możesz dodać w klasie prywatne pole, np.: 'errorCode', które będzie uzupełnianie w zależności od wystąpienie, przykładowe wywołanie:

 

throw new MissingExpensesFilterException(MISSING_FILTER_KEY, UUID) - UUID to dowolny identyfikator przypisany na sztywno (zachardcodowany w miejscu wystąpienia wyjątku).Stosowanie takich identyfikatorów, ułatwia szukania miejsc, w których wystąpił błąd.

 

Enum ExpensesExceptionErrorMessages powinien mieć klusze (w przyszlości będzie wozwijany):

- MISSING_FILTER_KEY("missing filter key")

 

pseudokod dla ExpensesService i metody getFilteredExpenses - propozycja przekształcenia, nazwy mogą zasugerować rozwiązania i sprawdzenia:

```

getFilteredExpenses(Map filter) 

    return =  

        if (isFilterForFromAndToDate(filter)) then getAllExpensesBetweenDate(filter)   

        else  

        if (isFilterForMonthAndYear(filter)) then getAllExpensesForMonthInYear(filter)

        else

       emptyList

```

 

Testowanie Postmanem, lub innym narzędziem, np.: CURL, powinno dać w odpowiedzi: "500 Internal Service Error", w tym zadaniu liczy się tylko informacja w logach, czy błąd został poprawnie zalogowany.

06 Dodanie Wyjątków Filtrowanie Wydatków

02 marca 2024

Robert Szczygielski Dice Dev. Polityka Prywatności i Regulamin Szkoleń Online

Strona www stworzona w kreatorze WebWave.