Complaint / app.py
Hadeeratef91's picture
Update app.py
3f875fc verified
raw
history blame
1.77 kB
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import List
import pandas as pd
app = FastAPI()
class Complaint(BaseModel):
title: str
description: str
status: str = "Open"
complaints_db = []
complaint_id_counter = 1
@app.post("/complaints/")
def create_complaint(complaint: Complaint):
global complaint_id_counter
new_complaint = {
"id": complaint_id_counter,
"title": complaint.title,
"description": complaint.description,
"status": complaint.status
}
complaints_db.append(new_complaint)
complaint_id_counter += 1
return {"message": "✅ تم إرسال الشكوى بنجاح!", "complaint": new_complaint}
@app.get("/complaints/", response_model=List[dict])
def get_complaints():
if not complaints_db:
return []
return complaints_db
@app.put("/complaints/{complaint_id}/status/")
def update_complaint_status(complaint_id: int, new_status: str):
for complaint in complaints_db:
if complaint["id"] == complaint_id:
complaint["status"] = new_status
return {"message": "✅ تم تحديث حالة الشكوى!"}
raise HTTPException(status_code=404, detail="⚠️ الشكوى غير موجودة")
@app.get("/export/")
def export_complaints():
if not complaints_db:
raise HTTPException(status_code=404, detail="⚠️ لا توجد بيانات للتصدير.")
df = pd.DataFrame(complaints_db)
df.to_csv("complaints_export.csv", index=False)
return {"message": "✅ تم تصدير الشكاوى بنجاح! يمكنك تحميل الملف من السيرفر."}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)