thibautmodrin commited on
Commit
9552008
·
1 Parent(s): 7fc8c5c
Files changed (1) hide show
  1. main.py +19 -11
main.py CHANGED
@@ -39,6 +39,7 @@ app.add_middleware(
39
  class TraitementDB(Base):
40
  __tablename__ = "traitements"
41
  id = Column(Integer, primary_key=True, index=True)
 
42
  date_traitement = Column(TIMESTAMP)
43
  type_traitement = Column(String)
44
  produit_utilise = Column(String)
@@ -55,9 +56,6 @@ def ensure_table_exists():
55
  else:
56
  print("✅ Table 'traitements' déjà présente.")
57
 
58
- # # Appel de la fonction pour garantir la présence de la table
59
- # ensure_table_exists()
60
-
61
  # Dépendance à injecter dans les routes
62
  def get_db():
63
  db = SessionLocal()
@@ -69,6 +67,7 @@ def get_db():
69
  # Schéma de réponse
70
  class TraitementResponse(BaseModel):
71
  id: int
 
72
  date_traitement: datetime
73
  type_traitement: str
74
  produit_utilise: str
@@ -77,10 +76,11 @@ class TraitementResponse(BaseModel):
77
  is_deleted: int
78
 
79
  class Config:
80
- from_attributes = True # ✅ Pydantic v2+ (remplace orm_mode = True)
81
 
82
  # Schéma de création
83
  class TraitementCreate(BaseModel):
 
84
  date_traitement: str # ISO format attendu côté client
85
  type_traitement: str
86
  produit_utilise: str
@@ -96,13 +96,18 @@ def convert_db_to_pydantic(db_obj):
96
  return TraitementResponse.from_orm(db_obj)
97
 
98
  @app.get("/traitements", response_model=List[TraitementResponse])
99
- def get_traitements(db: Session = Depends(get_db)):
100
- db_traitements = db.query(TraitementDB).filter(TraitementDB.is_deleted == 0).all()
 
 
 
101
  return [convert_db_to_pydantic(t) for t in db_traitements]
102
 
103
  @app.get("/traitements/all", response_model=List[TraitementResponse])
104
- def get_all_traitements(db: Session = Depends(get_db)):
105
- db_traitements = db.query(TraitementDB).all()
 
 
106
  return [convert_db_to_pydantic(t) for t in db_traitements]
107
 
108
  @app.post("/traitements", response_model=TraitementResponse)
@@ -124,10 +129,13 @@ def create_traitement(traitement: TraitementCreate, db: Session = Depends(get_db
124
  return convert_db_to_pydantic(db_traitement)
125
 
126
  @app.patch("/traitements/{treatment_id}/soft-delete", response_model=TraitementResponse)
127
- def soft_delete_treatment(treatment_id: int, db: Session = Depends(get_db)):
128
- traitement = db.query(TraitementDB).filter(TraitementDB.id == treatment_id).first()
 
 
 
129
  if not traitement:
130
  raise HTTPException(status_code=404, detail="Traitement introuvable")
131
  traitement.is_deleted = 1
132
  db.commit()
133
- return convert_db_to_pydantic(traitement)
 
39
  class TraitementDB(Base):
40
  __tablename__ = "traitements"
41
  id = Column(Integer, primary_key=True, index=True)
42
+ uid = Column(String, nullable=False) # Ajout du champ UID
43
  date_traitement = Column(TIMESTAMP)
44
  type_traitement = Column(String)
45
  produit_utilise = Column(String)
 
56
  else:
57
  print("✅ Table 'traitements' déjà présente.")
58
 
 
 
 
59
  # Dépendance à injecter dans les routes
60
  def get_db():
61
  db = SessionLocal()
 
67
  # Schéma de réponse
68
  class TraitementResponse(BaseModel):
69
  id: int
70
+ uid: str # Ajout du champ UID
71
  date_traitement: datetime
72
  type_traitement: str
73
  produit_utilise: str
 
76
  is_deleted: int
77
 
78
  class Config:
79
+ from_attributes = True
80
 
81
  # Schéma de création
82
  class TraitementCreate(BaseModel):
83
+ uid: str # Ajout du champ UID
84
  date_traitement: str # ISO format attendu côté client
85
  type_traitement: str
86
  produit_utilise: str
 
96
  return TraitementResponse.from_orm(db_obj)
97
 
98
  @app.get("/traitements", response_model=List[TraitementResponse])
99
+ def get_traitements(uid: str, db: Session = Depends(get_db)):
100
+ db_traitements = db.query(TraitementDB).filter(
101
+ TraitementDB.is_deleted == 0,
102
+ TraitementDB.uid == uid
103
+ ).all()
104
  return [convert_db_to_pydantic(t) for t in db_traitements]
105
 
106
  @app.get("/traitements/all", response_model=List[TraitementResponse])
107
+ def get_all_traitements(uid: str, db: Session = Depends(get_db)):
108
+ db_traitements = db.query(TraitementDB).filter(
109
+ TraitementDB.uid == uid
110
+ ).all()
111
  return [convert_db_to_pydantic(t) for t in db_traitements]
112
 
113
  @app.post("/traitements", response_model=TraitementResponse)
 
129
  return convert_db_to_pydantic(db_traitement)
130
 
131
  @app.patch("/traitements/{treatment_id}/soft-delete", response_model=TraitementResponse)
132
+ def soft_delete_treatment(treatment_id: int, uid: str, db: Session = Depends(get_db)):
133
+ traitement = db.query(TraitementDB).filter(
134
+ TraitementDB.id == treatment_id,
135
+ TraitementDB.uid == uid
136
+ ).first()
137
  if not traitement:
138
  raise HTTPException(status_code=404, detail="Traitement introuvable")
139
  traitement.is_deleted = 1
140
  db.commit()
141
+ return convert_db_to_pydantic(traitement)