Hej,
Piszę sobie pewne API. Ogólny zarys systemu raczej nie jest istotny więc skupię się tylko na dwóch jego częściach: Posty (takie jak na forum) oraz Subskrypcja - dwa typy użytkowników: darmowi oraz płatni.
Wysyłam zapytanie do funkcji w PostsService przekazując 3 parametry: post, datę posta oraz userId.
Funkcja ma dokonać wielu sprawdzeń, między innymi:
- czy taki post istnieje
- jeśli nie istnieje, to czy istniał w przeszłości: jeśli tak, to trzeba go skopiować, stworzyć z aktualną datą oraz zapisać
- sprawdzić czy użytkownik ma prawo do tego aby dodać tego posta (czy jest darmowy czy nie)
- jeśli użytkownik ma płatną subskrypcję to wtedy wysyłam dodatkowe zapytanie do innego zewnętrznego API z którego korzystam
Dodatkowo w części SubscriptionService dokonuje kilku innych operacji: - jeżeli jest darmowy to sprawdzam tylko bazę danych
- jeśli jest płatny to odpytuje dodatkowo zewnętrzne API
- zwiększam licznik zapytań danego usera
- jeżeli user ma płatną subskrypcję to trzeba sprawdzić czy data jej wygaśnięcia jest większa niż dzisiejsza, jeśli NIE to znaczy że mu się skończyła i staje się user darmowym...
Wiem jest to zagmatwane. Próbuje to zakodować już od co najmniej tygodnia, mam spore problemy, podejrzewam że dlatego że nie umiem za dobrze projektować obiektowo.
Czy mógłby mi ktoś pomóc nakreślić jak to powinno ogólnie ze sobą wszystko współgrać?