Esempio n. 1
0
 def get(self):
     statement = "SELECT * FROM produtos"
     cur = psql.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
     cur.execute(statement)
     response = cur.fetchall()
     cur.close()
     return response
Esempio n. 2
0
 def get(self, product_id):
     statement = f"SELECT * FROM produtos WHERE id={product_id}"
     cur = psql.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
     cur.execute(statement)
     response = cur.fetchone()
     cur.close()
     return response
    def get(self, user_id):
        response = {"total": 0, "quantidade_produtos": 0, "items": []}

        cur = psql.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
        cur.execute(f"SELECT nome FROM usuarios WHERE id={user_id}")
        user_name = cur.fetchone()
        if user_name is None:
            abort(400)
        response['id_cliente'] = user_id
        response['nome_cliente'] = user_name['nome']

        cart = redis.get(user_id)
        if cart is None:
            cart = b"[]"
        products = literal_eval(cart.decode("utf-8"))

        for product in products:
            cur.execute(
                f"SELECT * FROM produtos WHERE id={product['produto']}")
            prod = cur.fetchone()
            prod['quantidade'] = product['quantidade']
            prod['sub-total'] = prod['quantidade'] * prod['preco']
            response['items'].append(prod)

        response['quantidade_produtos'] = len(response['items'])
        response['total'] = sum(x['sub-total'] for x in response['items'])

        return response
 def get(self):
     cur = psql.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
     statement = "SELECT id, nome FROM usuarios"
     cur.execute(statement)
     response = cur.fetchall()
     cur.close()
     return response
 def post(self):
     data = parser.parse_args()
     statement = f"INSERT INTO usuarios(nome) VALUES ('{data.get('name')}')"
     cur = psql.cursor()
     cur.execute(statement)
     psql.commit()
     cur.close()
     return {"msg": "Usuário cadastrado com sucesso"}
Esempio n. 6
0
 def post(self):
     data = parser.parse_args()
     statement = f"INSERT INTO produtos(descricao, preco) " \
                 f"VALUES ('{data.get('description')}', {data.get('price')})"
     cur = psql.cursor()
     cur.execute(statement)
     psql.commit()
     cur.close()
     return {"msg": "Produto cadastrado com sucesso"}
    def post(self, user_id):
        # Recebendo dados do corpo da requisição
        data = parser.parse_args()
        item = {
            'produto': data.get('product'),
            'quantidade': data.get('quantity')
        }

        # Verificando se os dados existem no banco de dados
        cur = psql.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
        cur.execute(f"SELECT * FROM usuarios WHERE id={user_id}")
        user = cur.fetchone()
        cur.execute(f"SELECT * FROM produtos WHERE id={data.get('product')}")
        product = cur.fetchone()
        cur.close()

        if user is None or product is None:
            abort(400)

        # Recebendo dados do banco para o usuário informado
        cart = redis.get(user_id)
        if cart is None:
            produtos = [item]
        else:
            produtos = literal_eval(cart.decode("utf-8"))

            # Sobreescreve item caso já exista no carrinho
            existia = False
            for idx in range(len(produtos)):
                produto = produtos[idx]
                if produto.get('produto') == item.get('produto'):
                    produto['quantidade'] = item['quantidade']
                    produtos[idx] = produto
                    existia = True

            if not existia:
                produtos.append(item)

        redis.setex(user_id, timedelta(hours=1), f'{produtos}')

        return {"msg": "Item adicionado com sucesso"}