habulaj commited on
Commit
52c69e0
·
verified ·
1 Parent(s): cc79ea9

Update routers/db.py

Browse files
Files changed (1) hide show
  1. routers/db.py +1 -58
routers/db.py CHANGED
@@ -1,58 +1 @@
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,
20
- sqlalchemy.Column("url_instagram", sqlalchemy.Text),
21
- sqlalchemy.Column("url_web", sqlalchemy.Text),
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
43
- val = value.strip()
44
- if val == "" or val.lower() == "null":
45
- return None
46
- return val
47
-
48
- query = igbio.insert().values(
49
- url_instagram=clean_value(item.url_instagram),
50
- url_web=clean_value(item.url_web),
51
- image=clean_value(item.image),
52
- )
53
-
54
- try:
55
- record_id = await database.execute(query)
56
- return {"success": True, "id": record_id}
57
- except Exception as e:
58
- raise HTTPException(status_code=500, detail=f"Erro ao inserir no banco: {e}")
 
1
+ #