def create_instructor(self, nombre_instructor, direccion_instructor,
                          email_instructor):
        #id_generado = random.randint(100000, 999999)
        #id_usuario = 'U' + str(id_generado)

        print("Size of mongodb instructors")
        id_i = self.get_number_of_instructors() + 1
        final_id = 'I' + str(id_i).zfill(6)
        print(final_id)
        id_instructor = final_id

        mongodb = Gimnasio.Gimnasio()
        instructor_data = {
            'ID_Instructor': id_instructor,
            'Nombre_completo': nombre_instructor,
            'Direccion': direccion_instructor,
            'email': email_instructor,
            'Clases': [{
                'Horario': '-1',
                'Id_clase': -1
            }]
        }
        #user_json = json.loads(instructor_data)
        print(instructor_data)

        result = mongodb.createInstructor(instructor_data)
        return result  #true or false
    def add_user_class(self, id_clase, id_instructor, id_horario,
                       correo_usuario):
        mongodb = Gimnasio.Gimnasio()
        new_class = {
            'Horario': int(id_horario),
            'Instructor': int(id_instructor),
            'Id_clase': str(id_clase)
        }
        clases_usuario_actualizadas = mongodb.addUserClass(
            new_class, correo_usuario)

        return clases_usuario_actualizadas
 def create_class(self, nombre_clase, id_clase, instructores, horarios,
                  ubicacion):
     mongodb = Gimnasio.Gimnasio()
     class_data = {
         'Nombre': nombre_clase,
         '_id': id_clase,
         'Instructores': [instructores],
         'Horarios': [horarios],
         'Ubicacion': ubicacion,
         'Cancelada': 0
     }
     result = mongodb.createClass(class_data)
     return result
    def crear_dieta(self, id_dieta_nueva, nombre_comida, ingredientes,
                    descripcion, correo_cliente):
        mongodb = Gimnasio.Gimnasio()

        dieta = {
            'Id_comida': id_dieta_nueva,
            'Nombre_comida': nombre_comida,
            'Id_Cliente': correo_cliente,
            'Ingredientes': ingredientes,
            'Descripcion': descripcion,
            'Borrada': 0
        }

        result = mongodb.createFood(dieta)

        return result
 def update_users(elf, nombre, direccion, correo, tarjeta, ID, clases):
     mongodb = Gimnasio.Gimnasio()
     user_data = {
         'Nombre_completo': nombre,
         'Direccion': direccion,
         'email': correo,
         'Tarjeta': {
             'CSV': '123',
             'Vencimiento': "datetime.datetime(2022, 2, 2, 6, 0)",
             'No_tarjeta': '5406250000000021',
             'Titular': nombre
         },
         'ID': 'U000002',
         'Clases': [{
             'Horario': 1,
             'Instructor': 0,
             'Id_clase': '0'
         }]
     }
def notes_detail(key):

    mongodb = Gimnasio.Notes()

    if request.method == 'PUT':
        note = request.data
        mongodb.update(key, note)
        return note

    elif request.method == 'DELETE':
        mongodb.delete(key)
        return '', status.HTTP_204_NO_CONTENT

    # request.method == 'GET'
    note = mongodb.findOne(key)
    if not note:
        raise exceptions.NotFound()
    else:
        return note

    return jsonify(key)
def list():
    redis = Accounts.Sessions()

    now = datetime.now()

    timestamp = datetime.timestamp(now)

    #redis.add(timestamp)

    mongodb = Gimnasio.Notes()

    if request.method == 'POST':
        note = request.data

        result = mongodb.create(note)

        # Se adiciono para poder manejar ObjectID
        note['_id'] = str(note['_id'])

        return note, status.HTTP_201_CREATED

    return mongodb.find()
    def create_user(self, nombre, direccion, correo, tarjeta, titular, csv,
                    vencimiento):
        #id_generado = random.randint(100000, 999999)
        #id_usuario = 'U' + str(id_generado)

        print("Size of mongodb")
        id_i = self.get_number_of_users() + 1
        final_id = 'U' + str(id_i).zfill(6)
        print(final_id)
        id_usuario = final_id
        print("END")

        mongodb = Gimnasio.Gimnasio()
        user_data = {
            'Nombre_completo': nombre,
            'Direccion': direccion,
            'email': correo,
            'Tarjeta': {
                'CSV': csv,
                'Vencimiento': vencimiento,
                'No_tarjeta': tarjeta,
                'Titular': titular
            },
            'ID': id_usuario,
            'Clases': [{
                'Horario': -1,
                'Instructor': -1,
                'Id_clase': '-1'
            }]
        }
        #user_json = json.loads(user_data)
        print(user_data)

        data = {}
        data['key'] = 'value'
        json_data = json.dumps(data)
        print(json_data)

        result = mongodb.createUser(user_data)
 def insert_class_schedule(self, id_clase, horarios):
     mongodb = Gimnasio.Gimnasio()
     result = mongodb.insertClassSchedule(id_clase, horarios)
     return result
    def get_one_instructor_email(self, email):
        mongodb = Gimnasio.Gimnasio()

        result = mongodb.findOneInstructorEmail(email)

        return result
    def get_one_instructor_id(self, id):
        mongodb = Gimnasio.Gimnasio()

        result = mongodb.findOneInstructorId(id)

        return result
    def get_all_instructors(self):
        mongodb = Gimnasio.Gimnasio()

        result = mongodb.findInstructors()

        return result
 def delete_class(self, id_clase):
     mongodb = Gimnasio.Gimnasio()
     result = mongodb.deleteClass(id_clase)
     return result
    def get_food_user(self, email):
        mongodb = Gimnasio.Gimnasio()

        result = mongodb.findFoodUser(email)

        return result
    def get_food(self):
        mongodb = Gimnasio.Gimnasio()

        result = mongodb.findFood()

        return result
 def delete_user(self, correo):
     mongodb = Gimnasio.Gimnasio()
     result_mongo = mongodb.deleteUser(correo)
     redis = Accounts.Sessions()
     result_redis = redis.deleteOne(correo)
     return result_mongo
 def get_user(self, email):
     mongodb = Gimnasio.Gimnasio()
     user = mongodb.findOne(email)
     return user
 def get_number_of_instructors(self):
     mongodb = Gimnasio.Gimnasio()
     no_instructors = mongodb.getNumberOfInstructors()
     return no_instructors
 def get_number_of_users(self):
     mongodb = Gimnasio.Gimnasio()
     no_users = mongodb.getNumberOfUsers()
     return no_users
    def get_food_id(self, id):
        mongodb = Gimnasio.Gimnasio()

        result = mongodb.findFoodID(id)

        return result
 def update_user(self):
     mongodb = Gimnasio.Gimnasio()
     p = {}
     no_users = mongodb.updateUser('s', p)
 def get_classes(self):
     mongodb = Gimnasio.Gimnasio()
     classes = mongodb.findClasses()  #CAMBIAR
     return classes
 def insert_class_instructor_schedule(self, id_clase, id_instructor,
                                      horarios):
     mongodb = Gimnasio.Gimnasio()
     result = mongodb.insertClassInstructorSchedule(id_clase, id_instructor,
                                                    horarios)
     return result
 def get_all_users(self):
     mongodb = Gimnasio.Gimnasio()
     users = mongodb.find()
     return users
 def get_one_class(self, id):
     mongodb = Gimnasio.Gimnasio()
     clase = mongodb.findOneClass(id)
     return clase
    def delete_food(self, id_comida):
        mongodb = Gimnasio.Gimnasio()

        result = mongodb.deleteFood(id_comida)
        return result