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 semesters
BelongsToMany periods
BelongsTo specialization
{primary} Al obtener un modelo con el metodo
show
se puede utilizar un query string para cargar las relaciones?with=relation
o?with=relationA,relationB
GET /pensums
admin
extends
Query FiltersFilter | 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 /pensums
admin
{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}
admin
204
No ContentGET /pensums/{id}/semesters
admin
200
[
// Semesters
]
GET /pensums/{id}/courses
admin
Si 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}/pdf
admin
Como el pensum puede estar en multiple periodos se requiere que se envie de que periodo se quiere ver
{
"period_id": "required|integer|exists"
}
200