Необходмио реализовать логику получения данных для отображения виджета с информацией о пользователе.
Метод 1: /bundles
Результат запроса должен представляться массивом модели SpecialBundle и получаться из JSON (передается в виде Data).
Полученные данные нужно сохранять в кэш. До совершения сетевого запроса нужно проверять наличие кэша (если не пуст, то сразу возвращать данные)
Метод 2: /offers/list?userId=_адишник юзера_&recomendation=true/false
Значение параметра recomendation равно true или false в зависимости от вызываемого метода (см. описание протокола)
Результат запроса должен представляться массивом модели OfferShortInfo и получаться из JSON (передается в виде Data)
Возможные знавения для поля type объекта bonuses:
- cashback – кэшбэк (процент)
- special_points – бонусные баллы
valueвbonuses– дробное число
Массив restrictions содержит ограничения по отображению и доступности спецпредложения (может быть пустой, но поле обязательное). Возможные значения элемнетов:
for_bundles– описывает ограничения по подпискам. Внутри содержится массивbundles_idsс кодами подписок, для которых доступено данное спецпредложение, а такжеnewValue, которое указывает то, на какое значение необходимо заменить бонус изbonuses->value
Метод 3: /offers?userId=_адишник юзера_&id=_айдишник оффера_
Результат запроса должен представляться моделью OfferFullDetails и получаться из JSON (передается в виде Data)
Контракт объекта спецпредложения содержит в себе все то, что описано в запросе 2. Особенностью данного метода является то, что он содержит расширенную информацию об конкретном спецпредложении
Необходимо реализовать
IBundlesService, который производит сетевой запрос на получение списка всех существующих подписок. Ожидается реализация сетевого запроса и парсинга результатаIOffersServiceдля данных об спецпредложениях. Ожидается реализация сетевого запроса и парсинга результата