Update app.py
Browse files
app.py
CHANGED
|
@@ -30,7 +30,7 @@ async def get_total_revenue(ano: int):
|
|
| 30 |
) # Usa a função text() para executar a consulta
|
| 31 |
result = conn.execute(stmt).fetchone()
|
| 32 |
if result:
|
| 33 |
-
return {"total_revenue": result[
|
| 34 |
else:
|
| 35 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
| 36 |
|
|
@@ -90,7 +90,7 @@ async def get_best_selling_product_value(ano: int):
|
|
| 90 |
stmt = text(f"SELECT * FROM best_selling_product_value WHERE year = {ano}")
|
| 91 |
result = conn.execute(stmt).fetchone()
|
| 92 |
if result:
|
| 93 |
-
return {"produto": result[
|
| 94 |
else:
|
| 95 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
| 96 |
|
|
@@ -102,7 +102,7 @@ async def get_best_selling_product_quantity(ano: int):
|
|
| 102 |
stmt = text(f"SELECT * FROM best_selling_product_quantity WHERE year = {ano}")
|
| 103 |
result = conn.execute(stmt).fetchone()
|
| 104 |
if result:
|
| 105 |
-
return {"produto": result[
|
| 106 |
else:
|
| 107 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
| 108 |
|
|
@@ -113,16 +113,16 @@ async def get_product_revenue(ano: int):
|
|
| 113 |
with engine.connect() as conn:
|
| 114 |
results = conn.execute(text(f"SELECT * FROM product_revenue WHERE year = {ano}")).fetchall()
|
| 115 |
if results:
|
| 116 |
-
return [{"produto": row[
|
| 117 |
else:
|
| 118 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
| 119 |
|
| 120 |
|
| 121 |
# Endpoint para obter o Vendedor com Mais Vendas (em Valor)
|
| 122 |
@app.get("/top3_salesperson_value/{ano}") # Adiciona o parâmetro 'ano'
|
| 123 |
-
async def
|
| 124 |
with engine.connect() as conn:
|
| 125 |
-
stmt = text(f"SELECT * FROM
|
| 126 |
result = conn.execute(stmt).fetchone()
|
| 127 |
if result:
|
| 128 |
return {"email": result[1], "salesperson_total_revenue": result[2]}
|
|
@@ -132,12 +132,12 @@ async def get_top_salesperson_value(ano: int):
|
|
| 132 |
|
| 133 |
# Endpoint para obter o Vendedor com Mais Vendas (em Quantidade)
|
| 134 |
@app.get("/top3_salesperson_quantity/{ano}") # Adiciona o parâmetro 'ano'
|
| 135 |
-
async def
|
| 136 |
with engine.connect() as conn:
|
| 137 |
-
stmt = text(f"SELECT * FROM
|
| 138 |
result = conn.execute(stmt).fetchone()
|
| 139 |
if result:
|
| 140 |
-
return {"email": result[
|
| 141 |
else:
|
| 142 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
| 143 |
|
|
@@ -149,7 +149,7 @@ async def get_sales_per_salesperson(ano: int):
|
|
| 149 |
results = conn.execute(text(f"SELECT * FROM sales_per_salesperson WHERE year = {ano}")).fetchall()
|
| 150 |
if results:
|
| 151 |
return [
|
| 152 |
-
{"email": row[
|
| 153 |
]
|
| 154 |
else:
|
| 155 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
|
@@ -177,7 +177,7 @@ async def get_sales_per_day(ano: int):
|
|
| 177 |
results = conn.execute(text(f"SELECT * FROM sales_per_day WHERE year = {ano}")).fetchall()
|
| 178 |
if results:
|
| 179 |
return [
|
| 180 |
-
{"sales_date": str(row[
|
| 181 |
]
|
| 182 |
else:
|
| 183 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
|
@@ -190,7 +190,7 @@ async def get_sales_per_month(ano: int):
|
|
| 190 |
results = conn.execute(text(f"SELECT * FROM sales_per_month WHERE year = {ano}")).fetchall()
|
| 191 |
if results:
|
| 192 |
return [
|
| 193 |
-
{"sales_year": row[
|
| 194 |
for row in results
|
| 195 |
]
|
| 196 |
|
|
@@ -202,9 +202,9 @@ async def get_sales_per_month(ano: int):
|
|
| 202 |
@app.get("/sales_per_year/{ano}") # Adiciona o parâmetro 'ano'
|
| 203 |
async def get_sales_per_year(ano: int):
|
| 204 |
with engine.connect() as conn:
|
| 205 |
-
results = conn.execute(text(f"SELECT * FROM sales_per_year WHERE
|
| 206 |
if results:
|
| 207 |
-
return [{"sales_year": row[
|
| 208 |
else:
|
| 209 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
| 210 |
|
|
@@ -230,7 +230,7 @@ async def get_revenue_per_month(ano: int):
|
|
| 230 |
results = conn.execute(text(f"SELECT * FROM revenue_per_month WHERE year = {ano}")).fetchall()
|
| 231 |
if results:
|
| 232 |
return [
|
| 233 |
-
{"revenue_year": row[
|
| 234 |
for row in results
|
| 235 |
]
|
| 236 |
else:
|
|
@@ -241,7 +241,7 @@ async def get_revenue_per_month(ano: int):
|
|
| 241 |
@app.get("/revenue_per_year/{ano}") # Adiciona o parâmetro 'ano'
|
| 242 |
async def get_revenue_per_year(ano: int):
|
| 243 |
with engine.connect() as conn:
|
| 244 |
-
results = conn.execute(text(f"SELECT * FROM revenue_per_year WHERE
|
| 245 |
if results:
|
| 246 |
return [
|
| 247 |
{"revenue_year": row[1], "revenue_per_year": row[2]} for row in results
|
|
|
|
| 30 |
) # Usa a função text() para executar a consulta
|
| 31 |
result = conn.execute(stmt).fetchone()
|
| 32 |
if result:
|
| 33 |
+
return {"total_revenue": result[1]}
|
| 34 |
else:
|
| 35 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
| 36 |
|
|
|
|
| 90 |
stmt = text(f"SELECT * FROM best_selling_product_value WHERE year = {ano}")
|
| 91 |
result = conn.execute(stmt).fetchone()
|
| 92 |
if result:
|
| 93 |
+
return {"produto": result[0], "total_product_revenue": result[2]}
|
| 94 |
else:
|
| 95 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
| 96 |
|
|
|
|
| 102 |
stmt = text(f"SELECT * FROM best_selling_product_quantity WHERE year = {ano}")
|
| 103 |
result = conn.execute(stmt).fetchone()
|
| 104 |
if result:
|
| 105 |
+
return {"produto": result[0], "total_product_quantity": result[2]}
|
| 106 |
else:
|
| 107 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
| 108 |
|
|
|
|
| 113 |
with engine.connect() as conn:
|
| 114 |
results = conn.execute(text(f"SELECT * FROM product_revenue WHERE year = {ano}")).fetchall()
|
| 115 |
if results:
|
| 116 |
+
return [{"produto": row[0], "product_revenue": row[2]} for row in results]
|
| 117 |
else:
|
| 118 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
| 119 |
|
| 120 |
|
| 121 |
# Endpoint para obter o Vendedor com Mais Vendas (em Valor)
|
| 122 |
@app.get("/top3_salesperson_value/{ano}") # Adiciona o parâmetro 'ano'
|
| 123 |
+
async def get_top3_salesperson_value(ano: int):
|
| 124 |
with engine.connect() as conn:
|
| 125 |
+
stmt = text(f"SELECT * FROM revenue_per_salesperson WHERE year = {ano} Order by revenue_per_salesperson Desc LIMIT 3")
|
| 126 |
result = conn.execute(stmt).fetchone()
|
| 127 |
if result:
|
| 128 |
return {"email": result[1], "salesperson_total_revenue": result[2]}
|
|
|
|
| 132 |
|
| 133 |
# Endpoint para obter o Vendedor com Mais Vendas (em Quantidade)
|
| 134 |
@app.get("/top3_salesperson_quantity/{ano}") # Adiciona o parâmetro 'ano'
|
| 135 |
+
async def get_top3_salesperson_quantity(ano: int):
|
| 136 |
with engine.connect() as conn:
|
| 137 |
+
stmt = text(f"SELECT * FROM sales_per_salesperson WHERE year = {ano} Order by sales_per_salesperson Desc LIMIT 3")
|
| 138 |
result = conn.execute(stmt).fetchone()
|
| 139 |
if result:
|
| 140 |
+
return {"email": result[0], "salesperson_total_sales": result[2]}
|
| 141 |
else:
|
| 142 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
| 143 |
|
|
|
|
| 149 |
results = conn.execute(text(f"SELECT * FROM sales_per_salesperson WHERE year = {ano}")).fetchall()
|
| 150 |
if results:
|
| 151 |
return [
|
| 152 |
+
{"email": row[0], "sales_per_salesperson": row[2]} for row in results
|
| 153 |
]
|
| 154 |
else:
|
| 155 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
|
|
|
| 177 |
results = conn.execute(text(f"SELECT * FROM sales_per_day WHERE year = {ano}")).fetchall()
|
| 178 |
if results:
|
| 179 |
return [
|
| 180 |
+
{"sales_date": str(row[0]), "sales_per_day": row[2]} for row in results
|
| 181 |
]
|
| 182 |
else:
|
| 183 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
|
|
|
| 190 |
results = conn.execute(text(f"SELECT * FROM sales_per_month WHERE year = {ano}")).fetchall()
|
| 191 |
if results:
|
| 192 |
return [
|
| 193 |
+
{"sales_year": row[0], "sales_month": row[1], "sales_per_month": row[2]}
|
| 194 |
for row in results
|
| 195 |
]
|
| 196 |
|
|
|
|
| 202 |
@app.get("/sales_per_year/{ano}") # Adiciona o parâmetro 'ano'
|
| 203 |
async def get_sales_per_year(ano: int):
|
| 204 |
with engine.connect() as conn:
|
| 205 |
+
results = conn.execute(text(f"SELECT * FROM sales_per_year WHERE sales_year = {ano}")).fetchall()
|
| 206 |
if results:
|
| 207 |
+
return [{"sales_year": row[0], "sales_per_year": row[1]} for row in results]
|
| 208 |
else:
|
| 209 |
raise HTTPException(status_code=404, detail="KPI não encontrada")
|
| 210 |
|
|
|
|
| 230 |
results = conn.execute(text(f"SELECT * FROM revenue_per_month WHERE year = {ano}")).fetchall()
|
| 231 |
if results:
|
| 232 |
return [
|
| 233 |
+
{"revenue_year": row[0], "revenue_month": row[1], "revenue_per_month": row[2]}
|
| 234 |
for row in results
|
| 235 |
]
|
| 236 |
else:
|
|
|
|
| 241 |
@app.get("/revenue_per_year/{ano}") # Adiciona o parâmetro 'ano'
|
| 242 |
async def get_revenue_per_year(ano: int):
|
| 243 |
with engine.connect() as conn:
|
| 244 |
+
results = conn.execute(text(f"SELECT * FROM revenue_per_year WHERE revenue_year = {ano}")).fetchall()
|
| 245 |
if results:
|
| 246 |
return [
|
| 247 |
{"revenue_year": row[1], "revenue_per_year": row[2]} for row in results
|