package org.onebrick.android.jobs;
import com.path.android.jobqueue.Params;
import org.onebrick.android.core.OneBrickApplication;
import org.onebrick.android.core.OneBrickRESTClient;
import org.onebrick.android.core.OneBrickService;
import org.onebrick.android.events.FetchEventDetailEvent;
import org.onebrick.android.events.Status;
import org.onebrick.android.helpers.LoginManager;
import org.onebrick.android.helpers.NetworkUtil;
import org.onebrick.android.helpers.Utils;
import org.onebrick.android.models.Event;
public class FetchEventDetailJob extends OneBrickBaseJob {
private long mEventId;
public FetchEventDetailJob(long eventId) {
super(new Params(Priority.MEDIUM));
mEventId = eventId;
}
@Override
public void onRun() throws Throwable {
if (!NetworkUtil.isConnected(OneBrickApplication.getInstance())) {
Utils.postEventOnUi(new FetchEventDetailEvent(Status.NO_NETWORK));
return;
}
final OneBrickService restService = OneBrickRESTClient.getInstance().getRestService();
String ukey = LoginManager.getInstance(null).getCurrentUserKey();
Event existingEvent = Event.findById(mEventId);
Event event = restService.getEventDetail(mEventId, ukey);
if ((existingEvent != null) && (event != null)) {
existingEvent.setSummary(event.getSummary());
existingEvent.setManagerEmail(event.getManagerEmail());
existingEvent.setCoordinatorEmail(event.getCoordinatorEmail());
existingEvent.save();
}
Utils.postEventOnUi(new FetchEventDetailEvent(Status.SUCCESS));
}
@Override
protected void onCancel() {
Utils.postEventOnUi(new FetchEventDetailEvent(Status.FAILED));
}
}