Необходимо реализовать логику получения данных для отображения виджета с информацией о пользователе.
Метод 1: OperationsApi.getOperations(userId = <ID пользователя>)
Результат запроса должен представляться списком объектов типа OperationInfo и получаться из JSON jsonProvider.operationsListJson.
Список операций лежит в поле operations.
Значения валюты: special_point, rub
Значения для поля direction:
withdrawal– уходreceipt– приход
Полученные данные сохраняются в кеше. До совершения сетевого запроса проверяется наличие кеша (если список операций непустой, то сразу возвращаются данные)
Метод 2: UsersApi.getUser(userId = <ID пользователя>)
Результат запроса должен представляться моделью UserInfo и получаться из JSON jsonProvider.userJson
Полученные данные сохраняются в кеше. До совершения сетевого запроса нужно проверять наличие кеша (если есть данные, то они сразу возвращаются)
Операции:
- Необходимо реализовать
OperationsLocalDataSourceImpl, который сохраняет во внутреннюю переменную данные, переданные в методcacheOperationsи возвращает их при вызовеgetOperations() - При отсутствии закешированных данных метод
OperationsLocalDataSourceImpl.getOperations()возвращает пустой список. OperationsLocalDataSourceImplдолжен реализовывать интерфейсOperationsLocalDataSource- Необходимо реализовать
DefaultOperationsApi, который получает JSON изjsonProviderи парсит его в список объектов типаOperationInfo. - Необходимо реализовать
OperationsRemoteDataSourceImpl, который вызываетOperationsApiи получает от него объект.
Информация о пользователе:
- Необходимо реализовать
UserInfoLocalDataSourceImpl, который сохраняет во внутреннюю переменную данные, переданные в методcacheUserInfoи возвращает их при вызовеgetUserInfo() - При отсутствии закешированных данных метод
UserInfoLocalDataSource.getUserInfo()возвращаетnull. UserInfoLocalDataSourceImplдолжен реализовывать интерфейсUserInfoLocalDataSource- Необходимо реализовать
DefaultUsersApi, который получает JSON изjsonProviderи парсит его в объект типаUserInfo. - Необходимо реализовать
UserInfoRemoteDataSourceImpl, который вызываетUsersApiи получает от него объект. UserInfoRemoteDataSourceImplдолжен реализовывать интерфейсUserInfoRemoteDataSource