API REST
Tableros de ideas
Los tableros donde votan los clientes, y sus ideas.
GET /ideas/boards(tracker:read, admin o dueño de la empresa): tableros de ideas, donde los clientes votan lo que quieren ver. Cada uno conurl(la dirección pública, que el cliente abre sin cuenta),published,ideasypending_suggestions(sugerencias de clientes esperando al equipo).GET /ideas/boards/{id}(tracker:read),POST /ideas/boardsyPATCH/DELETE /ideas/boards/{id}(tracker:write):{"title": "Ideas para la app", "intro": "...", "projects": ["MOB"], "published": true, "access": "link|restricted", "allow_list": ["@cliente.com", "[email protected]"], "allow_suggestions": true}. En el PATCH, solo cambia lo que venga;projectsyallow_listreemplazan la lista entera.link: cualquiera con el enlace lo ve, y votar pide el correo confirmado por código;restricted: solo quien confirme un correo de la lista ve las ideas. El GET traeideas(publicadas, las más votadas primero, con elstatusque ve el cliente,issue,votesycomments) ypending_suggestions(consuggested_by, el correo del cliente). Una idea de un proyecto que salió del tablero desaparece solo de la página pública.POST /ideas/boards/{id}/ideas(tracker:write): crea una idea publicada,{"title": "Exportar a PDF", "description": "...", "project": "MOB", "issue": "MOB-0012", "status": "under_review|planned|in_progress|released|closed"}. Conissue(de un proyecto del tablero; sintitle, usa el de la issue), el estado sigue al de la issue; sin ella, valestatus. Cuando el estado cambia a planned, in_progress, released o closed, quien votó recibe un correo, en el idioma de la página en la que confirmó su correo.GET /ideas/{id}(tracker:read; la idea con los votos y los comentarios, con el correo de quien escribió),PATCH /ideas/{id}(los campos de la creación, solo cambia lo que venga;"issue": nulldesvincula la issue;{"published": true}publica la sugerencia de un cliente) yDELETE /ideas/{id}(la elimina; así se rechaza una sugerencia) (tracker:write).POST /ideas/{id}/commentscon{"body": "..."}responde como el equipo (el cliente ve "Equipe <empresa>");DELETE /ideas/comments/{id}borra un comentario.