def create_new_room():
    try:
        auth_token = request.headers['Authorization']
        decoded = session_token.decode(auth_token)
        if decoded == False:
            return invalid_session()
        elif decoded['exp'] < int(time.time()):
            return session_exp()
    except KeyError:
        return invalid_session()
    except jwt.exceptions.DecodeError:
        return invalid_session()

    params = get_room_info_from_request()

    connection = db.get_connection()
    try:
        room_id = room_model.create_room(params, connection)
        room_model.update_ip(room_id, params[1], connection)
        connection.commit()
        room_info = room_model.get_room(room_id, connection)
    except IntegrityError as e:
        connection.rollback()
        return db_error(e)
    finally:
        connection.close()

    return success(room_info)
Esempio n. 2
0
def report_measurement(room_id):
    # 토큰의 uid와 입력된 uid가 일치하는지 검사한다.
    try:
        access_token = request.headers['Authorization']
    except KeyError:
        return invalid_session()

    connection = db.get_connection()
    try:
        room_info = room_model.get_room(room_id, connection)

        if access_key.valid(access_token, room_info['ip'],
                            room_info['id']) == False:
            return invalid_session()

        data = request.json
        datetime = data["datetime"]
        temperature = data["temperature"]
        humidity = data["humidity"]

        measurement_model.insert((room_id, datetime, temperature, humidity),
                                 connection)
        connection.commit()
    except IntegrityError as e:
        connection.rollback()
        return db_error(e)
    except KeyError:
        connection.rollback()
        return invalid_param()
    finally:
        connection.close()

    return success('OK')
Esempio n. 3
0
def start_stream(board_id):
    con = db.get_connection()
    stream_table = con['stream']
    last_event_id = request.headers.get('Last-Event-Id', 0)
    sse.publish(list(stream_table.find(last_event_id=last_event_id)),
                channel=board_id)
    return io_util.set_response_json(data='message send!!')
def create_session():
    connection = db.get_connection()

    data = request.json
    email = data["email"]
    passwd = data["password"]

    # 사용자 패스워드 조회
    try:
        result = user_model.get_password(email, connection)

        if (result):
            if password.valid(result[1], passwd):
                token = session_token.encode(result[0])
                session_model.insert(token, connection)
                connection.commit()
                return success({'uid': result[0], 'token': token})
            else:
                return invalid_password()
    except IntegrityError as e:
        connection.rollback()
        return db_error.response(e)
    finally:
        connection.close()

    return no_user()
def update_session():
    # 토큰의 uid와 입력된 uid가 일지하는지 검사한다.
    try:
        auth_token = request.headers['Authorization']
        decoded = session_token.decode(auth_token)
        data = request.json
        uid = data['uid']
        if (decoded['uid'] != uid):
            return invalid_param('Invalid User')
        elif decoded['exp'] < int(time.time()):
            return session_exp()
    except KeyError:
        return invalid_session()
    except jwt.exceptions.DecodeError:
        return invalid_session()

    # 새로운 토근을 발급한다
    connection = db.get_connection()
    try:
        new_token = session_token.encode(uid)
        session_model.update(auth_token, new_token, connection)
        connection.commit()
    except IntegrityError as e:
        connection.rollback()
        return db_error.response(e)
    finally:
        connection.close()

    return success({'uid': uid, 'token': new_token})
def delete_session():
    # 토큰의 uid와 입력된 uid가 일지하는지 검사한다.
    try:
        auth_token = request.headers['Authorization']
        decoded = session_token.decode(auth_token)
        uid = request.args.get('uid')
        if (decoded['uid'] != uid):
            return invalid_param('Invalid User')
        elif decoded['exp'] < int(time.time()):
            return session_exp()
    except KeyError:
        return invalid_session()

    # 세션 레코드를 삭제한다.
    connection = db.get_connection()
    try:
        result = session_model.delete(auth_token, connection)
        connection.commit()
    except IntegrityError as e:
        connection.rollback()
        return db_error.response(e)
    finally:
        connection.close()

    return success('OK')
Esempio n. 7
0
def getMusculos(documento):
    con = db.get_connection()
    dbejercicios = con.ModeloEjercicios
    try:
        musculos = dbejercicios.info_musculo
        retorno = dumps(musculos.find({"paciente.documento": documento}))
        return jsonify(retorno)
    finally:
        con.close()
        print('coneccion cerrada')
def getPacientes():
    con = db.get_connection()
    dbejercicios = con.ModeloEjercicios
    try:
        pacientes = dbejercicios.pacientes
        retorno = dumps(pacientes.find({}))
        return jsonify(retorno)
    finally:
        con.close()
        print('coneccion cerrada')
Esempio n. 9
0
def getequipos():
    con = db.get_connection()
    dbevaluaciones = con.Modeloevaluaciones
    try:
        equipos = dbevaluaciones.equipos
        retorno = dumps(equipos.find({}))
        return jsonify(retorno)
    finally:
        con.close()
        print('coneccion cerrada')
Esempio n. 10
0
def getMusculosLista():
    con = db.get_connection()
    dbejercicios = con.ModeloEjercicios

    try:
        musculos = dbejercicios.musculos
        retorno = list(musculos.find({}))
        lista = [d['musculo'] for d in retorno]
        return jsonify({'data': lista, 'status': 200})
    finally:
        con.close()
        print('coneccion cerrada')
Esempio n. 11
0
def getListequipo(parametro='documento'):
    con = db.get_connection()
    dbevaluaciones = con.Modeloevaluaciones

    try:
        equipos = dbevaluaciones.equipos
        retorno = list(equipos.find({}))
        lista = [d[parametro] for d in retorno]
        return jsonify({'data': lista, 'status': 200})
    finally:
        con.close()
        print('coneccion cerrada')
def getListPaciente(parametro='documento'):
    con = db.get_connection()
    dbejercicios = con.ModeloEjercicios

    try:
        pacientes = dbejercicios.pacientes
        retorno = list(pacientes.find({}))
        lista = [d[parametro] for d in retorno]
        return jsonify({'data': lista, 'status': 200})
    finally:
        con.close()
        print('coneccion cerrada')
Esempio n. 13
0
class Book:
    conn = get_connection()

    def __init__(self, _id=None):
        self._id = None
        self._author = None
        self._title = None
        self._changed = False

        if _id is not None:
            self._load(_id)

    @property
    def id(self):
        return self._id

    @property
    def author(self):
        return self._author

    @property
    def title(self):
        return self._title

    @author.setter
    def author(self, value):
        self._author = value
        self._changed = True

    @title.setter
    def title(self, value):
        self._title = value
        self._changed = True

    def _load(self, _id):
        cursor = self.conn.cursor()
        cursor.execute(SELECT_STATEMENT, (_id, ))
        book = cursor.fetchone()
        self._id, self._title, self._author = book

    def save(self):
        if not self._changed:
            return

        cursor = self.conn.cursor()
        if not self.id:
            cursor.execute(INSERT_STATEMENT, (self.author, self.title))
            self._id = cursor.lastrowid
        else:
            cursor.execute(UPDATE_STATEMENT,
                           (self.author, self.title, self.id))
        self.conn.commit()
        self._changed = False
Esempio n. 14
0
def guardarMusculo(data):
    con = db.get_connection()
    dbejercicios = con.ModeloEjercicios

    try:
        musculos = dbejercicios.musculos
        musculos.insert(data)
        return jsonify({'message': 'musculo insertado', 'status': 200})
    except:
        return jsonify({'message': 'fallo en la insercion', 'status': 500})
    finally:
        con.close()
        print('coneccion cerrada')
Esempio n. 15
0
def createPatient(data):
    con = db.get_connection()
    dbevaluaciones = con.Modeloevaluaciones

    try:
        equipos = dbevaluaciones.equipos
        equipos.insert(data)
        return jsonify({'message': 'equipo insertado', 'status': 200})
    except:
        return jsonify({'message': 'fallo en la insercion', 'status': 500})
    finally:
        con.close()
        print('coneccion cerrada')
def createPatient(data):
    con = db.get_connection()
    dbejercicios = con.ModeloEjercicios

    try:
        pacientes = dbejercicios.pacientes
        pacientes.insert(data)
        return jsonify({'message': 'paciente insertado', 'status': 200})
    except:
        return jsonify({'message': 'fallo en la insercion', 'status': 500})
    finally:
        con.close()
        print('coneccion cerrada')
Esempio n. 17
0
def deletePatientDocument(documento):
    con = db.get_connection()
    dbevaluaciones = con.Modeloevaluaciones

    try:
        equipos = dbevaluaciones.equipos
        equipos.delete_many({'documento': documento})
        return jsonify({'message': 'equipo eliminado', 'status': 200})
    except:
        return jsonify({'message': 'fallo al eliminar equipo', 'status': 500})

    finally:
        con.close()
        print('coneccion cerrada')
def deletePatientDocument(documento):
    con = db.get_connection()
    dbejercicios = con.ModeloEjercicios

    try:
        pacientes = dbejercicios.pacientes
        pacientes.delete_many({'documento': documento})
        return jsonify({'message': 'paciente eliminado', 'status': 200})
    except:
        return jsonify({
            'message': 'fallo al eliminar paciente',
            'status': 500
        })

    finally:
        con.close()
        print('coneccion cerrada')
Esempio n. 19
0
def editarequipo(data):

    con = db.get_connection()
    dbevaluaciones = con.Modeloevaluaciones

    try:
        equipos = dbevaluaciones.equipos
        print(data['data'])
        equipos.find_one_and_update({'documento': data['documento']},
                                    {'$set': data['data']})
        return jsonify({'message': 'equipo editado', 'status': 200})
    except:
        return jsonify({'message': 'fallo al editar un equipo', 'status': 500})

    finally:
        con.close()
        print('coneccion cerrada')
Esempio n. 20
0
def guardarMusculoInfo(data):
    con = db.get_connection()
    dbejercicios = con.ModeloEjercicios
    try:
        musculosInfo = dbejercicios.info_musculo
        musculos = dbejercicios.musculos
        pacientes = dbejercicios.pacientes

        try:
            pacienteGuardar = list(
                pacientes.find({'documento': data['documento']}))
            musculoGuardar = list(musculos.find({'musculo': data['musculo']}))
            if (len(pacienteGuardar) == 1 and len(musculoGuardar) == 1):
                informacionGuardar = data['data']
                informacionGuardar['paciente'] = {
                    'documento': pacienteGuardar[0]['documento'],
                    'id_documento': str(pacienteGuardar[0]['_id'])
                }
                informacionGuardar['musculo'] = {
                    'nombre': musculoGuardar[0]['musculo'],
                    'id_nombre_musculo': str(musculoGuardar[0]['_id'])
                }

                print(informacionGuardar)

                musculosInfo.insert(informacionGuardar)
                return jsonify({
                    'message': 'informacion muscular guardada',
                    'status': 200
                })
            elif (len(pacienteGuardar) != 1):
                return jsonify({
                    'message': 'paciente no existe',
                    'status': 500
                })
            else:
                return jsonify({'message': 'musculo no existe', 'status': 500})

        except:
            return jsonify({'message': 'fallo en la insercion', 'status': 500})
    except:
        return jsonify({'message': 'fallo en la insercion', 'status': 500})
    finally:
        con.close()
        print('coneccion cerrada')
Esempio n. 21
0
def getMusculos(documento):
    con = db.get_connection()
    dbevaluaciones = con.Modeloevaluaciones
    try:
        equipos = dbevaluaciones.equipos
        datos_ejercio = dbevaluaciones.datos_evaluacion
        evaluaciones = dbevaluaciones.evaluaciones
        musculos = dbevaluaciones.musculos

        equipo = dict(equipos.find_one({'documento': documento}))
        capturasequipo = list(
            datos_ejercio.find({'equipo': str(equipo['_id'])}))
        respuesta = []
        if (len(capturasequipo) > 0):
            for registro in capturasequipo:
                evaluacionRealizado = evaluaciones.find_one(
                    {'_id': ObjectId(registro['evaluacion'])})
                musculoRealizado = musculos.find_one(
                    {'_id': ObjectId(registro['musculo'])})

                del registro['evaluacion'], registro['musculo'], registro[
                    'equipo'], registro['_id']
                del evaluacionRealizado['_id'], musculoRealizado['_id']

                evaluacionDatos = {
                    **registro,
                    **evaluacionRealizado,
                    **musculoRealizado
                }
                respuesta.append(evaluacionDatos)

            return {
                'message': 'evaluaciones del equipo',
                'status': 200,
                'data': respuesta
            }
        else:
            return jsonify({
                'message': 'equipo no tiene registros en la base de datos',
                'status': 404
            })
    finally:
        con.close()
        print('coneccion cerrada')
def getMusculos(documento):
    con = db.get_connection()
    dbejercicios = con.ModeloEjercicios
    try:
        pacientes = dbejercicios.pacientes
        datos_ejercio = dbejercicios.datos_ejercicio
        ejercicios = dbejercicios.ejercicios
        musculos = dbejercicios.musculos

        paciente = dict(pacientes.find_one({'documento': documento}))
        capturasPaciente = list(
            datos_ejercio.find({'paciente': str(paciente['_id'])}))
        respuesta = []
        if (len(capturasPaciente) > 0):
            for registro in capturasPaciente:
                ejercicioRealizado = ejercicios.find_one(
                    {'_id': ObjectId(registro['ejercicio'])})
                musculoRealizado = musculos.find_one(
                    {'_id': ObjectId(registro['musculo'])})

                del registro['ejercicio'], registro['musculo'], registro[
                    'paciente'], registro['_id']
                del ejercicioRealizado['_id'], musculoRealizado['_id']

                ejercicioDatos = {
                    **registro,
                    **ejercicioRealizado,
                    **musculoRealizado
                }
                respuesta.append(ejercicioDatos)

            return {
                'message': 'ejercicios del paciente',
                'status': 200,
                'data': respuesta
            }
        else:
            return jsonify({
                'message': 'paciente no tiene registros en la base de datos',
                'status': 404
            })
    finally:
        con.close()
        print('coneccion cerrada')
Esempio n. 23
0
def create_new_user():
    data = request.json
    email = data["email"]
    pwd = data["password"]
    confirm = data["confirm"]

    if (pwd != confirm):
        return invalid_password()

    connection = db.get_connection()
    try:
        user_model.insert(email, pwd, connection)
        connection.commit()
    except IntegrityError as e:
        return db_error(e)
    finally:
        connection.close()

    return success('OK')
def editarPaciente(data):

    con = db.get_connection()
    dbejercicios = con.ModeloEjercicios

    try:
        pacientes = dbejercicios.pacientes
        print(data['data'])
        pacientes.find_one_and_update({'documento': data['documento']},
                                      {'$set': data['data']})
        return jsonify({'message': 'paciente editado', 'status': 200})
    except:
        return jsonify({
            'message': 'fallo al editar un paciente',
            'status': 500
        })

    finally:
        con.close()
        print('coneccion cerrada')
Esempio n. 25
0
def update_humidifier(room_id):
    # 토큰의 uid와 입력된 uid가 일지하는지 검사한다.
    try:
        auth_token = request.headers['Authorization']
        decoded = session_token.decode(auth_token)
        if decoded == False:
            return invalid_session()
        elif decoded['exp'] < int(time.time()):
            return session_exp()
    except KeyError:
        return invalid_session()
    except jwt.exceptions.DecodeError:
        return invalid_session()

    connection = db.get_connection()

    try:
        ip = room_model.get_room_ip(room_id, connection)
        url = SENSOR_URL.format(ip, 'humidifier')
        headers = {'content-type': 'application/json'}
        data = request.json
        payload = {
            "status": data["status"]
        }
        response = requests.request("PUT", url, data=json.dumps(payload), headers=headers)

        if (response.status_code == 200 and data["status"] == 'ON'):
            print ('ON')
        else:
            print ('OFF')

    except IntegrityError as e:
        return db_error(e)
    finally:
        connection.close()

    if (response.status_code == 200):
        return success('OK')
    elif (response.status_code == 400):
        return invalid_param()
Esempio n. 26
0
def get_users():
    # 토큰의 uid와 입력된 uid가 일지하는지 검사한다.
    try:
        auth_token = request.headers['Authorization']
        decoded = session_token.decode(auth_token)
        if decoded == False:
            return invalid_session()
        elif decoded['exp'] < int(time.time()):
            return session_exp()
    except KeyError:
        return invalid_session()
    except jwt.exceptions.DecodeError:
        return invalid_session()

    connection = db.get_connection()
    try:
        user_list = user_model.get_users(connection)
    except IntegrityError as e:
        return db_error(e)
    finally:
        connection.close()

    return success(user_list)
Esempio n. 27
0
def get_measurements(room_id):
    # 토큰의 uid와 입력된 uid가 일지하는지 검사한다.
    try:
        auth_token = request.headers['Authorization']
        decoded = session_token.decode(auth_token)
        if decoded == False:
            return invalid_session()
        elif decoded['exp'] < int(time.time()):
            return session_exp()
    except KeyError:
        return invalid_session()
    except jwt.exceptions.DecodeError:
        return invalid_session()

    data = request.json

    try:
        start = request.args.get('start')
    except KeyError:
        start = int(time.time()) - (60 * 60 * 24)

    try:
        end = request.args.get('end')
    except KeyError:
        end = start + (60 * 60 * 24)

    connection = db.get_connection()
    try:
        user_list = measurement_model.get_measurements(room_id, start, end,
                                                       connection)
    except IntegrityError as e:
        return db_error(e)
    finally:
        connection.close()

    return success(user_list)
Esempio n. 28
0
def list():
    print(db.get_connection())
    return {'message': 'Este es el servicio que lista de equipos'}, 200
Esempio n. 29
0
def list():
    print(db.get_connection())
    return "EServicio para listar los equipos"
Esempio n. 30
0
def list():
    print(db.get_connection())
    return "Este es el servicio que lista de pacientes"