package de.vanmar.android.yarrn.requests; import android.app.Application; import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import org.scribe.model.OAuthRequest; import org.scribe.model.Response; import org.scribe.model.Verb; import de.vanmar.android.yarrn.R; import de.vanmar.android.yarrn.YarrnPrefs_; import de.vanmar.android.yarrn.ravelry.dts.ProjectResult; public class UpdateProjectRequest extends AbstractRavelryRequest<ProjectResult> { private int projectId; private JsonObject updateData; public UpdateProjectRequest(YarrnPrefs_ prefs, Application application, int projectId, JsonObject updateData) { super(ProjectResult.class, prefs, application); this.projectId = projectId; this.updateData = updateData; } public int getProjectId() { return projectId; } public JsonObject getUpdateData() { return updateData; } @Override public ProjectResult loadDataFromNetwork() throws Exception { final OAuthRequest request = new OAuthRequest(Verb.POST, application.getString(R.string.ravelry_url) + String.format("/projects/%s/%s.json", prefs.username().get(), projectId)); request.addBodyParameter("data", updateData.toString()); Response response = executeRequest(request); return new GsonBuilder().setDateFormat("yyyy/MM/dd").create().fromJson(response.getBody(), ProjectResult.class); } }