Method | URI | Action |
---|---|---|
GET |
/semesters |
index |
GET |
/semesters/{id} |
show |
POST |
/semesters |
store |
PATCH |
/semesters/{id} |
update |
DELETE |
/semesters/{id} |
delete |
GET |
/semesters/{id}/courses |
get relation |
PUT |
/periods/{id}/pensums/{id}/semesters/{id}/courses |
Actualizar materias de un semestre |
{
"id": 1,
"number": 1,
"code": "BAS1", // this is optional
"pensum_id" : 1,
"specialization_id" : 1, // se asigna desde pensum
"created_at": "2020-04-06 17:28:15",
"updated_at": "2020-04-06 17:28:15"
}
HasMany sections
BelongsTo pensum
BelongsTo specialization
BelongsToMany courses
GET /semesters
admin
extends
QueryFiltersFilter | Description |
---|---|
search=string |
Busca a traves de code |
number=int |
Filtra por el numero de semestre. Soporta operadores de busqueda > , < , >= , <= (se debe colocar al inicio del value) |
pensum=id |
Por pensum |
specialization=id |
Por especialidad |
period=id |
Por periodo (a traves de su pensum) |
200
[
{
// Semester
}
]
POST /semesters
admin
{info} No se puede crear 2 veces el mismo
semester.number
{
"number": "required|integer|min:1|max:15",
"code": "string", // this is optional
"pensum_id" : "required|integer|exists:pensums,id"
}
201
{
// Semester
}
PATCH /semesters/{id}
admin
{
"code": "string"
}
200
{
// Model Attributes
}
Un semestre con secciones no puede eliminarse
DELETE /semesters/{id}
admin
204
No ContentGET /semesters/{id}/courses
admin
200
[
{
// Course
}
]
Esta accion sincroniza las materias de el semestre.
si ya tiene
Se envian todos los courses_ids
que ya tenia menos el que se quiere eliminar
si ya tiene
Se envian todos los courses_ids
que ya tenia más el que se quiere agregar (este metodo tambien sirve si no tiene materias)
PUT /periods/{id}/pensums/{id}/semesters/{id}/courses
admin
{info} Se filtran los cursos duplicados, si se envian
[1, 2 ,1 ,3]
solo se utilizará[1, 2 ,3]
// courses ids
[
1,
2,
3
]
200