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)
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)
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
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))
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)
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())
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))
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))
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)
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'
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'
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
def getClasesProfesor(id_profesor): ''' curl -i -X GET localhost:8002/profesores/1/clases ''' return jsonpickle.encode(GestorProfesores.getClases(id_profesor))
def getAsignaturasProfesor(id_profesor): ''' curl -i -X GET localhost:8002/profesores/1/asignaturas ''' return jsonpickle.encode(GestorProfesores.getAsignaturas(id_profesor))
def getAlumnosProfesor(id_profesor): ''' curl -i -X GET localhost:8002/profesores/1/alumnos ''' return jsonpickle.encode(GestorProfesores.getAlumnos(id_profesor))
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)
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())