/** * Put ToDo * * @param Batchblue_Service_BatchBook_ToDo $todo * @return Batchblue_Service_BatchBook_ToDoService Provides a fluent interface */ public function putToDo(Batchblue_Service_BatchBook_ToDo $todo) { $httpClient = new Zend_Http_Client('https://' . $this->_accountName . '.batchbook.com/service/todos/' . $todo->getId() . '.xml'); if ($todo->getFlagged() == null || $todo->getFlagged() == false) { $flaggedParam = "false"; } else { $flaggedParam = "true"; } if ($todo->getComplete() == null || $todo->getComplete() == false) { $completeParam = "false"; } else { $completeParam = "true"; } $paramsPut = array('todo[title]' => $todo->getTitle(), 'todo[description]' => $todo->getDescription(), 'todo[due_date]' => $this->formatDateForBatchbook($todo->getDueDate()), 'todo[flagged]' => $flaggedParam, 'todo[complete]' => $completeParam); $httpClient->setAuth($this->_token, 'x'); $httpClient->setHeaders(Zend_Http_Client::CONTENT_TYPE, Zend_Http_Client::ENC_URLENCODED); $httpClient->setRawData(http_build_query($paramsPut, '', '&'), Zend_Http_Client::ENC_URLENCODED); $response = $httpClient->request(Zend_Http_Client::PUT); if (200 != $response->getStatus()) { //TODO: throw more specific exception echo $httpClient->getLastRequest(); throw new Exception('ToDo not updated:' . $response->getMessage() . "\n" . $response->getBody()); } return $this; }