habulaj commited on
Commit
cc79ea9
·
verified ·
1 Parent(s): 9d090f6

Update routers/db.py

Browse files
Files changed (1) hide show
  1. routers/db.py +5 -15
routers/db.py CHANGED
@@ -1,22 +1,19 @@
1
  # db.py
2
- from fastapi import FastAPI, HTTPException
3
  from pydantic import BaseModel
4
  from typing import Optional
5
  import databases
6
  import sqlalchemy
7
  import os
8
 
9
- # 🌐 Configuração da conexão com MySQL (asyncmy)
10
  DATABASE_URL = os.getenv(
11
  "DATABASE_URL",
12
  "mysql+asyncmy://ameddesc_recurve:Stylischer0740@199.167.144.250/ameddesc_wp340?charset=utf8mb4"
13
  )
14
 
15
- # ⚡ Banco assíncrono com pool de conexões
16
  database = databases.Database(DATABASE_URL, min_size=5, max_size=20)
17
  metadata = sqlalchemy.MetaData()
18
 
19
- # 🏗️ Tabela igbio
20
  igbio = sqlalchemy.Table(
21
  "igbio",
22
  metadata,
@@ -25,28 +22,21 @@ igbio = sqlalchemy.Table(
25
  sqlalchemy.Column("image", sqlalchemy.Text),
26
  )
27
 
28
- # 🚀 FastAPI
29
- app = FastAPI(title="IGBio API")
30
 
31
- # 📦 Modelo de request
32
  class IGPost(BaseModel):
33
  url_instagram: Optional[str] = None
34
  url_web: Optional[str] = None
35
  image: Optional[str] = None
36
 
37
- # 🔗 Conectar / desconectar banco
38
- @app.on_event("startup")
39
- async def startup():
40
  await database.connect()
41
 
42
- @app.on_event("shutdown")
43
- async def shutdown():
44
  await database.disconnect()
45
 
46
- # 📝 POST endpoint para inserir dados na tabela igbio
47
- @app.post("/igbio")
48
  async def add_igbio(item: IGPost):
49
- # Validação simples para strings "null" ou vazias
50
  def clean_value(value: Optional[str]) -> Optional[str]:
51
  if value is None:
52
  return None
 
1
  # db.py
2
+ from fastapi import APIRouter, HTTPException
3
  from pydantic import BaseModel
4
  from typing import Optional
5
  import databases
6
  import sqlalchemy
7
  import os
8
 
 
9
  DATABASE_URL = os.getenv(
10
  "DATABASE_URL",
11
  "mysql+asyncmy://ameddesc_recurve:Stylischer0740@199.167.144.250/ameddesc_wp340?charset=utf8mb4"
12
  )
13
 
 
14
  database = databases.Database(DATABASE_URL, min_size=5, max_size=20)
15
  metadata = sqlalchemy.MetaData()
16
 
 
17
  igbio = sqlalchemy.Table(
18
  "igbio",
19
  metadata,
 
22
  sqlalchemy.Column("image", sqlalchemy.Text),
23
  )
24
 
25
+ router = APIRouter()
 
26
 
 
27
  class IGPost(BaseModel):
28
  url_instagram: Optional[str] = None
29
  url_web: Optional[str] = None
30
  image: Optional[str] = None
31
 
32
+ async def connect_db():
 
 
33
  await database.connect()
34
 
35
+ async def disconnect_db():
 
36
  await database.disconnect()
37
 
38
+ @router.post("/igbio")
 
39
  async def add_igbio(item: IGPost):
 
40
  def clean_value(value: Optional[str]) -> Optional[str]:
41
  if value is None:
42
  return None