Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package hu.loginet.android.loginetwebshop.core.repository
- import hu.loginet.android.loginetwebshop.core.businessObjects.*
- import hu.loginet.android.loginetwebshop.core.enums.QueryParameter
- import hu.loginet.android.loginetwebshop.core.network.APIDefinition
- import hu.loginet.android.loginetwebshop.core.utils.QueryParseUtil
- import retrofit2.Call
- import retrofit2.Callback
- import retrofit2.Response
- import java.util.ArrayList
- /**
- * Created by Boros on 2018. 01. 16..
- */
- class ProductRepo(private val apiDefinition: APIDefinition) : ProductRepositoryInterface {
- override fun getProductList(queryParameters: HashMap<QueryParameter, String>, filterParameters: ArrayList<FilterParameter>?, listener: ProductRepositoryInterface.OnProductListReadyListener) {
- val queryParams: HashMap<String, String> = QueryParseUtil.createQueryParametersHashMap(queryParameters)
- var filterKeys: ArrayList<String> = ArrayList()
- var filterValues: ArrayList<String> = ArrayList()
- if(filterParameters != null) {
- filterKeys = QueryParseUtil.createFilterKeysList(filterParameters)
- filterValues = QueryParseUtil.createFilterValuesList(filterParameters)
- }
- apiDefinition.getProductList(queryParams, filterKeys, filterValues).enqueue(object : Callback<ProductList> {
- override fun onResponse(call: Call<ProductList>?, response: Response<ProductList>?) {
- if (response?.code() == 200) {
- listener.onProductListReady(response.body())
- }
- }
- override fun onFailure(call: Call<ProductList>?, t: Throwable?) {
- }
- })
- }
- override fun getProductDetail(itemId: String, listener: ProductRepositoryInterface.OnProductDetailReadyListener) {
- apiDefinition.getProductDetail(itemId).enqueue(object : Callback<DetailedProduct> {
- override fun onResponse(call: Call<DetailedProduct>?, response: Response<DetailedProduct>?) {
- if (response?.code() == 200) {
- listener.onProductDetailReady(response.body())
- }
- }
- override fun onFailure(call: Call<DetailedProduct>?, t: Throwable?) {
- }
- })
- }
- override fun getRelatedProductList(itemId: String, listener: ProductRepositoryInterface.OnProductListReadyListener) {
- apiDefinition.getRelatedProductList(itemId).enqueue(object : Callback<ProductList> {
- override fun onResponse(call: Call<ProductList>?, response: Response<ProductList>?) {
- if (response?.code() == 200) {
- listener.onProductListReady(response.body())
- }
- }
- override fun onFailure(call: Call<ProductList>?, t: Throwable?) {
- }
- })
- }
- override fun getCategoryTree(treeId: String, listener: ProductRepositoryInterface.OnCategoryNodeReadyListener) {
- apiDefinition.getCategoryTree(treeId).enqueue(object : Callback<CategoryNode> {
- override fun onResponse(call: Call<CategoryNode>?, response: Response<CategoryNode>?) {
- if (response?.code() == 200) {
- listener.onCategoryNodeReady(response.body())
- }
- }
- override fun onFailure(call: Call<CategoryNode>?, t: Throwable?) {
- }
- })
- }
- override fun getTrending(listener: ProductRepositoryInterface.OnSearchRecordsReadyListener) {
- apiDefinition.getTrending().enqueue(object : Callback<ArrayList<SearchRecord>> {
- override fun onResponse(call: Call<ArrayList<SearchRecord>>?, response: Response<ArrayList<SearchRecord>>?) {
- if (response?.code() == 200) {
- listener.onSearchRecordsReady(response.body())
- }
- }
- override fun onFailure(call: Call<ArrayList<SearchRecord>>?, t: Throwable?) {
- }
- })
- }
- override fun getSuggestions(substring: String, categories: ArrayList<String>, listener: ProductRepositoryInterface.OnSuggestionsReadyListener) {
- val queryParams: HashMap<String, String> = HashMap()
- apiDefinition.getSuggestions(substring, queryParams).enqueue(object : Callback<ArrayList<String>> {
- override fun onResponse(call: Call<ArrayList<String>>?, response: Response<ArrayList<String>>?) {
- if (response?.code() == 200) {
- listener.onSuggestionsReady(response.body())
- }
- }
- override fun onFailure(call: Call<ArrayList<String>>?, t: Throwable?) {
- }
- })
- }
- override fun getRecent(listener: ProductRepositoryInterface.OnRecentSearchRecordsReadyListener) {
- TODO("Szabi, ROOM") //To change body of created functions use File | Settings | File Templates.
- }
- override fun addRecentSearchRecord(recentSearchRecord: RecentSearchRecord, listener: ProductRepositoryInterface.OnSearchSavedListener) {
- TODO("Szabi, ROOM") //To change body of created functions use File | Settings | File Templates.
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement