| Method | URI | Action |
|---|---|---|
GET |
/pensums |
index |
GET |
/pensums/{id} |
show |
GET |
/pensums/{id}/pdf |
download |
POST |
/pensums |
store |
PATCH |
/pensums/{id} |
update |
DELETE |
/pensums/{id} |
delete |
GET |
/pensums/{id}/semesters |
index |
GET |
/pensums/{id}/courses |
index |
{
"id": 1,
"name": "Nombre del pensum",
"description": "Descripción del pensum",
"version": 1, // null by default see Pensum@update
"credits": null, // (int) esto se se actualiza cuando se le agrega o remueve materias a un semestre de este pensum
"specialization_id": 1,
"created_at": "2020-03-10 13:28:15",
"updated_at": "2020-03-10 13:28:15"
}
HasMany semestersBelongsToMany periodsBelongsTo specialization{primary} Al obtener un modelo con el metodo
showse puede utilizar un query string para cargar las relaciones?with=relationo?with=relationA,relationB
GET /pensumsadminextends Query Filters| Filter | Description |
|---|---|
search=string |
Busca a traves de name y description |
version=int |
Filtra a traves de version |
specialization=id |
Obtiene los pensums de una especialidad en especifica |
period=id |
Obtiene los pensums que esten asociados a un periodo en especifico |
semester_number=int |
Filtra a traves de number de la relación semesters puede combinarse con with=semesters |
200[
{
// Pensum
}
]
{info} Por defecto el pensum se crea sin una
version
POST /pensumsadmin{primary} Cuando se envia semestres en el request al pensum se le calcula los creditos de una vez
{
"name": "required|string",
"description": "required|string",
"specialization_id":"required|integer|exists",
// Si se quiere crear semestres y asignarle de una vez materias se debe incluir lo siguiente
// Si "semester" esta presente es requerido que "number" y "courses_ids" esten presentes tambien
// Esto creara los semestres y a para cada semestre le asignara las materias (courses) de "courses_ids"
"semesters": [ // is optional
{
"number": 1, // int
"courses_ids": [ 1 ] // array of ints
}
]
}
201{
// Pensum
}
finished no es un atributo de pensum, es utilizado para marcar si este pensum esta listo para ser utilizado.
Si se marca como finalizado el sistema le asignara una version por especialidad.finished: false se colocara la version como null de nuevo{warning} No se puede desmarcar como completado si ya esta asociado a algun periodo.
PATCH /pensums/{id}admin{
"name": "string",
"description": "string",
"finished": "boolean"
}
200{
// Pensum
}
{info} Al eliminarse un pensum eliminara todos sus semestres
DELETE /pensums/{id}admin204 No ContentGET /pensums/{id}/semestersadmin200[
// Semesters
]
GET /pensums/{id}/coursesadminSi se envia period_id se buscara si el pensum tiene un historico de materias creados, si se encuentra
se retornara ese, si no, se retornara el por defecto, el estado actual de la base de datos
{
"period_id": "integer|exists"
}
200[
{
"semester": {
"id": 1,
"number": 3,
"code": "Semester - 1",
"created_at": "2020-07-09 20:20:09",
"updated_at": "2020-07-09 20:20:09",
"pensum_id": 1,
"specialization_id": 1,
"courses": [
{
"id": 1,
"code": "MATERIA - 1",
"title": "Titulo de mi Materia",
"scheduled_content": "Contenido Programatico",
"scheduled_content_resource": null,
"credits": 10,
"hours": 20,
"calculate_avg": false,
"elective": false,
"enabled": true,
"final_delivery": false,
"final_delivery_value_percent": null,
"final_delivery_merged_sections": false,
"created_at": "2020-07-09 20:20:42",
"updated_at": "2020-07-09 20:20:42",
"pivot": {
"semester_id": 1,
"course_id": 1
}
}
]
}
}
]
GET /pensums/{id}/pdfadminComo el pensum puede estar en multiple periodos se requiere que se envie de que periodo se quiere ver
{
"period_id": "required|integer|exists"
}
200