Duración: Miercoles 8/06/16 - Martes 14/06/16
Alcance
Sprint de refactoring + cleanup + polishing.
Objetivo
Hacer el log de acciones, refactorear el código y arreglar los errores y detalles de la UI.
Tareas
API
- Hacer el modelo, seeds y controller del log de acciones.
- Hacer async la creación del zip de descarga de dataset.
- Hacer los borrados lógicos.
- Desarrollar includes granulares (ej. include=tags.name).
- Refactorear
.negotiate
para dar soporte a todos los tipos de error definidos enconfig/errors.js
, y cambiarlo a.error
. - Implementar la recepción de múltiples valores para un parámetro, separados por coma: siempre y cuando se el modelo lo admita (es decir, haya una relacion de uno a muchos o de muchos a muchos).
- Extractar a un servicio y comentar la lógica de la subida de archivos.
- Separar la lógica del constructor de
ResponseGET
en métodos y comentarlos. - Refactorear la búsqueda para que no busque en todos los campos por defecto, sino sólo los que estén en una whitelist.
- Poner el campo fullName en la response de
GET /users
yGET /users/:id
. - En las responses GET de un ítem en particular, agregar en
links
las relaciones de primer grado: por ejemplo,/datasets/ag56fdf/tags
. - Separar las responses correctas (2xx) definidas en
config/errors.js
a otro archivo. - Refactorear
appUrl
. - Implementar
206 Partial Content
para el contenido paginado. - Implementar
204 No Content
para las responses sin contenido. - Implementar un chequeo más robusto de objetos vacíos.
Admin
- Solucionar los ítems marcados como "Crítico" en el Trello de testing.
- Solucionar los ítems marcados como "Error" en el Trello de testing.
- Solucionar los ítems marcados como "Mejora" en el Trello de testing.
- Adecuar la interfaz del CRUD de Archivos a lo especificado por los documentos funcionales.
- Agregar al dashboard el contenido del log de acciones, las más recientes primero (funcional): mostrar las últimas 500 acciones, paginadas de a 20.
- Quitar el CRUD de Databases del Admin (no es necesario que esté expuesto en el Admin).
Prioridades
- Async zips
- Borrados lógicos
- Includes parciales
- Resolución de problemas de UI
- Adecuar CRUD de Archivos
Endpoints
Logs
GET /logs
POST /logs
OPTIONS /logs
GET /logs/first
OPTIONS /logs/first
GET /logs/last
OPTIONS /logs/last
GET /logs/count
OPTIONS /logs/count
GET /logs/:id
PATCH /logs/:id
DELETE /logs/:id
HEAD /logs/:id
OPTIONS /logs/:id
Modelos
Logs
-
id
Tipo: string
Requerido: sí
Único: sí
Max: 15 carácteres
-
action
Tipo: enum
Requerido: sí
Valores posibles: 'create', 'update', 'delete'
-
target
Tipo: enum
Requerido: sí
Valores posibles: 'category', 'dataset', 'fileType', 'file', 'organization', 'status', 'tag', 'updateFrequency', 'user'
-
createdAt
Tipo: datetime
Default: fecha y hora actuales
Claves Foráneas
-
user
El ID del usuario que actualizó realizó la acción.
Tipo: string
Max: 15 carácteres