/** * Copyright (c) 2012 Todoroo Inc * * See the file "LICENSE" for the full license governing this code. */ package com.todoroo.astrid.gtasks.api; import java.io.IOException; import com.google.api.services.tasks.model.Task; /** * Encapsulates a request to the api to move a task from one list to another * @author Sam Bosley * */ public class MoveListRequest extends PushRequest { private String idTaskToMove; private String dstList; private final String newParent; public MoveListRequest(GtasksInvoker service, String idTask, String srcList, String dstList, String newParent) { super(service, srcList, new Task()); this.idTaskToMove = idTask; this.dstList = dstList; this.newParent = newParent; } @Override public Task executePush() throws IOException { Task localSave = service.getGtask(super.getListId(), idTaskToMove); service.deleteGtask(super.getListId(), idTaskToMove); transferProperties(localSave); return service.createGtask(dstList, toPush); } @Override protected void recover() { //If there's a good way to recover, put it here //Since MoveListRequest isn't actually used at the moment, it's probably fine for now } private void transferProperties(Task local) { toPush.setCompleted(local.getCompleted()); toPush.setDeleted(local.getDeleted()); toPush.setDue(local.getDue()); toPush.setHidden(local.getHidden()); toPush.setNotes(local.getNotes()); toPush.setStatus(local.getStatus()); toPush.setTitle(local.getTitle()); toPush.setParent(newParent); } public String getIdTaskToMove() { return idTaskToMove; } public void setIdTaskToMove(String idTaskToMove) { this.idTaskToMove = idTaskToMove; } public String getDstList() { return dstList; } public void setDstList(String dstList) { this.dstList = dstList; } }