package com.aptoide.amethyst.webservices;
import android.content.Context;
import com.aptoide.amethyst.Aptoide;
import com.aptoide.amethyst.preferences.SecurePreferences;
import com.aptoide.amethyst.utils.AptoideUtils;
import com.aptoide.dataprovider.webservices.models.WebserviceOptions;
import com.octo.android.robospice.request.retrofit.RetrofitSpiceRequest;
import java.util.ArrayList;
import java.util.HashMap;
import retrofit.RetrofitError;
import retrofit.http.FieldMap;
import retrofit.http.FormUrlEncoded;
import retrofit.http.POST;
/**
* Created by fabio on 15-10-2015.
*/
public class ListUserbasedApkRequest extends RetrofitSpiceRequest<ListRecomended, ListUserbasedApkRequest.Webservice> {
String baseUrl = WebserviceOptions.WebServicesLink + "3/listUserBasedApks";
public interface Webservice{
@POST("/webservices.aptoide.com/webservices/3/listUserBasedApks")
@FormUrlEncoded
ListRecomended getRecommended(@FieldMap HashMap<String, String> args);
}
private String token;
private int limit;
public ListUserbasedApkRequest(Context context) {
super(ListRecomended.class, Webservice.class);
}
@Override
public ListRecomended loadDataFromNetwork() throws Exception {
ArrayList<WebserviceOptions> options = new ArrayList<WebserviceOptions>();
// GenericUrl url = new GenericUrl(baseUrl);
HashMap<String, String > parameters = new HashMap<String, String>();
parameters.put("mode", "json");
options.add(new WebserviceOptions("q", AptoideUtils.HWSpecifications.filters(Aptoide.getContext())));
if(limit>0)options.add(new WebserviceOptions("limit", String.valueOf(limit)));
options.add(new WebserviceOptions("lang", AptoideUtils.StringUtils.getMyCountryCode(Aptoide.getContext())));
StringBuilder sb = new StringBuilder();
sb.append("(");
for(WebserviceOptions option: options){
sb.append(option);
sb.append(";");
}
sb.append(")");
parameters.put("options", sb.toString());
token = SecurePreferences.getInstance().getString("access_token", "empty");
parameters.put("access_token", token);
// HttpContent content = new UrlEncodedContent(parameters);
//
// HttpRequest request = getHttpRequestFactory().buildPostRequest(url, content);
//
// request.setUnsuccessfulResponseHandler(new OAuthRefreshAccessTokenHandler(parameters, getHttpRequestFactory()));
//
// Log.d("Aptoide-ApkUserBased", url.toString());
// request.setParser(new JacksonFactory().createJsonObjectParser());
//
// return request.execute().parseAs( getResultType() );
ListRecomended response = null;
try{
response = getService().getRecommended(parameters);
}catch (RetrofitError error){
OauthErrorHandler.handle(error);
}
return response;
}
public void setLimit(int limit) {
this.limit = limit;
}
}