loduis / teamwork.com-project-management

PHP API for Teamwork.com
https://developer.teamwork.com/
MIT License
69 stars 59 forks source link

Problema al insertar entrada de tiempo #1

Closed ghost closed 11 years ago

ghost commented 12 years ago

Hola, tengo un problema cuando intento insertar una nueva entrada de tiempo para un todo-item.

El error que me da es: "Fatal error: Uncaught exception 'TeamWorkPm_Exception' with message 'The field 0 is required ' in C:\wamp\www\twpm\TeamWorkPm\Model.php on line 220"

El código que estoy usando para intentar insertar la entrada de tiempo es este:

$time = TeamWorkPm::factory('Time'); $response = $time->insert(array( "todo_item_id" => $task_id, "description" => "descripcion", "person_id" => "mi_api_Key", "date" => date('Y-m-dTH:i:sZ'), "hours" => $hours, "minutes" => $minutes ));

El problema creo que es mío, que no se que parámetros hay que pasar a la función insert para las entradas de tiempo.

loduis commented 12 years ago

Te cuento que tengo tiempo que no le meto la mano a este proyecto,

Hay le hice un par de ajustes para que puedas registras las entradas de tiempo

Revisa el script Example/time.php

ghost commented 12 years ago

Gracias, eso ya lo tengo solucionado.

Ahora veo que ha cambiado la forma en que se da la respuesta. Antes se daba en forma de array, pero ahora al intentar acceder a los elementos de la respuesta de la misma forma que hacia antes, php me da un error y dice que no es un objeto array, que es un objeto TeamWorkPm_Response_XML.

Lo que necesito es obtener todos los proyectos de TeamWork y los todo de cada uno de ellos, pero no sé como se accede a los datos id y nombre con este tipo de objeto.

La forma de obtenerlo, veo que no ha cambiado sigue siendo así: $Project = TeamWorkPm::factory("Project"); $response = $Project->getAll();

Y después accedía a cada proyecto de la siguiente forma, que es lo que ha cambiado: $response["projects"][$i]["id"]; $response["projects"][$i]["name"];

De esta forma se podía acceder fácilmente a todos los datos de la respuesta de TeamWork tanto de los proyectos como de los todo.

Otro problema que tengo ahora es al intentar obtener las listas de tareas de un proyecto, al usar este código me da como respuesta "Bad request": $list = TeamWorkPm::factory('Todo/List'); $response = $list->getByProjectId($project_id); $object = new TeamWorkPm_Response_XML(); $object->parse($response); print_r($response);

Después de obtener las listas de tareas del proyecto necesito los todos de cada lista, pero al obtener esta respuesta no puedo hacerlo. Antes lo que hacia era por cada lista que obtenía como respuesta sacaba sus todos con la función "getByTodoListId($list_id);".

Perdón por ser tan pesado pero con los cambios no sé muy bien como funcionan algunas clases.

Gracias por tu ayuda.

loduis commented 12 years ago

Te cuento que esta api, ha cambiando mucho desde la primera vez que la programe, por eso los bad request, hay realize un para de ajuste para que te funcione, pégale una mirada al ejemplo project.php en la carpeta Example, han hecho cambios a la api que no se reportan en la documentación:

http://developer.teamworkpm.net/api