package com.aptoide.amethyst.webservices; import com.aptoide.amethyst.preferences.SecurePreferences; import com.aptoide.amethyst.utils.Logger; import com.aptoide.dataprovider.webservices.json.GenericResponseV2; import com.octo.android.robospice.request.retrofit.RetrofitSpiceRequest; import com.aptoide.dataprovider.webservices.models.WebserviceOptions; 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 rmateus on 02-03-2015. */ public class ChangeUserRepoSubscription extends RetrofitSpiceRequest<GenericResponseV2, ChangeUserRepoSubscription.ChangeUserRepoSubscriptionWebservice> { private ArrayList<RepoSubscription> repos; private RepoSubscription repoSubscription; public static class RepoSubscription { private String name; private boolean subscribed; public RepoSubscription(String name, boolean subscribed) { this.name = name; this.subscribed = subscribed; } } public void setRepoSubscription(RepoSubscription repoSubscription){ this.repoSubscription = repoSubscription; } public interface ChangeUserRepoSubscriptionWebservice{ @POST(WebserviceOptions.WebServicesLink+"3/changeUserRepoSubscription") @FormUrlEncoded GenericResponseV2 run(@FieldMap HashMap<String, String> args); } public ChangeUserRepoSubscription() { super( GenericResponseV2.class, ChangeUserRepoSubscriptionWebservice.class ); repos = new ArrayList<>(); } @Override public GenericResponseV2 loadDataFromNetwork() throws Exception { HashMap<String, String > parameters = new HashMap<>(); parameters.put("mode" , "json"); parameters.put("repo", repoSubscription.name); parameters.put("status", repoSubscription.subscribed ? "subscribed" : "unsubscribed"); String token = SecurePreferences.getInstance().getString("access_token", "empty"); parameters.put("access_token", token); try { return getService().run(parameters); } catch (RetrofitError e) { OauthErrorHandler.handle(e); Logger.printException(e); } return null; } }