Rozbudować funkcjonalność serwisu internetowego
Dane:
Serwis na Laravel (panel administracyjny Orchid) umożliwiający wysyłanie powiadomień przez bota Telegram/Viber do użytkowników
Zadanie:
Zrealizować na podstawie istniejącej logiki funkcjonalność wysyłania "linków przekierowujących" z opcją otrzymywania wyników przez webhook:
1. W panelu administracyjnym serwisu należy dodać encję "Link przekierowujący" z możliwościami konfiguracji:
- Nazwa linku
- Link do przekierowania (do zewnętrznego serwisu, który po spełnieniu warunków przez użytkownika na swojej stronie wyśle webhook do naszego serwisu z wynikiem)
- Czas życia linku (po upływie czasu link staje się nieważny)
- Czas życia odpowiedzi zwrotnej (po upływie czasu wysłana wiadomość jest oznaczana jako nieudana)
2. W panelu administracyjnym serwisu należy dodać encję "Wynik przekierowania" z możliwościami konfiguracji:
- Link do przekierowania
- Status przekierowania (sukces/niepowodzenie)
- Dane przekierowania (pole do przechowywania danych, które przyszły przez webhook)
3. Rozszerzyć obecny funkcjonalność wysyłania wiadomości logiką wysyłania linków (unikalnych dla każdego użytkownika) z możliwością otrzymywania wyników przez webhook:
- Przy wysyłaniu wiadomości do użytkownika na Telegram/Viber dodawany jest przycisk "Przejdź do linku" (lub z tekstem podanym przy tworzeniu linku)
- Po naciśnięciu przycisku użytkownik przechodzi do linku przekierowującego (przekierowanie odbywa się po stronie naszego serwisu)
- Fakt przekierowania jest zapisywany w bazie w encji "Wynik przekierowania"
- Po przejściu do linku na zewnętrznym serwisie spełniane są warunki i wysyłany jest webhook do naszego serwisu z wynikiem
- Wynik jest zapisywany w bazie danych w encji "Wynik przekierowania"
4. Po uzyskaniu pozytywnego wyniku przekierowania użytkownik otrzymuje bonusy (logika przyznawania bonusów jest już zrealizowana w serwisie)
Warunki:
- Cała nowa logika musi być pokryta testami jednostkowymi
- Wszystkie zmiany wprowadzane są przez git
- Wszystkie działania powinny być rejestrowane w logach po stronie serwisu