<< REST API
Leer profesores Leer profesor Crear profesor Eliminar profesor Asignar o cambiar oficina del profesor
Leer matrículas asociadas al profesor
En el modelo, teacher está relacionado 1 a 1 con supervisor, por tanto se le pasan los datos de ambos para crear los registros en las 2 tablas.
Leer profesores
Operación
GET /teacher
Petición
No se pasa ningún valor.
Ejemplo de petición:
GET /teacher
Respuesta
Se devuelve un array de profesores.
Ejemplo de respuesta:
[
    {
        "enrolments": [ ... ],
        "idOff": { ... },
        "supervisor": {
            "id": 1,
            "name": "Arturo",
            "surname": "Montejo",
            "postalAddress": null,
            "contactEmail": "amontejo@ujaen.es",
            "contactPhone": null,
            "preferedLanguage": "ES"
        },
        "id": 4
    },
    {
         ...
    }
]Leer profesor
Operación
GET /teacher/<teacher-ID>
Petición
Se pasa el ID del profesor al final de la petición.
Ejemplo de petición:
GET /teacher/4
Respuesta
Se devuelve el profesor.
Ejemplo de respuesta:
{
        "enrolments": [ ... ],
        "idOff": { ... },
        "supervisor": {
            "id": 1,
            "name": "Arturo",
            "surname": "Montejo",
            "postalAddress": null,
            "contactEmail": "amontejo@ujaen.es",
            "contactPhone": null,
            "preferedLanguage": "ES"
        },
        "id": 4
}Crear profesor
Operación
POST /teacher
Petición
Se le pasa un objeto JSON con los siguientes campos:
- 
name(string): Nombre del profesor/supervisor
- 
surname(string): Apellidos del profesor/supervisor
- 
contactEmail(string): Email del profesor/supervisor
- 
postalAddress(string): Dirección del profesor/supervisor (opcional)
- 
contactPhone(string): Teléfono del profesor/supervisor (opcional)
- 
preferedLanguage(string): Idioma preferido (Ejemplo: ES)
- 
idOff(integer): ID de oficina
Ejemplo de petición:
POST /teacher
{
        "name": "John", 
        "surname": "Doe", 
        "contactEmail": "johndoe@nothing.com", 
        "preferedLanguage": "ES",
        "idOff": 1
}Respuesta
Se devuelve el objeto creado en teacher y también en supervisor.
Ejemplo de respuesta:
{
    "teacher": {
        "supervisor": 18,
        "id": 5,
        "idOff": 1
    }
}Eliminar profesor
Se le pasa el id del recurso a eliminar y devuelve el recurso eliminado con código de estado 200 o bien el código 404 si no existe con ese id.
Operación
DELETE /teacher/<supervisor-ID>
Petición
Se pasa el ID del supervisor al final de la petición.
Ejemplo de petición:
DELETE /teacher/18
Respuesta
Se devuelve el objeto tutor y supervisor eliminado.
Ejemplo de respuesta:
{
    "teacher": [
        {
            "id": 5,
            "id_off": 1,
            "supervisor": 18
        }
    ],
    "supervisor": [
        {
            "id": 18,
            "name": "John",
            "surname": "Doe",
            "postal_address": null,
            "contact_email": "johndoe@nothing.com",
            "contact_phone": null,
            "prefered_language": "ES"
        }
    ]
}Asignar o cambiar oficina del profesor
Operación
PUT /teacher/<teacher-ID>
Petición
Se pasa el ID del profesor al final de la petición y un objeto JSON con los campos que se desee modificar:
- 
idOff(integer): ID de la oficia a asignar
Ejemplo de petición:
PUT /teacher/3
{
  "idOff": 2
}Respuesta
Se devuelve un objeto con el profesor modificado.
Ejemplo de respuesta:
{
    "enrolments": [],
    "idOff": {
        "id": 2,
        "name": "Oficina Córdoba",
        "postalAddress": null,
        "contactPerson": null,
        "contactEmail": null,
        "contactPhone1": null,
        "contactPhone2": null,
        "preferedLanguage": null
    },
    "supervisor": { ... },
    "id": 3
}Leer matrículas asociadas al profesor
Operación
GET /teacher/<teacher-ID>/enrolments
Petición
Se pasa el ID del profesor en la la petición.
Ejemplo de petición:
GET /teacher/1/enrolments
Respuesta
Se devuelve un array de matrículas.
Ejemplo de respuesta:
[
    {
        "id": 1,
        "registration": "2014-01-10T23:00:00.000Z",
        "notes": "Matrícula para 3 meses",
        "idMet": 1,
        "idStu": 1,
        "idTea": 1
    },
    {
        ...
    }
]