Exemple #1
0
def getinfobyiddesafio(iddesafio):
    data = get_info_token()
    print(data)
    pretest_data_temp = Get_pretest()
    pretest_data = []
    posttest_data_temp = Get_posttest()
    posttest_data = []
    detalle_desafio = Get_challenges_by_id(data['nickname'], iddesafio)
    resultados = []
    if (data['tipousuario'] == 'GRUPO A'):
        print('G-A')
        resultados = get_results(iddesafio, 0, 50)
    elif (data['tipousuario'] == 'GRUPO B'):
        print('G-B')
        resultados = get_results(iddesafio, 10, 40)
    elif (data['tipousuario'] == 'GRUPO C'):
        print('G-C')
        resultados = get_results(iddesafio, 20, 30)
    elif (data['tipousuario'] == 'GRUPO D'):
        print('G-D')
        resultados = get_results(iddesafio, 30, 20)
    for x in pretest_data_temp:
        pretest_data.append(x[0])
    for x in posttest_data_temp:
        posttest_data.append(x[0])
    return jsonify({
        'message': "OK",
        'pretest': pretest_data,
        'posttest': posttest_data,
        'detalle': detalle_desafio,
        'test': resultados,
        'code': 200
    })
Exemple #2
0
    def post(self):
        """Realizar búsqueda [duckduckgo]"""
        data = get_info_token()
        ip_ = request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
        response = ""
        code = 500
        message = ''
        try:
            query_ = str(request.get_json()['query'].encode(
                'utf-8').strip().decode("utf-8"))
            searchengine_ = str(request.get_json()['searchengine'].encode(
                'utf-8').strip().decode("utf-8"))
            id_challenge_ = str(request.get_json()['id_challenge'])
            if searchengine_.lower() == 'google':
                response = googlesearch(query_)
                code = 200
                message = 'TODOOK'
            return jsonify({
                'message': message,
                'code': code,
                'response': response
            })

        except Exception as e:
            message = 'Se ha producido un error en nuestros servidores'
            code = 500
            print(str(e))
            return jsonify({'message': message, 'code': code})
Exemple #3
0
def GetAllChallenges():
    data = get_info_token()
    ALLCHALLENGES = Get_all_challenges(data['nickname'])
    return jsonify({
        'message': "OK",
        'allchallenges': ALLCHALLENGES,
        'code': 200
    })
Exemple #4
0
 def put(self, id_challenge):
     """Editar template de desafío , creado por el usuario"""
     data = get_info_token()
     ip_ = request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
     try:
         title_ = str(request.get_json()['title'].encode(
             'utf-8').strip().decode("utf-8"))
         description_ = str(request.get_json()['description'].encode(
             'utf-8').strip().decode("utf-8"))
         photo_ = str(request.get_json()['photo'].encode(
             'utf-8').strip().decode("utf-8"))
         aim_ = str(request.get_json()['aim'].encode(
             'utf-8').strip().decode("utf-8"))
         category_ = str(request.get_json()['category'].encode(
             'utf-8').strip().decode("utf-8"))
         Payload = {
             "title": title_,
             "description": description_,
             "photo": photo_,
             "aim": aim_,
             "category": category_
         }
         insert_request_log(
             "/professor/challenge/template/edit/" + str(id_challenge),
             "PUT", str(Payload), ip_, data['email'])
         if get_permission_by_user('Update_challenge',
                                   data['rol']) == 'True':
             response = edit_template_challenge(id_challenge, title_,
                                                description_, photo_, aim_,
                                                category_, data['email'])
             if response >= 1:
                 message = 'ok'
                 code = 200
             else:
                 message = 'No se pudo editar el desafío, probablemente no tienes los suficientes permisos. Por favor, contacta con el administrador'
                 code = 403
             response_str = {
                 'message': message,
                 'code': code,
                 'id_challenge_template': response
             }
             insert_general_log(str(response_str), ip_, data['email'])
             return jsonify(response_str)
         else:
             message = 'Acción no permitida'
             code = 403
             response_str = {'message': message, 'code': code}
             insert_general_log(str(response_str), ip_, data['email'])
             return jsonify(response_str)
     except Exception as e:
         message = 'Se ha producido un error en nuestros servidores'
         code = 500
         response_str = str({
             'error': "/template/edit/" + str(id_challenge),
             'detalle': str(e)
         })
         insert_general_log(response_str, ip_, data['email'])
         return jsonify({'message': message, 'code': code})
Exemple #5
0
    def post(self):
        """Crear nuevo template de desafío"""
        data = get_info_token()
        ip_ = request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
        try:

            title_ = str(request.get_json()['title'].encode(
                'utf-8').strip().decode("utf-8"))
            description_ = str(request.get_json()['description'].encode(
                'utf-8').strip().decode("utf-8"))
            photo_ = str(request.get_json()['photo'].encode(
                'utf-8').strip().decode("utf-8"))
            aim_ = str(request.get_json()['aim'].encode(
                'utf-8').strip().decode("utf-8"))
            category_ = str(request.get_json()['category'].encode(
                'utf-8').strip().decode("utf-8"))
            Payload = {
                "title": title_,
                "description": description_,
                "photo": photo_,
                "aim": aim_,
                "category": category_
            }
            insert_request_log("/professor/challenge/template/create", "POST",
                               str(Payload), ip_, data['email'])
            if get_permission_by_user('Create_challenge',
                                      data['rol']) == 'True':
                response = new_template_challenge(title_, description_, photo_,
                                                  aim_, category_,
                                                  data['email'])
                if response >= 1:
                    message = 'ok'
                    code = 200
                else:
                    message = 'Algo sucedió en la base de datos'
                    code = 503
                response_str = {
                    'message': message,
                    'code': code,
                    'id_challenge_template': response
                }
                insert_general_log(str(response_str), ip_, data['email'])
                return jsonify(response_str)
            else:
                message = 'Acción no permitida'
                code = 403
                response_str = {'message': message, 'code': code}
                insert_general_log(str(response_str), ip_, data['email'])
                return jsonify(response_str)
        except Exception as e:
            message = 'Se ha producido un error en nuestros servidores'
            code = 500
            response_str = str({
                'error': "/template/create",
                'detalle': str(e)
            })
            insert_general_log(response_str, ip_, data['email'])
            return jsonify({'message': message, 'code': code})
Exemple #6
0
 def get(self, id_challenge):
     """
     [NO FUNCIONANDO] - Ver el estado de deadline, para comprobar si aún puede ejecutar alguna acción sobre el desafío
     """
     data = get_info_token()
     ip_ = request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
     response = ({'message': "Endpoint Pendiente", 'code': 200})
     insert_general_log(str(response), ip_, data['email'])
     return jsonify(response)
Exemple #7
0
 def get(self):
     """
     Obtener todos los desafíos (Creados por el usuario [Profesor])
     <strong>Se obtiene un arreglo de los siguientes datos:</strong>
     -[0] Id de desafio\n
     -[1] Título\n
     -[2] Descripción\n
     -[3] Token interno (No habilitado)\n
     -[4] Foto (base64)\n
     -[5] Objetivos\n
     -[6] Fecha de creación\n
     -[7] Ultima vez modificado\n
     -[8] Tipo de deadline\n
     -[9] Valor de deadline\n
     -[10] ID de classroom a la que pertenece\n
     -[11] Categoría del desafío\n
     """
     data = get_info_token()
     ip_ = request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
     try:
         insert_request_log("/professor/challenge/", "GET", "", ip_,
                            data['email'])
         if get_permission_by_user('Read_challenge', data['rol']) == 'True':
             response = get_all_my_challenges(data['email'])
             if len(response) >= 1:
                 message = 'ok'
                 code = 200
             else:
                 message = 'Algo sucedió en la base de datos'
                 code = 503
             response_str = str({
                 'message': message,
                 'code': code,
                 'challenges': response
             })
             insert_general_log(response_str, ip_, data['email'])
             return jsonify({
                 'message': message,
                 'code': code,
                 'challenges': response
             })
         else:
             message = 'Acción no permitida'
             code = 403
             response_str = str({'message': message, 'code': code})
             insert_general_log(response_str, ip_, data['email'])
             return jsonify({'message': message, 'code': code})
     except Exception as e:
         message = 'Se ha producido un error en nuestros servidores'
         code = 500
         response_str = str({
             'error': "/professor/challenge/",
             'detalle': str(e)
         })
         insert_general_log(response_str, ip_, data['email'])
         return jsonify({'message': message, 'code': code})
Exemple #8
0
    def get(self):
        """
        Obtener todos los templates desafíos (Creados por el profesor y otros profesores)
        <strong>Se obtiene un arreglo de los siguientes datos:</strong>
        -[0] Id de template del desafio\n
        -[1] Título\n
        -[2] Descripción\n
        -[3] Foto (base64)\n
        -[4] Objetivos\n
        -[5] Fecha de creación\n
        -[6] Ultima vez modificado\n
        -[8] Estado [Show]\n
        -[9] Categoría del desafío\n
        -[10] Creado por [email del usuario]\n
        """
        data = get_info_token()
        ip_ = request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
        try:

            insert_request_log("/professor/challenge/template/", "GET", "",
                               ip_, data['email'])
            if get_permission_by_user('Read_challenge', data['rol']) == 'True':
                response = get_all_templates_challenge()
                response_str = {
                    'message': 'Template de todos los desafíos disponibles',
                    'code': 200,
                    'template_challenge': response
                }
                insert_general_log(str(response_str), ip_, data['email'])
                return jsonify(response_str)
            else:
                message = 'Acción no permitida'
                code = 403
                response_str = {'message': message, 'code': code}
                insert_general_log(str(response_str), ip_, data['email'])
                return jsonify(response_str)
        except Exception as e:
            message = 'Se ha producido un error en nuestros servidores'
            code = 500
            response_str = str({'error': "/template", 'detalle': str(e)})
            insert_general_log(response_str, ip_, data['email'])
            return jsonify({'message': message, 'code': code})
Exemple #9
0
 def get(self, id_challenge):
     """
     Obtiene lista de los estudiantes suscritos al desafío y el estado de cada uno
     """
     code = 500
     data = get_info_token()
     ip_ = request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
     insert_request_log(
         "/professor/challenge/" + str(id_challenge) + "/get_all_students",
         "GET", "", ip_, data['email'])
     try:
         if data['rol'] == 'Professor':
             print(data['email'])
             if iam_owner_of_this_challenge(id_challenge, data['email']):
                 data_ = get_all_students_in_challenge(id_challenge)
                 response_str = {'message': data_, 'code': 200}
                 insert_general_log(str(response_str), ip_, data['email'])
                 return jsonify(response_str)
             else:
                 response_str = {
                     'message':
                     'Acción no permitida, probablemente no tienes la autorización necesaria',
                     'code': 403
                 }
                 insert_general_log(str(response_str), ip_, data['email'])
                 return jsonify(response_str)
         else:
             return jsonify({'message': 'Acción no permitida', 'code': 503})
     except Exception as e:
         message = 'Se ha producido un error en nuestros servidores'
         response_str = str({
             'error':
             "/professor/challenge/" + str(id_challenge) +
             "/get_all_students",
             'detalle':
             str(e)
         })
         insert_general_log(response_str, ip_, data['email'])
         return jsonify({'message': message, 'code': code})
Exemple #10
0
def getinfobyiddesafio(iddesafio):
    data = get_info_token()
Exemple #11
0
def testing_logged():
    """
    Returns the data contained in the token, and thus validates that the token is valid
    """
    data = get_info_token()
    return jsonify({'message': "You're logged", 'data': data, 'code': 200})
Exemple #12
0
 def put(self, id_challenge):
     """Editar desafío por id"""
     data = get_info_token()
     ip_ = request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
     try:
         if data['rol'] == 'Professor':
             title_ = str(request.get_json()['title'].encode(
                 'utf-8').strip().decode("utf-8"))
             description_ = str(request.get_json()['description'].encode(
                 'utf-8').strip().decode("utf-8"))
             photo_ = str(request.get_json()['photo'].encode(
                 'utf-8').strip().decode("utf-8"))
             aim_ = str(request.get_json()['aim'].encode(
                 'utf-8').strip().decode("utf-8"))
             deadline_type_ = str(
                 request.get_json()['deadline_type'].encode(
                     'utf-8').strip().decode("utf-8"))
             deadline_value_ = str(
                 request.get_json()['deadline_value'].encode(
                     'utf-8').strip().decode("utf-8"))
             id_classroom_ = str(request.get_json()['id_classroom'].encode(
                 'utf-8').strip().decode("utf-8"))
             category_ = str(request.get_json()['category'].encode(
                 'utf-8').strip().decode("utf-8"))
             Payload = {
                 "title": title_,
                 "description": description_,
                 "photo": photo_,
                 "aim": aim_,
                 "deadline_type": deadline_type_,
                 "deadline_value": deadline_value_,
                 "id_classroom": id_classroom_,
                 "category": category_
             }
             insert_request_log(
                 "/professor/challenge/edit/" + str(id_challenge), "PUT",
                 str(Payload), ip_, data['email'])
             if iam_owner_of_this_challenge(id_challenge, data['email']):
                 if get_permission_by_user('Update_challenge',
                                           data['rol']) == 'True':
                     response = edit_challenge(id_challenge, title_,
                                               description_, photo_, aim_,
                                               deadline_type_,
                                               deadline_value_,
                                               id_classroom_, category_)
                     if response >= 1:
                         message = 'ok'
                         code = 200
                     else:
                         message = 'Algo sucedió en la base de datos'
                         code = 503
                     response_str = str({
                         'message': message,
                         'code': code,
                         'id_challenge': response
                     })
                     insert_general_log(response_str, ip_, data['email'])
                     return jsonify({
                         'message': message,
                         'code': code,
                         'id_challenge': response
                     })
                 else:
                     message = 'Acción no permitida'
                     code = 403
                     response_str = str({'message': message, 'code': code})
                     insert_general_log(response_str, ip_, data['email'])
                     return jsonify({'message': message, 'code': code})
     except Exception as e:
         message = 'Se ha producido un error en nuestros servidores'
         code = 500
         response_str = str({
             'error':
             "/professor/challenge/edit/" + str(id_challenge),
             'detalle':
             str(e)
         })
         insert_general_log(response_str, ip_, data['email'])
         return jsonify({'message': message, 'code': code})