package de.vanmar.android.yarrn.requests;
import android.app.Application;
import com.google.gson.Gson;
import org.scribe.model.OAuthRequest;
import org.scribe.model.Response;
import org.scribe.model.Verb;
import java.util.List;
import de.vanmar.android.yarrn.R;
import de.vanmar.android.yarrn.YarrnPrefs_;
import de.vanmar.android.yarrn.ravelry.dts.Photo;
import de.vanmar.android.yarrn.ravelry.dts.PhotoResult;
public class ReorderProjectPhotosRequest extends AbstractRavelryRequest<PhotoResult> {
private int projectId;
private List<Photo> photos;
public ReorderProjectPhotosRequest(YarrnPrefs_ prefs, Application application, int projectId, List<Photo> photos) {
super(PhotoResult.class, prefs, application);
this.projectId = projectId;
this.photos = photos;
}
public int getProjectId() {
return projectId;
}
public List<Photo> getPhotos() {
return photos;
}
@Override
public PhotoResult loadDataFromNetwork() throws Exception {
final OAuthRequest request = new OAuthRequest(Verb.POST,
application.getString(R.string.ravelry_url)
+ String.format("/projects/%s/%s/reorder_photos.json",
prefs.username().get(), projectId));
request.addBodyParameter("sort_order", getSortOrder());
Response response = executeRequest(request);
return new Gson().fromJson(response.getBody(), PhotoResult.class);
}
private String getSortOrder() {
StringBuilder photoIds = new StringBuilder();
for (int i = 0; i < photos.size(); i++) {
if (i > 0) {
photoIds.append(" ");
}
photoIds.append(photos.get(i).id);
}
return photoIds.toString();
}
}