jcnok commited on
Commit
b4e4cd8
·
verified ·
1 Parent(s): 6cf27bc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -16
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[2]}
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[1], "total_product_revenue": result[2]}
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[1], "total_product_quantity": result[2]}
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[1], "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_top_salesperson_value(ano: int):
124
  with engine.connect() as conn:
125
- stmt = text(f"SELECT * FROM top3_salesperson_value WHERE year = {ano}")
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 get_top_salesperson_quantity(ano: int):
136
  with engine.connect() as conn:
137
- stmt = text(f"SELECT * FROM top3_salesperson_quantity WHERE year = {ano}")
138
  result = conn.execute(stmt).fetchone()
139
  if result:
140
- return {"email": result[1], "salesperson_total_sales": result[2]}
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[1], "sales_per_salesperson": row[2]} for row in results
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[1]), "sales_per_day": row[2]} for row in results
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[1], "sales_month": row[2], "sales_per_month": row[2]}
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 year = {ano}")).fetchall()
206
  if results:
207
- return [{"sales_year": row[1], "sales_per_year": row[2]} for row in results]
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[1], "revenue_month": row[2], "revenue_per_month": row[2]}
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 year = {ano}")).fetchall()
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