Ejemplo n.º 1
0
def create_item(name, price, quantity):
    global items
    result = list(filter(lambda x: x['name'] == name, items))
    if result:
        raise m_ex.ItemAlreadyStored(f'{name} already stored!')
    else:
        items.append({'name': name, 'price': price, 'quantity': quantity})
Ejemplo n.º 2
0
 def create_person(id, name, age):
     global persons
     results = list(filter(lambda x: x['id'] == id, persons))
     if results:
         raise mvc_exc.ItemAlreadyStored('"{}" already stored!'.format(id))
     else:
         persons.append({'id': id, 'name': name, 'age': age})
Ejemplo n.º 3
0
def create_item(name, price, quantity):
    global items
    results = list(filter(lambda x: x['name'] == name, items))
    if results:
        raise mvc_exc.ItemAlreadyStored(f'Item with name: "{name}"')
    else:
        items.append({'name': name, 'price': price, 'quantity': quantity})
Ejemplo n.º 4
0
def create_item(name, price, quantity):
    global items
    results = list(filter(lambda x: x['name'] == name, items))
    if results:
        raise mvc_exc.ItemAlreadyStored('"{}" already stored!'.format(name))
    else:
        items.append({'name': name, 'price': price, 'quantity': quantity})
Ejemplo n.º 5
0
def create_item(name, price, quantity):
    global items
    results = list(filter(lambda x: x["name"] == name, items))
    if results:
        raise mvc_exc.ItemAlreadyStored('"{}" already stored!'.format(name))

    else:
        items.append({"name": name, "price": price, "quantity": quantity})
Ejemplo n.º 6
0
def read_item(name):
    global items
    my_items = list(filter(lambda x: x['name'] == name, items))
    if my_items:
        return my_items[0]
    else:
        raise mvc_exc.ItemAlreadyStored(
            'Can\'t read "{}" because it\'s not stored'.format(name))
Ejemplo n.º 7
0
def update_item(name, price, quantity):
    global items
    id_xs_items = list(
        filter(lambda i_x: i_x[1]['name'] == name, enumerate(items)))
    if id_xs_items:
        i, item_to_update = id_xs_items[0][0], id_xs_items[0][1]
        items[i] = {'name': name, 'price': price, 'quantity': quality}
    else:
        raise mvc_exc.ItemAlreadyStored(
            'Can\'t update "{}" because it\'s not stored'.format(name))
Ejemplo n.º 8
0
def delete_item(name):
    global items
    id_xs_items = list(
        filter(lambda i_x: i_x[1]['name'] == name, enumerate(items)))
    if id_xs_items:
        i, item_to_update = id_xs_items[0][0], id_xs_items[0][1]
        del items[i]
    else:
        raise mvc_exc.ItemAlreadyStored(
            'Can\'t update "{}" because it\'s not stored'.format(name))
Ejemplo n.º 9
0
def insert_one(conn, name, price, quantity, table_name):
    table_name = scrub(table_name)
    sql = "INSERT INTO {} ('name', 'price', 'quantity') VALUES (?, ?, ?)"\
        .format(table_name)
    try:
        conn.execute(sql, (name, price, quantity))
        conn.commit()
    except IntegrityError as e:
        raise mvc_exc.ItemAlreadyStored(
            '{}: "{}" already stored in table "{}"'.format(e, name, table_name))
Ejemplo n.º 10
0
def insert_ingredient(conn, ingredient):
    sql = "INSERT OR IGNORE INTO Ingredients ('name', 'kcal', 'koolh', 'prot', 'vet', 'vez') " \
          "VALUES (?, ?, ?, ?, ?, ?)"
    n = ingredient.get_nutr()
    entry = (ingredient.name, n[0], n[1], n[2], n[3], n[4])
    try:
        conn.execute(sql, entry)
        conn.commit()
    except IntegrityError as e:
        raise mvc_exc.ItemAlreadyStored(
            '{}: "{}" already stored in table Ingredients'.format(e, ingredient.name))
Ejemplo n.º 11
0
def insert_meal(conn, meal_name):
    meal = Meal(meal_name)
    if not is_present(conn, meal, "Meals"):
        # Insert meal in database
        sql = "INSERT OR IGNORE INTO Meals ('name', 'kcal', 'koolh', 'prot', 'vet', 'vez') VALUES (?, ?, ?, ?, ?, ?)"
        nutr = meal.get_nutr()
        try:
            conn.execute(sql, (meal.name, nutr[0], nutr[1], nutr[2], nutr[3], nutr[4]))
            conn.commit()
        except IntegrityError as e:
            raise mvc_exc.ItemAlreadyStored(
                '{}: "{}" already stored in table Meals'.format(e, meal.name))
Ejemplo n.º 12
0
def create_item(table_name, *value):
    keys = get_all_keys(table_name)

    i = 0
    for key in keys:
        d = getattr(table_name, key).type
        if type(d) is Integer:
            d = 0
        elif type(d) is Boolean:
            d = False
        elif type(d) is Date:
            d = DT.datetime.strptime('2020,1,1', '%Y,%m,%d').date()
        elif type(d) is String:
            d = 'str'
        if type(d) != type(value[i]):
            raise mvc_exc.ValueTypeError(f"Value: <{value[i]}> must be the same type as key!")
        i = i + 1

    with session_scope() as s:
        check_id = {keys[0]: value[0]}
        check = s.query(table_name).filter_by(**check_id).all()

        if not check:
            check_items = {keys[i]: value[i] for i in range(1, len(keys))}
        else:
            raise mvc_exc.ItemAlreadyStored(
                f"Can't create item with {keys[0]} = {value[0]} because it is already exists")

        check = s.query(table_name).filter_by(**check_items).all()
        if not check:
            create_it = {}
            i = 0
            for key in keys:
                create_it[key] = value[i]
                i = i + 1
        else:
            raise mvc_exc.ItemAlreadyStored(f"Can't create item because all data for its id {keys[0]} = {value[0]} "
                                            f"already exists")

        s.add(table_name(**create_it))
Ejemplo n.º 13
0
def insert_one(conn, name, price, quantity, table_name):
    items = [{'name': name, 'price': price, 'quantity': quantity}]
    try:
        table_name = scrub(table_name)
        sql = "INSERT INTO {} (rowid, name, price, quantity) VALUES (%s, %s, %s, %s)" \
        .format(table_name)
        entries_to_insert = verify_if_item_present(conn, items, table_name)
        get_cursor(conn).executemany(sql, entries_to_insert)
        conn.commit()
    except mysql_error as err:
        raise mvc_exc.ItemAlreadyStored(
            '{}: "{}" already stored in table "{}"'.format(
                err, name, table_name))
Ejemplo n.º 14
0
def insert_day(conn, day_name):
    # Create Day object
    day = Day(day_name)
    if not is_present(conn, day, "Days"):
        # Insert day in database
        sql = "INSERT OR IGNORE INTO Days ('name', 'kcal', 'koolh', 'prot', 'vet', 'vez') VALUES (?, ?, ?, ?, ?, ?)"
        nutr = day.get_nutr()
        try:
            conn.execute(sql, (day.name, nutr[0], nutr[1], nutr[2], nutr[3], nutr[4]))
            conn.commit()
        except IntegrityError as e:
            raise mvc_exc.ItemAlreadyStored(
                '{}: "{}" already stored in table Days'.format(e, day.name))
Ejemplo n.º 15
0
def verify_if_item_present(conn, items, table_name):
    entries = list()
    items_present = dict()
    for product in items:
        items_present[product['name']] = \
            False if not select_one(conn, product['name'], table_name, verification=True) \
            else True
    for x in items:
        if x['name'] in items_present:
            if not items_present[x['name']]:
                entries.append((0, x['name'], x['price'], x['quantity']))
            else:
                raise mvc_exc.ItemAlreadyStored(
                    'Product "{}" is already stored in table "{}"'.format(
                        x['name'], table_name))
    return entries
def create_item(name):
    global items
    if (typeof == 'autores'):
        results = list(filter(lambda x: x['name'] == name, items))
    else:
        results = list(filter(lambda x: x['title'] == name, items))

    if results:
        raise mvc_exc.ItemAlreadyStored('"{}" ya almacenado!'.format(name))
    else:

        if (typeof == 'autores'):
            nuevo = {
                'authorid' : len(items)+1,
                'name' : name,
                'workcount' : 0,
                'fan_count' : 0,
                'image_url' : 0,
                'about' : input("Bio: "),
                'country' : input("Pais: ")
            }
        else:
            nuevo = {
                'id' : len(itemsAllBooks)+1,
                'title' : name,
                'authors' : input("Ingresa los autores separados por comas: ")
            }
            itemsAllBooks.append(nuevo)

        items.append(nuevo)
        try:
            with open(pathFile[typeof],'w') as filehandle: #a -> append
                if (typeof == 'autores'):
                    json.dump(items,filehandle,indent=2, separators=(',', ': '))
                else:
                    json.dump(itemsAllBooks,filehandle,indent=2, separators=(',', ': '))
                filehandle.close()
        except Exception as Error:
            print("Error leyendo archivo")
Ejemplo n.º 17
0
def insert_one(conn, name, price, quantity, table_name):
    """Insert a single item in a table.

    Parameters
    ----------
    name : str
    price : float
    quantity : int
    table_name : dataset.persistence.table.Table
    conn : dataset.persistence.database.Database

    Raises
    ------
    mvc_exc.ItemAlreadyStored: if the record is already stored in the table.
    """
    table = conn.load_table(table_name)
    try:
        table.insert(dict(name=name, price=price, quantity=quantity))
    except IntegrityError as e:
        raise mvc_exc.ItemAlreadyStored(
            '"{}" already stored in table "{}".\nOriginal Exception raised: {}'
            .format(name, table.table.name, e))
Ejemplo n.º 18
0
def create_item(conn, table_name, *value):
    cur = conn.cursor()

    cur.execute(
        f"SELECT column_name, data_type FROM information_schema.columns "
        f"WHERE table_schema='public' AND table_name = '{table_name}'")
    data_type = cur.fetchall()

    type_dat = []
    for item in data_type:
        type_dat += [item[1]]

    j = 0
    for item in type_dat:
        if type_dat[j] == 'integer':
            type_dat[j] = 1
        if type_dat[j] == 'boolean':
            type_dat[j] = False
        if type_dat[j] == 'date':
            type_dat[j] = DT.datetime.strptime('2020,1,1', '%Y,%m,%d').date()

        if type(type_dat[j]) != type(value[j]):
            raise mvc_exc.ValueTypeError(
                f"Type of value '{value[j]}' not the same as type of key name!"
            )
        j = j + 1

    cur.execute(f"SELECT * FROM {table_name}")
    keys = [description[0] for description in cur.description]

    cur.execute(f"SELECT * FROM {table_name} WHERE {keys[0]} = {value[0]}")
    if cur.rowcount != 0:
        raise mvc_exc.ItemAlreadyStored(f'ID: "{value[0]}" already stored!')

    if table_name == 'users':
        cur.execute(
            f"SELECT * FROM {table_name} WHERE {keys[1]} = '{value[1]}' and {keys[2]} = {value[2]}"
        )
        if cur.rowcount != 0:
            raise mvc_exc.ItemAlreadyStored(
                f'Item with that value "{value[1]}" "{value[2]}" already stored!'
            )
    elif table_name == ('email' or 'folders'):
        cur.execute(
            f"SELECT * FROM {table_name} WHERE {keys[1]} = {value[1]} and {keys[2]} = '{value[2]}' "
            f"and {keys[3]} = '{value[3]}'")
        if cur.rowcount != 0:
            raise mvc_exc.ItemAlreadyStored(
                f'Item with that value "{value[1]}" "{value[2]}" "{value[3]}"'
                f' already stored!')
    elif table_name == 'messages':
        cur.execute(
            f"SELECT * FROM {table_name} WHERE {keys[1]} = {value[1]} and {keys[2]} = '{value[2]}' and "
            f"{keys[3]} = '{value[3]}'")
        if cur.rowcount != 0:
            raise mvc_exc.ItemAlreadyStored(
                f'Item with that value "{value[1]}" "{value[2]}" "{value[3]}"'
                f' already stored!')
    elif table_name == 'folders_messages':
        cur.execute(
            f"SELECT * FROM {table_name} WHERE {keys[0]} = {value[0]} and {keys[1]} = {value[1]}"
        )
        if cur.rowcount != 0:
            raise mvc_exc.ItemAlreadyStored(
                f'Item with that value "{value[0]}" "{value[1]}" '
                f' already stored!')

    if table_name == ('email' or 'folders'):
        cur.execute(
            f"INSERT INTO {table_name} ({keys[0]},{keys[1]},{keys[2]},{keys[3]}) "
            f"VALUES ({value[0]}, {value[1]}, '{value[2]}', '{value[3]}')")
    elif table_name == 'users':
        cur.execute(
            f"INSERT INTO {table_name} ({keys[0]},{keys[1]},{keys[2]}) "
            f"VALUES ({value[0]}, '{value[1]}', {value[2]})")
    elif table_name == 'messages':
        cur.execute(
            f"INSERT INTO {table_name} ({keys[0]},{keys[1]},{keys[2]},{keys[3]}) "
            f"VALUES ({value[0]}, {value[1]}, '{value[2]}', '{value[3]}')")
    elif table_name == 'folders_messages':
        cur.execute(f"INSERT INTO {table_name} ({keys[0]},{keys[1]}) "
                    f"VALUES ({value[0]}, {value[1]})")

    conn.commit()
    cur.close()
Ejemplo n.º 19
0
import mvc_exceptions as mvc_exc


items = list() #global variable where we can keep the data
def create_items(app_items):
    global items
    items = app_items

def create_item(name, price, quantity)
    global items
    results = list(filter(lambda x: x['name'] == name, items))
    if results:
        raise mvc_exc.ItemAlreadyStored('"{}" already stored!'.format(name))
    else:
        item.append({'name': name, 'price': price, 'quantity': quantity})

def create_items(app_items):
    global items
    items = app_items

def read_item(name):
    global items
    my_items = list(filter(lambda x: x['name'] == name, items))
    if my_items:
        return my_items[0]
    else:
        raise mvc_exc.ItemAlreadyStored(
            'Can\'t read "{}" because it\'s not stored'.format(name))

def read_item():
    global items