def list_items_cart(cart): list_items = [] with session_scope() as db: for item in db.query(ItemCart).join(Cart).filter(ItemCart.cart_id == cart).all(): list_items.append(item.as_dict()) return list_items
def list_all_users(): users_list = [] with session_scope() as db: for user in db.query(User).all(): users_list.append(user.as_dict()) return users_list pass
def update_user_by_id(id: int, job: str): with session_scope() as db: user = db.query(User).filter(User.id == id).first() user.job = job db.add(user) return "updated" pass
def get_category_by_id(id: int): with session_scope() as db: category = db.query(Category).filter(Category.id == id).first() return Category(id=category.id, name=category.name, description=category.description) pass
def get_products_by_category(category: int): products = [] with session_scope() as db: for product in db.query(Product).filter( Product.category_id == category).all(): products.append(product.as_dict()) return products if products else []
def login(user): with session_scope() as db: encode_password = encrypt(user.password) user = db.query(User).filter( and_(User.username == user.username, User.password == encode_password)).first() user = user.as_dict() return user
def generate_token(email): new_token = random_token() with session_scope() as db: user = db.query(User).filter(User.email == email).first() user.token = new_token user.tte = datetime.now() + timedelta(minutes=5) db.add(user) send_email(new_token, email) return new_token
def insert_product(product, category): with session_scope() as db: p = Product(category_id=category.id, name=product.name, amount=product.amount, price=product.price) db.add(p) return f"{p.name} inserted with success" pass
def generate_token(email): new_token = random_token() with session_scope() as db: user = db.query(User).filter(User.email == email).first() user.token = new_token user.tte = datetime.now() + timedelta(minutes=5) db.add(user) return new_token raise Exception('Error sending email')
def get_product_by_product_id(id: int, item_amount): with session_scope() as db: product = db.query(Product).filter( and_(Product.id == id, Product.amount >= item_amount)).first() if product: return Product(id=product.id, category_id=product.category_id, name=product.name, amount=product.amount, price=product.price) return None
def recover_password(user_recover): with session_scope() as db: user = db.query(User).filter( and_(User.username == user_recover.username, User.token == user_recover.token, User.tte > datetime.now())).first() user.token = None user.tte = None user.password = encrypt(user_recover.new_password) db.add(user) return True pass
def insert_user(user): with session_scope() as db: user_to_insert = User() user_to_insert.name = user.name user_to_insert.age = user.age user_to_insert.email = user.email user_to_insert.job = user.job user_to_insert.cpf = user.cpf user_to_insert.username = user.username user_to_insert.password = encrypt(user.password) user_to_insert.zip_code = user.zip_code user_to_insert.complement = user.complement user_to_insert.neighborhood = user.neighborhood user_to_insert.adress_number = user.adress_number user_to_insert.phone = user.phone db.add(user_to_insert) return user
def insert_item_cart(item, cart, product): with session_scope() as db: item_cart = db.query(ItemCart).join(Cart).filter( and_( ItemCart.product_id == product.id, ItemCart.cart_id == cart.id ) ).first() if item_cart: item_cart.total += product.price * item.amount item_cart.amount += item.amount else: item_cart_total = product.price * item.amount item_cart = ItemCart(product_id=product.id, cart_id=cart.id, value=product.price, amount=item.amount, total=item_cart_total) db.add(item_cart) return pass
def get_product_by_product_id(id: int, item_amount): with session_scope() as db: product = db.query(Product).filter( and_(Product.id == id, Product.amount >= item_amount)).first() if product: return Product(id=product.id, category_id=product.category_id, name=product.name, amount=product.amount, price=product.price) return None # def sum_all_itens_cart(item, cart, product): # with session_scope() as db: # total = product.price * item.amount # item_cart = ItemCart(product_id=item.id, cart_id=cart.id, value=product.value, # amount=item.amount, total=total) # # somar os totais dos itens e dar um update no cart # cart = Cart(id=cart.id, user_id=cart.user_id, total=) # # db.add(p) # return, # pass
def insert_category(category): with session_scope() as db: cat = Category(name=category.name, description=category.description) db.add(cat)
def create_user_cart(user): with session_scope() as db: cart = Cart(user_id=user.id, total=0) db.add(cart) return pass
def delete_user_by_id(id: int): with session_scope() as db: user = db.query(User).filter(User.id == id).first() db.delete(user) return "deleted with success" pass
def get_cart_by_user_id(id: int): with session_scope() as db: cart = db.query(Cart).filter(Cart.user_id == id).first() return Cart(id=cart.id, user_id=cart.user_id, total=cart.total) pass
def set_total_cart_value(id: int, total_item: float): with session_scope() as db: cart = db.query(Cart).filter(Cart.user_id == id).first() cart.total += total_item db.add(cart) return Cart(id=cart.id, user_id=cart.user_id, total=cart.total)
def get_user_by_cpf(cpf: str): with session_scope() as db: user = db.query(User).filter(User.cpf == cpf).first() return User(id=user.id, name=user.name, age=user.age, job=user.job) pass
def get_user_by_id(id: int): with session_scope() as db: user = db.query(User).filter(User.id == id).first() return User(id=user.id, name=user.name, age=user.age, job=user.job) pass