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
No se puede crear 2 veces el mismosemester.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
Se filtran los cursos duplicados, si se envian[1, 2 ,1 ,3]
solo se utilizará[1, 2 ,3]
// courses ids
[
1,
2,
3
]
200