Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 5.11 KB | None | 0 0
  1. package hu.loginet.android.loginetwebshop.core.repository
  2.  
  3. import hu.loginet.android.loginetwebshop.core.businessObjects.*
  4. import hu.loginet.android.loginetwebshop.core.enums.QueryParameter
  5. import hu.loginet.android.loginetwebshop.core.network.APIDefinition
  6. import hu.loginet.android.loginetwebshop.core.utils.QueryParseUtil
  7. import retrofit2.Call
  8. import retrofit2.Callback
  9. import retrofit2.Response
  10. import java.util.ArrayList
  11.  
  12. /**
  13.  * Created by Boros on 2018. 01. 16..
  14.  */
  15. class ProductRepo(private val apiDefinition: APIDefinition) : ProductRepositoryInterface {
  16.  
  17.     override fun getProductList(queryParameters: HashMap<QueryParameter, String>, filterParameters: ArrayList<FilterParameter>?, listener: ProductRepositoryInterface.OnProductListReadyListener) {
  18.         val queryParams: HashMap<String, String> = QueryParseUtil.createQueryParametersHashMap(queryParameters)
  19.         var filterKeys: ArrayList<String> = ArrayList()
  20.         var filterValues: ArrayList<String> = ArrayList()
  21.  
  22.         if(filterParameters != null) {
  23.             filterKeys = QueryParseUtil.createFilterKeysList(filterParameters)
  24.             filterValues = QueryParseUtil.createFilterValuesList(filterParameters)
  25.         }
  26.  
  27.         apiDefinition.getProductList(queryParams, filterKeys, filterValues).enqueue(object : Callback<ProductList> {
  28.             override fun onResponse(call: Call<ProductList>?, response: Response<ProductList>?) {
  29.                 if (response?.code() == 200) {
  30.                     listener.onProductListReady(response.body())
  31.                 }
  32.             }
  33.  
  34.             override fun onFailure(call: Call<ProductList>?, t: Throwable?) {
  35.  
  36.             }
  37.         })
  38.     }
  39.  
  40.     override fun getProductDetail(itemId: String, listener: ProductRepositoryInterface.OnProductDetailReadyListener) {
  41.         apiDefinition.getProductDetail(itemId).enqueue(object : Callback<DetailedProduct> {
  42.             override fun onResponse(call: Call<DetailedProduct>?, response: Response<DetailedProduct>?) {
  43.                 if (response?.code() == 200) {
  44.                     listener.onProductDetailReady(response.body())
  45.                 }
  46.             }
  47.  
  48.             override fun onFailure(call: Call<DetailedProduct>?, t: Throwable?) {
  49.  
  50.             }
  51.         })
  52.     }
  53.  
  54.     override fun getRelatedProductList(itemId: String, listener: ProductRepositoryInterface.OnProductListReadyListener) {
  55.         apiDefinition.getRelatedProductList(itemId).enqueue(object : Callback<ProductList> {
  56.             override fun onResponse(call: Call<ProductList>?, response: Response<ProductList>?) {
  57.                 if (response?.code() == 200) {
  58.                     listener.onProductListReady(response.body())
  59.                 }
  60.             }
  61.  
  62.             override fun onFailure(call: Call<ProductList>?, t: Throwable?) {
  63.  
  64.             }
  65.         })
  66.     }
  67.  
  68.     override fun getCategoryTree(treeId: String, listener: ProductRepositoryInterface.OnCategoryNodeReadyListener) {
  69.         apiDefinition.getCategoryTree(treeId).enqueue(object : Callback<CategoryNode> {
  70.             override fun onResponse(call: Call<CategoryNode>?, response: Response<CategoryNode>?) {
  71.                 if (response?.code() == 200) {
  72.                     listener.onCategoryNodeReady(response.body())
  73.                 }
  74.             }
  75.  
  76.             override fun onFailure(call: Call<CategoryNode>?, t: Throwable?) {
  77.  
  78.             }
  79.         })
  80.     }
  81.  
  82.     override fun getTrending(listener: ProductRepositoryInterface.OnSearchRecordsReadyListener) {
  83.         apiDefinition.getTrending().enqueue(object : Callback<ArrayList<SearchRecord>> {
  84.             override fun onResponse(call: Call<ArrayList<SearchRecord>>?, response: Response<ArrayList<SearchRecord>>?) {
  85.                 if (response?.code() == 200) {
  86.                     listener.onSearchRecordsReady(response.body())
  87.                 }
  88.             }
  89.  
  90.             override fun onFailure(call: Call<ArrayList<SearchRecord>>?, t: Throwable?) {
  91.  
  92.             }
  93.         })
  94.     }
  95.  
  96.     override fun getSuggestions(substring: String, categories: ArrayList<String>, listener: ProductRepositoryInterface.OnSuggestionsReadyListener) {
  97.         val queryParams: HashMap<String, String> = HashMap()
  98.         apiDefinition.getSuggestions(substring, queryParams).enqueue(object : Callback<ArrayList<String>> {
  99.             override fun onResponse(call: Call<ArrayList<String>>?, response: Response<ArrayList<String>>?) {
  100.                 if (response?.code() == 200) {
  101.                     listener.onSuggestionsReady(response.body())
  102.                 }
  103.             }
  104.  
  105.             override fun onFailure(call: Call<ArrayList<String>>?, t: Throwable?) {
  106.  
  107.             }
  108.         })
  109.     }
  110.  
  111.     override fun getRecent(listener: ProductRepositoryInterface.OnRecentSearchRecordsReadyListener) {
  112.         TODO("Szabi, ROOM") //To change body of created functions use File | Settings | File Templates.
  113.     }
  114.  
  115.     override fun addRecentSearchRecord(recentSearchRecord: RecentSearchRecord, listener: ProductRepositoryInterface.OnSearchSavedListener) {
  116.         TODO("Szabi, ROOM") //To change body of created functions use File | Settings | File Templates.
  117.     }
  118.  
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement