package com.aptoide.amethyst.webservices;
import com.aptoide.amethyst.preferences.SecurePreferences;
import com.aptoide.dataprovider.webservices.json.GenericResponseV2;
import com.aptoide.dataprovider.webservices.models.WebserviceOptions;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.octo.android.robospice.request.retrofit.RetrofitSpiceRequest;
import java.util.ArrayList;
import java.util.List;
import retrofit.RetrofitError;
import retrofit.http.Body;
import retrofit.http.POST;
/**
* Created by fabio on 22-10-2015.
*/
public class MakeReviewRequest extends RetrofitSpiceRequest<GenericResponseV2, MakeReviewRequest.Webservice> {
ReviewPost reviewPost;
public void setPackage_name(String package_name) {
reviewPost.set_package(package_name);
}
public void setRepoName(String repoID) {
reviewPost.setRepo_name(repoID);
}
public void addLocale(ReviewPost.Locale locale) {
reviewPost.getLocales().add(locale);
}
public void setPerformance(int p) {
reviewPost.setPerformance(p);
}
public void setStability(int p) {
reviewPost.setStability(p);
}
public void setUsability(int p) {
reviewPost.setUsability(p);
}
public void setAddiction(int p) {
reviewPost.setAddiction(p);
}
public interface Webservice{
@POST("/www.aptoide.com/webservices/3/setReview")
GenericResponseV2 makeReview(@Body ReviewPost review);
}
public static class ReviewPost{
@JsonProperty("package")
private String _package;
private String repo_name;
private String access_token;
private String mode;
private String status;
private int performance;
private int stability;
private int usability;
private int addiction;
private List<Locale> locales = new ArrayList<>();
public static class Locale{
private String lang_id;
@JsonProperty("final_verdict")
private String finalVerdict;
private List<String> cons ;
private List<String> pros ;
public Locale(String lang_id){
this.lang_id = lang_id;
}
public String getLang_id() {
return lang_id;
}
public String getFinalVerdict() {
return finalVerdict;
}
public void setFinalVerdict(String finalVerdict) {
this.finalVerdict = finalVerdict;
}
public List<String> getPros() {
return pros;
}
public void setPros(List<String> pros) {
this.pros = pros;
}
public List<String> getCons() {
return cons;
}
public void setCons(List<String> cons) {
this.cons = cons;
}
}
public List<Locale> getLocales() {
return locales;
}
public void setLocales(List<Locale> locales) {
this.locales = locales;
}
public String getMode() {
return mode;
}
public void setMode(String mode) {
this.mode = mode;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getRepo_name() {
return repo_name;
}
public void setRepo_name(String repo_name) {
this.repo_name = repo_name;
}
public int getPerformance() {
return performance;
}
public void setPerformance(int performance) {
this.performance = performance;
}
public int getStability() {
return stability;
}
public void setStability(int stability) {
this.stability = stability;
}
public int getUsability() {
return usability;
}
public void setUsability(int usability) {
this.usability = usability;
}
public int getAddiction() {
return addiction;
}
public void setAddiction(int addiction) {
this.addiction = addiction;
}
public String getAccess_token() {
return access_token;
}
public void setAccess_token(String access_token) {
this.access_token = access_token;
}
public String get_package() {
return _package;
}
public void set_package(String _package) {
this._package = _package;
}
}
String baseUrl = WebserviceOptions.WebServicesLink + "3/setReview";
public MakeReviewRequest() {
super(GenericResponseV2.class, Webservice.class);
reviewPost = new ReviewPost();
}
@Override
public GenericResponseV2 loadDataFromNetwork() throws Exception {
reviewPost.setAccess_token(SecurePreferences.getInstance().getString("access_token", "empty"));
reviewPost.setMode("json");
reviewPost.setStatus("active");
//AptoideUtils.getMyCountryCode(context)
GenericResponseV2 responseV2 = null;
try{
responseV2 = getService().makeReview(reviewPost);
}catch (RetrofitError error){
OauthErrorHandler.handle(error);
}
return responseV2;
}
}