예제 #1
0
def getNotamateriaToAlumnoIDbyNombreMateria(idalumno,argumentos):
    isvalidArgs(argumentos)
    nombremateria=argumentos.get("nombremateria")
    if (nombremateria):
        nombremateria_string = nombremateria.replace('"', '');
        print(nombremateria_string)
        retorno=isNumber(nombremateria_string)
        if (not(isNumber(nombremateria_string))):         
            notamateria=NotaMateria.getNotamateriaToAlumnoIDbyNombreMateria(idalumno,nombremateria)
            print(notamateria.rowcount)
            cantidadRegistros=notamateria.rowcount
            if (notamateria.rowcount==0):
                raise NotFound('Recurso no encontrado.',CodeInternalError.ERROR_INTERNAL_12_REQUEST_NOT_FOUND)
            elif (notamateria.rowcount==1):
                    print('aca 1 resultado')
                    for itm in notamateria:
                        return jsonify(alumnoid=itm.alumno_fk,
                        notamateriaid=itm.notamateria_id,
                        nombremateria=itm.nombremateria,
                        notafinal=itm.notafinal,
                        ), status.HTTP_201_CREATED
            else:
                resultadojson=[]
                for itm in notamateria:
                    notatemporal=NotaMateria.serializarManual(itm.notamateria_id,itm.alumno_fk,itm.nombremateria,itm.notafinal)
                    resultadojson.append(notatemporal)
                return jsonify(resultadojson) 
        else:
            raise BadResquest('Nombremateria no puede ser un número.', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    else:
        raise BadResquest('No se encontró el parametro Nombremateria.', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
예제 #2
0
def updateNotaMateria(request,alumnoid,notamateriaid): 
    try:
        nombremateria=request.json['nombremateria'],
        notafinal=request.json['notafinal']
    except Exception as identifier:
        raise BadResquest('Estructa de Json incorrecta',CodeInternalError.ERROR_INTERNAL_10_JSON_BAD_FORMED) 
    #se valida el nro de la nota
    if (not(isNumber(alumnoid))):
        raise BadResquest('AlumnoID es un dato valido', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    elif (not(isNumber(notamateriaid))):
        raise BadResquest('NotamateriaID es un tipo invalido', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    if (not(isNumber(notafinal))):
        raise BadResquest('Nota materia no es un dato valido', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    isValidNotaFinal(notafinal)
    if (NotaMateria.existsMateriaIDToAlumnoID(alumnoid,notamateriaid)):
        try:
            notamateria=NotaMateria.getNotaMateriaByNotamateriaID(notamateriaid)
            notamateria.nombremateria=nombremateria
            notamateria.notafinal=notafinal
            notamateria.save()
            notamateria_updated=NotaMateria.getNotaMateriaByNotamateriaID(notamateriaid)
            return jsonify(alumnoid=notamateria_updated.alumno_fk,
                           notamateriaid=notamateria_updated.notamateria_id,
                           nombremateria=notamateria_updated.nombremateria,
                           notafinal=notamateria_updated.notafinal,
                            )
        except Exception as identifier:
            raise InternalServerError('Error relacionado con base de datos.', CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)       
    else:
        raise BadResquest('Los datos recibidos no coinciden.',CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED) 
예제 #3
0
def deleteNotaMateria(alumnoid,notamateriaid):    
    if (not(isNumber(notamateriaid))):
        BadResquest('NotamateriaID es un dato invalido', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    if (not(isNumber(alumnoid))):
        BadResquest('AlumnoID es un dato invalido', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    if (not(NotaMateria.existsMateriaIDToAlumnoID(alumnoid,notamateriaid))):
        raise NotFound('No existe la materia para el alumno asociado.', CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)   
    try:
        notamateria_delete=NotaMateria.getNotaMateriaByNotamateriaID(notamateriaid)
        notamateria_delete.delete()
        return ('',status.HTTP_204_NO_CONTENT)
    except Exception as identifier:
        raise InternalServerError('Error relacionado con base de datos.', CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)   
예제 #4
0
def getNotasMateriasToAlumnoIDbyNotaMateriaID(alumnoid, materiaid):
    if (not (isNumber(alumnoid))):
        raise BadResquest(
            identifier,
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    elif (not (isNumber(materiaid))):
        raise BadResquest(
            identifier,
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    try:
        notamateria = NotaMateria.getNotaMateriaNotamateriaIDToAlumnoID(
            materiaid, alumnoid)
    except Exception as identifier:
        raise InternalServerError(
            'Error relacionado en base de datos.',
            CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)
    if notamateria is not None:
        return jsonify(
            alumno_id=notamateria.alumno_fk,
            notamateria_id=notamateria.notamateria_id,
            nombremateria=notamateria.nombremateria,
            notafinal=notamateria.notafinal,
        )
    else:
        raise NotFound('No se encontraron los datos solicitados.',
                       CodeInternalError.ERROR_INTERNAL_12_REQUEST_NOT_FOUND)
예제 #5
0
def updateNotaMateriasByAlumnoID(id):
    try:      
        obj=NotaMateria.buscarMateriasByAlumnoID(id)
        json_str=jsonify([e.serializar() for e in obj])
        return (json_str)
    except Exception as e:
	    return(str(e))
예제 #6
0
def addNotaMateria(request, alumnoid):
    if (not (isNumber(alumnoid))):
        raise BadResquest(
            'AlumnoID no es un tipo de dato valido.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    notamateria = setNotaMateria(request, ADD_NEW, alumnoid)
    json_recibido = request.json
    nombremateria = json_recibido['nombremateria']
    existe = nombremateria in Listamaterias
    if (not (existe)):
        raise BadResquest(
            'No existe el nombre de la materia',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    if (NotaMateria.existsNombreMateriaToAlumnoID(notamateria.alumno_fk,
                                                  nombremateria) == True):
        raise Conflict(
            'Existe una nota para esta materia.',
            CodeInternalError.ERROR_INTERNAL_14_REQUEST_DATA_DUPLICATED)
    else:
        try:
            notamateria.save()
            retorno_id = notamateria.__repr__()
            notamateria_created = notamateria.getNotaMateriaByNotamateriaID(
                retorno_id)
            return jsonify(
                alumnoid=notamateria_created.alumno_fk,
                notamateriaid=notamateria_created.notamateria_id,
                nombremateria=notamateria_created.nombremateria,
                notafinal=notamateria_created.notafinal,
            ), status.HTTP_201_CREATED
            return (retorno_id)
        except Exception as identifier:
            raise InternalServerError(
                'Error relacionado con base de datos',
                CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)
예제 #7
0
def setNotaMateria(request,action,alumnoid=0):
    try:  
        request.get_json()
    except Exception as identifier:
        raise BadResquest('Estructura de archivo invalida',CodeInternalError.ERROR_INTERNAL_10_JSON_BAD_FORMED)
    isValidDataType(request)
    isValidNotaFinal(request.json['notafinal']) 
    if (action):
        notamateria=NotaMateria(
            alumnoid,
            request.json['nombremateria'],
            request.json['notafinal'],
            0,
            ADD_NEW
        )
    '''else:
        try:  
            notamateria=NotaMateria(
                request.json['alumno_id'],
                request.json['nombremateria'],
                request.json['notafinal'],
                request.json['notamateria_id'],
                UPDATE
            )
        except Exception as identifier:
            raise BadResquest('Estructura de archivo invalida',CodeInternalError.ERROR_INTERNAL_10_JSON_BAD_FORMED)'''
    return notamateria
예제 #8
0
def setNotaMateria(request):
    try:
        notamateria = NotaMateria(request.json['alumno_id'],
                                  request.json['nombremateria'],
                                  request.json['notafinal'])
    except Exception as identifier:
        raise BadResquest('Estructa de Json incorrecta',
                          CodeInternalError.ERROR_INTERNAL_10_JSON_BAD_FORMED)
    return notamateria
예제 #9
0
def getNotasMaterias():
    #materias=NotaMateria.buscarNotasMaterias()
    #json_Str=jsonify([e.serializar() for e in materias])
    #return json_Str
    page = NotaMateria.buscarNotasMaterias()
    final_list = []
    for element in page:
        final_list.append(element)
    return jsonify(final_list), status_code
예제 #10
0
def getNotamateriaToAlumnoIDbyNombreMateria(idalumno, argumentos):
    isvalidArgs(argumentos)
    nombremateria = argumentos.get("nombremateria")
    if (nombremateria):
        nombremateria_string = nombremateria.replace('"', '')
        retorno = isNumber(nombremateria_string)
        if (not (isNumber(nombremateria_string))):
            notamateria = NotaMateria.getNotamateriaToAlumnoIDbyNombreMateria(
                idalumno, nombremateria)
            cantidadRegistros = notamateria.rowcount
            if (notamateria.rowcount == 0):
                raise NotFound(
                    'El recurso buscado no existe.', CodeInternalError.
                    ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
                #return ('',status.HTTP_204_NO_CONTENT)
            elif (notamateria.rowcount == 1):
                resultadojson1 = []
                for itm in notamateria:
                    return (NotaMateria.serializarManual(
                        itm.notamateria_id, itm.alumno_fk, itm.nombremateria,
                        itm.notafinal))
                    '''
                        notatemporal1=NotaMateria.serializarManual(itm.notamateria_id,itm.alumno_fk,itm.nombremateria,itm.notafinal)
                        resultadojson1.append(notatemporal1)
                    return jsonify(resultadojson1)
                    '''
            else:
                resultadojson = []
                for itm in notamateria:
                    notatemporal = NotaMateria.serializarManual(
                        itm.notamateria_id, itm.alumno_fk, itm.nombremateria,
                        itm.notafinal)
                    resultadojson.append(notatemporal)
                return jsonify(resultadojson)
        else:
            raise BadResquest(
                'Nombremateria no puede ser un número.',
                CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    else:
        raise NotFound(
            'El recurso buscado no existe.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
예제 #11
0
def getNotasMateriasByAlumnoID(alumnoid):
    if not(isNumber(alumnoid)):
        raise BadResquest('AlumnoID es un tipo invalido', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    try:
        obj=NotaMateria.getNotasMateriasByAlumnoID(alumnoid)
    except Exception as identifier:
        raise InternalServerError(identifier, CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)          
    if obj is not None and len(obj)!=0:
        json_Str=jsonify([e.serializar() for e in obj]) 
        return json_Str
    else:
        raise NotFound('Recurso no encontrado.',CodeInternalError.ERROR_INTERNAL_12_REQUEST_NOT_FOUND)
예제 #12
0
def findNotasMateriasByAlumnoID(id):
    try:
        obj = NotaMateria.getNotasMateriasByAlumnoID(id)
    except Exception as identifier:
        raise InternalServerError(
            'Error relacionado con base de datos.',
            CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)
    if obj is not None and len(obj) != 0:
        json_Str = jsonify([e.serializar() for e in obj])
        return json_Str
    else:
        raise BadResquest(
            'Recurso no encontrado en la base de datos.',
            CodeInternalError.ERROR_INTERNAL_12_REQUEST_NOT_FOUND)
예제 #13
0
def getNotasMateriasByAlumnoID(alumnoid):
    if not (isNumber(alumnoid)):
        raise BadResquest(
            'AlumnoID no es un tipo de dato valido.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    try:
        obj = NotaMateria.getNotasMateriasByAlumnoID(alumnoid)
    except Exception as identifier:
        raise InternalServerError(
            'Error relacionado con base de datos.',
            CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)
    if (obj is not None and len(obj) > 1):
        json_Str = jsonify([e.serializar() for e in obj])
        return json_Str
    elif (obj is not None and len(obj) == 1):
        for itm in obj:
            return NotaMateria.serializarManual(itm.notamateria_id,
                                                itm.alumno_fk,
                                                itm.nombremateria,
                                                itm.notafinal)
    else:
        raise NotFound(
            'El recurso buscado no existe.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
예제 #14
0
def deleteNotaMateria(id):
    try:
        notamateria = NotaMateria.buscarNotaMateriaByNotamateriaID(id)
    except Exception as identifier:
        raise InternalServerError(
            'Error relacionado con base de datos.',
            CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)
    if notamateria is not None:
        try:
            notamateria.delete()
            return ('Recurso eliminado.', status.HTTP_200_OK)
        except Exception as identifier:
            raise InternalServerError(
                'Error relacionado con base de datos.',
                CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)
    else:
        raise BadResquest(
            'Recurso no encontrado en la base de datos.',
            CodeInternalError.ERROR_INTERNAL_12_REQUEST_NOT_FOUND)
예제 #15
0
def updateNotaMateria(request):
    try:
        notamateriaID = request.json['notamateria_id']
        nombremateria = request.json['nombremateria']
        notafinal = request.json['notafinal']
        alumnoID = request.json['alumno_id']
    except Exception as identifier:
        raise BadResquest('Estructa de Json incorrecta',
                          CodeInternalError.ERROR_INTERNAL_10_JSON_BAD_FORMED)
    #se valida el nro de la nota
    if (int(notafinal) >= 11 or int(notafinal) < 0):
        raise BadResquest('Nota invalida',
                          CodeInternalError.ERROR_INTERNAL_10_JSON_BAD_FORMED)
    #Se valida si la notamateriaID recibida corresponde al alumno en cuestión. Valida si el user no existe.
    notamateria = NotaMateria.buscarNotaMateriaByNotamateriaID(notamateriaID)
    if notamateria is None:
        raise BadResquest(
            'Los datos recibidos no coinciden.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    if (int(alumnoID) == int(notamateria.alumno_fk)):
        try:
            notamateria.nombremateria = nombremateria
            notamateria.notafinal = notafinal
            '''print(notamateria.nombremateria)
            print(notamateria.notafinal)
            print(notamateria.alumno_fk)
            print(notamateria.notamateria_id)'''
            notamateria.save()
            return ('Recurso actualizado.')
        except Exception as identifier:
            raise InternalServerError(
                'Error relacionado con base de datos.',
                CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)
    else:
        raise BadResquest(
            'Los datos recibidos no coinciden.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
예제 #16
0
def updateNotaMateria(request, alumnoid, notamateriaid):
    try:
        json_recibido = request.json
        nombremateria = json_recibido['nombremateria']
        notafinal = request.json['notafinal']
    except Exception as identifier:
        raise BadResquest('Estructa de Json incorrecta.',
                          CodeInternalError.ERROR_INTERNAL_10_JSON_BAD_FORMED)
    #se valida el nro de la nota
    if (not (isNumber(alumnoid))):
        raise BadResquest(
            'AlumnoID no es un tipo de dato valido.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    elif (not (isNumber(notamateriaid))):
        raise BadResquest(
            'NotamateriaID no es un tipo de dato valido.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    if (not (isNumber(notafinal))):
        raise BadResquest(
            'Nota final no es un tipo de dato valido.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    isValidNotaFinal(notafinal)
    existe = nombremateria in Listamaterias
    if (not (existe)):
        raise BadResquest(
            'No existe el nombre de la materia.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    #Si el objeto recibido es igual que en la base devuelve el mismo. Si no lo es, se valida que no este actualizando
    #la materia_id con un nombre de materia ya existente.
    if (NotaMateria.existsMateriaIDToAlumnoID(alumnoid, notamateriaid)):
        notaMateria_base = NotaMateria.getNotaMateriaNotamateriaIDToAlumnoID(
            notamateriaid, alumnoid)
        if (notaMateria_base.nombremateria == nombremateria
                and notaMateria_base.notafinal == notafinal):
            return jsonify(
                alumnoid=alumnoid,
                notamateriaid=notamateriaid,
                nombremateria=nombremateria,
                notafinal=notafinal,
            )
        else:
            if (NotaMateria.existsNombreMateriaToAlumnoID(
                    alumnoid, nombremateria)):
                notamateria_existente = NotaMateria.getNotaMateriaByNombreMateria(
                    alumnoid, nombremateria)
                if (notamateria_existente.notamateria_id !=
                        notaMateria_base.notamateria_id):
                    raise Conflict(
                        'Existe otra materia con el mismo nombre.',
                        CodeInternalError.
                        ERROR_INTERNAL_14_REQUEST_DATA_DUPLICATED)
                else:
                    notamateria = NotaMateria.getNotaMateriaByNotamateriaID(
                        notamateriaid)
                    notamateria.nombremateria = nombremateria
                    notamateria.notafinal = notafinal
                    notamateria.save()
                    notamateria_updated = NotaMateria.getNotaMateriaByNotamateriaID(
                        notamateriaid)
                    return jsonify(
                        alumnoid=notamateria_updated.alumno_fk,
                        notamateriaid=notamateria_updated.notamateria_id,
                        nombremateria=notamateria_updated.nombremateria,
                        notafinal=notamateria_updated.notafinal,
                    )
            else:
                notamateria = NotaMateria.getNotaMateriaByNotamateriaID(
                    notamateriaid)
                notamateria.nombremateria = nombremateria
                notamateria.notafinal = notafinal
                notamateria.save()
                notamateria_updated = NotaMateria.getNotaMateriaByNotamateriaID(
                    notamateriaid)
                return jsonify(
                    alumnoid=notamateria_updated.alumno_fk,
                    notamateriaid=notamateria_updated.notamateria_id,
                    nombremateria=notamateria_updated.nombremateria,
                    notafinal=notamateria_updated.notafinal,
                )
    else:
        raise BadResquest(
            'Los datos recibidos no coinciden.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
예제 #17
0
def imprimirJson():
    notamateria = NotaMateria('11', 'estadistica', '10')
    json_data = json.dumps(notamateria)
    print(json_data)
    return (json_data)
예제 #18
0
def getNotasMaterias():
    materias=NotaMateria.buscarNotasMaterias()
    json_Str=jsonify([e.serializar() for e in materias]) 
    return json_Str
    '''page=NotaMateria.buscarNotasMaterias()