Con una lista de documentos se crea una Biblioteca Virtual, en este modulo se le permite a los usuarios (menos estudiantes) subir documentos de distintos tipos con una imagen de cobertura opcional.
| Method | URI | Action | 
|---|---|---|
| GET | /documents | index | 
| GET | /documents/{id} | show | 
| POST | /documents | store | 
| PATCH | /documents/{id} | update | 
| DELETE | /documents/{id} | delete | 
| POST | /documents/{id}/download | download | 
{
  "id": 1,
  "title": "Titulo del Documento",
  "type": 1,                    // Tipo de Documento
  "resource_path": null,        // Ruta del documento subido
  "cover_picture_path": null,   // Ruta de la imagen de cobertura
  "updated_at": "2020-03-06 18:31:36",
  "created_at": "2020-03-06 18:31:36",
  "user_id": 1,              // Se utilizara el usuario que hizo el request como "uploader"
  "period_id": null,         // Opcional
  "specialization_id": null, // Opcional
  "semester_id": null,       // Opcional
  "course_id": null          // Opcional
}Ref: https://gitlab.com/simgulary/idc/caracas-design-institute-api/-/issues/6
| Type | Value | 
|---|---|
| Book | 1 | 
| Paper | 2 | 
| Thesis | 3 | 
| Others | 4 | 
BelongsTo userBelongsTo periodBelongsTo specializationBelongsTo semesterBelongsTo courseGET /documentsadminscoordinadorprofesorestudianteextends Query Filters| Filter | Description | 
|---|---|
| search=value | Filtra a traves de title | 
| type=int | Por tipo | 
| user=id | Por usuario | 
| period=id | Por periodo | 
| specialization=id | Por especialidad | 
| semester=id | Por semestre | 
| course=id | Por materia | 
200POST /documentsadminscoordinadorprofesor{
  "title": "required|string",
  "type": "required|integer|in:1,2,3,4", // ver Tipos de Documentos
  "resource": "required|file",
  // No requeridos
  "cover_picture": "image",
  "period_id": "nullable|integer",
  "specialization_id": "nullable|integer",
  "semester_id": "nullable|integer",
  "course_id": "nullable|integer"
}201PATCH /documents/{id}adminscoordinadorprofesor que subio el documento{info} Para subir archivos se requiere que el request sea
POSTy enviar_method = PATCHen elForm-Data
{
  "title": "string",
  "type": "integer|in:1,2,3,4", // ver Tipos de Documentos
  "period_id": "nullable|integer",
  "specialization_id": "nullable|integer",
  "semester_id": "nullable|integer",
  "course_id": "nullable|integer",
  // Estos atributos solo estaran incluidos y utilizados en el request
  // solo si se aplican las condiciones necesarias
  "resource": "file",
  "cover_picture": "image"
}200Tambien se eliminan los archivos asociados
DELETE /documents/{id}adminscoordinadorprofesor que subio el documento204 No ContentEl api manda un response tipo descarga al cliente con el archivo de resource_path
Se deberia limitar las descargas de estudiantes por tipo de archivo?
POST /documents/{id}/downloadadminscoordinadorprofesorestudiante200Contenido  Del Archivo