package de.vanmar.android.yarrn.requests;
import android.app.Application;
import com.google.gson.Gson;
import org.scribe.model.OAuthRequest;
import org.scribe.model.Verb;
import de.vanmar.android.yarrn.R;
import de.vanmar.android.yarrn.YarrnPrefs_;
import de.vanmar.android.yarrn.ravelry.dts.ProjectsResult;
public class ListProjectsRequest extends AbstractRavelryGetRequest<ProjectsResult> {
private int page;
private int pageSize;
public ListProjectsRequest(Application application, YarrnPrefs_ prefs, int page, int pageSize) {
super(ProjectsResult.class, application, prefs);
this.page = page;
this.pageSize = pageSize;
}
protected ProjectsResult parseResult(String responseBody) {
return new Gson().fromJson(responseBody, ProjectsResult.class);
}
protected OAuthRequest getRequest() {
return new OAuthRequest(Verb.GET,
application.getString(R.string.ravelry_url) + String.format("/projects/%s/list.json?sort=%s&page=%s&page_size=%s",
prefs.username().get(), getSort(), page, pageSize));
}
private String getSort() {
String sortParam = application.getResources().getStringArray(R.array.project_sort_option_values)[prefs.projectSort().get()];
if (prefs.projectSortReverse().get()) {
return sortParam + "_";
} else {
return sortParam;
}
}
}