예제 #1
0
def getProfesor(id_profesor):
    '''
    Devuelve todos los datos de un alumno buscado por su id
    en caso de existir en la base de datos.
    curl -i -X GET localhost:8002/profesores/11223344A

    '''

    salida=GestorProfesores.getProfesor(id_profesor)
    if salida=="Elemento no encontrado":
        #Enviamos el error de NotFound
        abort(404)
    else:
        return jsonpickle.encode(GestorProfesores.getProfesor(id_profesor), unpicklable=False)
예제 #2
0
def getProfesor(id_profesor):
    '''
    Devuelve todos los datos de un alumno buscado por su id
    en caso de existir en la base de datos.
    curl -i -X GET localhost:8002/profesores/11223344A

    '''

    salida = GestorProfesores.getProfesor(id_profesor)
    if salida == "Elemento no encontrado":
        #Enviamos el error de NotFound
        abort(404)
    else:
        return jsonpickle.encode(GestorProfesores.getProfesor(id_profesor),
                                 unpicklable=False)
예제 #3
0
def modProfesorCompleto(id_profesor):
    '''
    Función que modifica los atributos de un profesor dado su identificación, usando la función
    modProfesorCompleto de la APIDB
    curl -d "nombre=Pedro&apellidos=Torrssr&dni=234242&direccion=Calle Duqesa&localidad=Granada&proviia=Burgos&fecha_nacimiento=1988-12-4&telefono=23287282" -i -X POST localhost:8002/profesores/1

    '''
    if v:
        print 'Calling GestorProfesores.modProfesorCompleto()'

    #El id del alumno se pasa por la URL
    salida = GestorProfesores.modProfesorCompleto(id_profesor,
                                             request.form['nombre'],
                                             request.form['apellidos'],
                                             request.form['dni'],
                                             request.form['direccion'],
                                             request.form['localidad'],
                                             request.form['provincia'],
                                             request.form['fecha_nacimiento'],
                                             request.form['telefono']
                                            );

    if v:
        print "SALIDA: "+str(salida)

    if salida == 'OK':
        return 'OK'
    else:
        return salida
예제 #4
0
def getProfesor(id_profesor):
    '''
    Devuelve todos los datos de un alumno buscado por su id
    en caso de existir en la base de datos.
    curl -i -X GET localhost:8080/profesores/11223344A

    '''
    #Si no tiene el número correcto de caracteres el identificador.
    if len(id_profesor) != 9:
        abort(400)

    salida=GestorProfesores.getProfesor(id_profesor)
    if salida=="Elemento no encontrado":
        #Enviamos el error de NotFound
        abort(404)
    else:
        return jsonpickle.encode(GestorProfesores.getProfesor(id_profesor))
예제 #5
0
def postProfesor():
    '''
    Método que inserta un nuevo profesor en el sistema.
    curl -d "nombre=Juan&apellidos=Bartlo&dni=46666&direccion=Calle arabl&localidad=Jerez de la fronta&provincia=Granada&fecha_nacimiento=1988-2-6&telefono=137631" -i -X POST localhost:8002/profesores


    '''
    if v:
        print nombreMicroservicio
        print " Calling postProfesor()"
        print " "+str(request.form)

    salida = GestorProfesores.nuevoProfesor(request.form['nombre'],
                              request.form['apellidos'],
                              request.form['dni'],
                              request.form['direccion'],
                              request.form['localidad'],
                              request.form['provincia'],
                              request.form['fecha_nacimiento'],
                              request.form['telefono'],
                              )


    #Una vez creado el profesor añadimos sus crendenciales de acceso al sistema básicas
    if salida['status']=='OK':
        print ' Profesor creado con éxito. Creando sus credenciales de acceso al sistema.'
        #Creamos las credenciales del usuario en la tabla credenciales usando el id del usuario que devuelve nuevoProfesor
        #Por defecto el alias y el password de un profesor en el sistemas serán su dni
        #salida Creacion Credenciales
        salidaCC=GestorCredenciales.postCredenciales(salida['idProfesor'], request.form['nombre'], request.form['dni'], request.form['dni'], 'admin')
        if salidaCC != 'OK':
            salida['status']='SBD ERROR'


        #Una vez creadas las credenciales llamamos al servicio SCE para que actualice su sistema (### DISPARADOR ###)

        #Conformamos la dirección:
        module = modules.get_current_module_name()
        url = "http://%s/" % modules.get_hostname(module="sce")
        #Añadimos el servicio al que queremos conectarnos.
        url+="profesores"

        #Creamos un diccionario con los datos.
        datos = {
          "idProfesor": salida['idProfesor'],
          "nombreProfesor": request.form['nombre']+' '+request.form['apellidos'],
        }
        form_data = urllib.urlencode(datos)
        result=urlfetch.fetch(url=url, payload=form_data, method=urlfetch.POST)
        json = jsonpickle.decode(result.content)
        if json['status']!='OK':
            salida['status']='SCE ERROR'

    if v:
        print ' Return: '+str(salida)

    return jsonpickle.encode(salida)
예제 #6
0
def getProfesores():
    '''
    Devuelve una lista con todos los profesores registrados en el sistema.
    > curl -i -X GET localhost:8002/profesores
    '''
    if v:
        print "## Microservicio DB ##"
        print 'Calling GestorPRofesores.getAlumnos()'
    return jsonpickle.encode(GestorProfesores.getProfesores())
예제 #7
0
def getProfesores():
    '''
    Devuelve una lista con todos los profesores registrados en el sistema.
    > curl -i -X GET localhost:8002/profesores
    '''
    if v:
        print "## Microservicio DB ##"
        print 'Calling GestorPRofesores.getAlumnos()'
    return jsonpickle.encode(GestorProfesores.getProfesores())
예제 #8
0
def getAsociacionesProfesor(id_profesor):
    '''
    Devuelve la lista de todas las asociaciones (relación asignatura-clase) de un profesor en concreto.
    Esta lista no solo se compone de los ids sino de el nombre de la asignatura y el nombre de la clase también.

    curl -i -X GET localhost:8002/profesores/1/asociaciones
    '''
    if v:
        print nombreMicroservicio
        print ' Recurso: /profesores/<id_profesor>/asociaciones , metodo: POST'
        print " Petición: "
        print ' '+str(request.form)

    return jsonpickle.encode(GestorProfesores.getAsociaciones(id_profesor))
예제 #9
0
def getAsociacionesProfesor(id_profesor):
    '''
    Devuelve la lista de todas las asociaciones (relación asignatura-clase) de un profesor en concreto.
    Esta lista no solo se compone de los ids sino de el nombre de la asignatura y el nombre de la clase también.

    curl -i -X GET localhost:8002/profesores/1/asociaciones
    '''
    if v:
        print nombreMicroservicio
        print ' Recurso: /profesores/<id_profesor>/asociaciones , metodo: POST'
        print " Petición: "
        print ' ' + str(request.form)

    return jsonpickle.encode(GestorProfesores.getAsociaciones(id_profesor))
예제 #10
0
def postProfesor():
    '''
    Método que inserta un nuevo alumno en el sistema.
    curl -d "nombre=Juan&dni=45601218Z&direccion=Calle arabl&localidad=Jerez de la frontera&provincia=Granada&fecha_nac=1988-2-6&telefonoA=277164459&telefonoB=177164459" -i -X POST localhost:8080/profesores
    '''
    if 'dni' in request.form:
        salida = GestorProfesores.nuevoProfesor(request.form['nombre'],
                                  request.form['dni'],
                                  request.form['direccion'],
                                  request.form['localidad'],
                                  request.form['provincia'],
                                  request.form['fecha_nac'],
                                  request.form['telefonoA'],
                                  request.form['telefonoB'])
        if salida == 'OK':
            return 'OK'
        else:
            abort(404)
    else:
        abort(404)
예제 #11
0
def delProfesor(id_profesor):
    '''
    curl -i -X DELETE localhost:8080/profesores/11223344A
    Si el alumno no se encuentra se devuelve: "Elemento no encontrado".

    Si la solicitud se realiza con un identificador de alumno que
    no cumple con ciertos requisitos como la longitud = 9, se devuelve
    el error 400 - Bad request, que significa que la solicitud contiene
    sintaxis errónea y no debería repetirse.

    Si la solicitud tiene la sintaxis correcta pero no existe el recurso
    el error es el 404 - Not found, significa recurso no encontrado,
    identificia que el servidor no ha encontrado el recurso solicitado.

    '''
    if len(id_profesor) != 9:
        abort(400)

    salida = GestorProfesores.delProfesor(id_profesor)
    if salida == "Elemento no encontrado":
        abort(404)
    else:
        return 'Elemento eliminado'
예제 #12
0
def delProfesor(id_profesor):
    '''
    curl -i -X DELETE localhost:8080/profesores/11223344A
    Si el alumno no se encuentra se devuelve: "Elemento no encontrado".

    Si la solicitud se realiza con un identificador de alumno que
    no cumple con ciertos requisitos como la longitud = 9, se devuelve
    el error 400 - Bad request, que significa que la solicitud contiene
    sintaxis errónea y no debería repetirse.

    Si la solicitud tiene la sintaxis correcta pero no existe el recurso
    el error es el 404 - Not found, significa recurso no encontrado,
    identificia que el servidor no ha encontrado el recurso solicitado.

    '''
    if len(id_profesor) != 9:
        abort(400)

    salida = GestorProfesores.delProfesor(id_profesor)
    if salida=="Elemento no encontrado":
        abort(404)
    else:
        return 'Elemento eliminado'
예제 #13
0
def modProfesorCompleto(id_profesor):
    '''
    Función que modifica los atributos de un profesor dado su identificación, usando la función
    modProfesorCompleto de la APIDB
    curl -d "nombre=Pedro&apellidos=Torrssr&dni=234242&direccion=Calle Duqesa&localidad=Granada&proviia=Burgos&fecha_nacimiento=1988-12-4&telefono=23287282" -i -X POST localhost:8002/profesores/1

    '''
    if v:
        print 'Calling GestorProfesores.modProfesorCompleto()'

    #El id del alumno se pasa por la URL
    salida = GestorProfesores.modProfesorCompleto(
        id_profesor, request.form['nombre'], request.form['apellidos'],
        request.form['dni'], request.form['direccion'],
        request.form['localidad'], request.form['provincia'],
        request.form['fecha_nacimiento'], request.form['telefono'])

    if v:
        print "SALIDA: " + str(salida)

    if salida == 'OK':
        return 'OK'
    else:
        return salida
예제 #14
0
def getClasesProfesor(id_profesor):
    '''
    curl -i -X GET localhost:8002/profesores/1/clases
    '''
    return jsonpickle.encode(GestorProfesores.getClases(id_profesor))
예제 #15
0
def getAsignaturasProfesor(id_profesor):
    '''
    curl -i -X GET localhost:8002/profesores/1/asignaturas
    '''
    return jsonpickle.encode(GestorProfesores.getAsignaturas(id_profesor))
예제 #16
0
def getAlumnosProfesor(id_profesor):
    '''
    curl -i -X GET localhost:8002/profesores/1/alumnos
    '''
    return jsonpickle.encode(GestorProfesores.getAlumnos(id_profesor))
예제 #17
0
def postProfesor():
    '''
    Método que inserta un nuevo profesor en el sistema.
    curl -d "nombre=Juan&apellidos=Bartlo&dni=46666&direccion=Calle arabl&localidad=Jerez de la fronta&provincia=Granada&fecha_nacimiento=1988-2-6&telefono=137631" -i -X POST localhost:8002/profesores


    '''
    if v:
        print nombreMicroservicio
        print " Calling postProfesor()"
        print " " + str(request.form)

    salida = GestorProfesores.nuevoProfesor(
        request.form['nombre'],
        request.form['apellidos'],
        request.form['dni'],
        request.form['direccion'],
        request.form['localidad'],
        request.form['provincia'],
        request.form['fecha_nacimiento'],
        request.form['telefono'],
    )

    #Una vez creado el profesor añadimos sus crendenciales de acceso al sistema básicas
    if salida['status'] == 'OK':
        print ' Profesor creado con éxito. Creando sus credenciales de acceso al sistema.'
        #Creamos las credenciales del usuario en la tabla credenciales usando el id del usuario que devuelve nuevoProfesor
        #Por defecto el alias y el password de un profesor en el sistemas serán su dni
        #salida Creacion Credenciales
        salidaCC = GestorCredenciales.postCredenciales(salida['idProfesor'],
                                                       request.form['nombre'],
                                                       request.form['dni'],
                                                       request.form['dni'],
                                                       'admin')
        if salidaCC != 'OK':
            salida['status'] = 'SBD ERROR'

        #Una vez creadas las credenciales llamamos al servicio SCE para que actualice su sistema (### DISPARADOR ###)

        #Conformamos la dirección:
        module = modules.get_current_module_name()
        url = "http://%s/" % modules.get_hostname(module="sce")
        #Añadimos el servicio al que queremos conectarnos.
        url += "profesores"

        #Creamos un diccionario con los datos.
        datos = {
            "idProfesor":
            salida['idProfesor'],
            "nombreProfesor":
            request.form['nombre'] + ' ' + request.form['apellidos'],
        }
        form_data = urllib.urlencode(datos)
        result = urlfetch.fetch(url=url,
                                payload=form_data,
                                method=urlfetch.POST)
        json = jsonpickle.decode(result.content)
        if json['status'] != 'OK':
            salida['status'] = 'SCE ERROR'

    if v:
        print ' Return: ' + str(salida)

    return jsonpickle.encode(salida)
예제 #18
0
def getAlumnosProfesor(id_profesor):
    '''
    curl -i -X GET localhost:8002/profesores/1/alumnos
    '''
    return jsonpickle.encode(GestorProfesores.getAlumnos(id_profesor))
예제 #19
0
def getAsignaturasProfesor(id_profesor):
    '''
    curl -i -X GET localhost:8002/profesores/1/asignaturas
    '''
    return jsonpickle.encode(GestorProfesores.getAsignaturas(id_profesor))
예제 #20
0
def getClasesProfesor(id_profesor):
    '''
    curl -i -X GET localhost:8002/profesores/1/clases
    '''
    return jsonpickle.encode(GestorProfesores.getClases(id_profesor))
예제 #21
0
def getProfesores():
    '''
    Devuelve una lista con todos los profesores registrados en el sistema.
    > curl -i -X GET localhost:8002/profesores
    '''
    return jsonpickle.encode(GestorProfesores.getProfesores())