package org.intermine.app.listener;
/*
* Copyright (C) 2015 InterMine
*
* This code may be freely distributed and modified under the
* terms of the GNU Lesser General Public Licence. This should
* be distributed with the code. See the LICENSE file for more
* information or http://www.gnu.org/copyleft/lesser.html.
*
*/
import com.octo.android.robospice.persistence.exception.SpiceException;
import com.octo.android.robospice.request.SpiceRequest;
import com.octo.android.robospice.request.listener.RequestListener;
import org.intermine.app.R;
import org.intermine.app.activity.BaseActivity;
import org.intermine.app.core.Gene;
import org.intermine.app.net.HttpNetworkException;
import org.intermine.app.net.ResponseHelper;
import org.intermine.app.net.request.get.GetListsRequest;
import org.intermine.app.net.request.post.AppendGenesToListRequest;
import org.intermine.app.net.request.post.CreateGenesList;
import org.springframework.http.HttpStatus;
import java.util.List;
import static org.intermine.app.net.request.get.GetListsRequest.Lists;
public class GetListsListener implements RequestListener<Lists> {
private BaseActivity mBaseActivity;
private String mMine;
private List<Gene> mGenes;
public GetListsListener(BaseActivity baseActivity, String mine, List<Gene> genes) {
mBaseActivity = baseActivity;
mMine = mine;
mGenes = genes;
}
@Override
public void onRequestFailure(SpiceException spiceException) {
Throwable ex = spiceException.getCause();
if (ex instanceof HttpNetworkException) {
HttpNetworkException httpStatusCodeException = (HttpNetworkException) ex;
if (HttpStatus.NOT_FOUND.equals(httpStatusCodeException.getStatusCode())) {
CreateGenesList request = new CreateGenesList(mBaseActivity, mMine,
mBaseActivity.getString(R.string.gene_favorites_list_name), mGenes);
mBaseActivity.execute(request, new RequestListener<Void>() {
@Override
public void onRequestFailure(SpiceException ex) {
ResponseHelper.handleSpiceException(ex, mBaseActivity, mMine);
}
@Override
public void onRequestSuccess(Void aVoid) {
}
});
}
}
}
@Override
public void onRequestSuccess(GetListsRequest.Lists result) {
SpiceRequest req = new AppendGenesToListRequest(mBaseActivity, mMine,
mBaseActivity.getString(R.string.gene_favorites_list_name), mGenes);
mBaseActivity.execute(req, new RequestListener<Void>() {
@Override
public void onRequestFailure(SpiceException ex) {
ResponseHelper.handleSpiceException(ex, mBaseActivity, mMine);
}
@Override
public void onRequestSuccess(Void aVoid) {
}
});
}
}