package co.touchlab.droidconandroid.tasks;
import android.content.Context;
import java.util.concurrent.Callable;
import co.touchlab.android.threading.eventbus.EventBusExt;
import co.touchlab.android.threading.tasks.Task;
import co.touchlab.droidconandroid.data.DatabaseHelper;
import co.touchlab.droidconandroid.data.Event;
import co.touchlab.droidconandroid.tasks.persisted.PersistedTaskQueueFactory;
import co.touchlab.droidconandroid.tasks.persisted.RemoveRsvp;
import co.touchlab.squeaky.dao.Dao;
/**
* Created by kgalligan on 4/8/16.
*/
public class RemoveRsvpTask extends Task
{
private final long eventId;
public RemoveRsvpTask(long eventId)
{
this.eventId = eventId;
}
@Override
protected void run(final Context context) throws Throwable
{
DatabaseHelper.getInstance(context).performTransactionOrThrowRuntime(new Callable<Void>()
{
@Override
public Void call() throws Exception
{
Dao<Event> dao = DatabaseHelper.getInstance(context).getEventDao();
Event event = dao.queryForId(eventId);
if(event != null)
{
event.rsvpUuid = null;
dao.update(event);
PersistedTaskQueueFactory.getInstance(context).execute(new RemoveRsvp(eventId));
Queues.localQueue(context).execute(new UpdateAlertsTask());
}
return null;
}
});
}
@Override
protected boolean handleError(Context context, Throwable e)
{
return false;
}
@Override
protected void onComplete(Context context)
{
EventBusExt.getDefault().post(this);
}
}