Quintanda/Messages-Database
0
1from fastapi import FastAPI, HTTPException2from pydantic import BaseModel3from pymongo import MongoClient4from datetime import datetime5from bson import ObjectId6 7# Conexão com o MongoDB Atlas8MONGO_URI = "mongodb+srv://marcelo:marcelo1234@mycluster.4kvwvjs.mongodb.net/?retryWrites=true&w=majority&appName=myCluster" # Substitua com sua URI do MongoDB Atlas9client = MongoClient(MONGO_URI)10db = client["chat_database"] # Nome do banco de dados11messages_collection = db["messages"] # Nome da coleção12 13# Inicialização da API14app = FastAPI()15 16# Modelo para a entrada de mensagens17class Message(BaseModel):18 chat_id: str19 user: str20 message: str21 22@app.post("/messages")23def store_message(message: Message):24 """25 Armazena uma mensagem no MongoDB para um chat específico.26 """27 message_data = {28 "chat_id": message.chat_id,29 "user": message.user,30 "message": message.message,31 "timestamp": datetime.utcnow()32 }33 result = messages_collection.insert_one(message_data)34 if result.inserted_id:35 return {"message": "Mensagem armazenada com sucesso!", "id": str(result.inserted_id)}36 else:37 raise HTTPException(status_code=500, detail="Erro ao armazenar a mensagem")38 39@app.get("/messages/{chat_id}")40def get_messages(chat_id: str):41 """42 Retorna o histórico de mensagens de um chat específico.43 """44 messages = []45 for msg in messages_collection.find({"chat_id": chat_id}).sort("timestamp", 1):46 messages.append({47 "id": str(msg["_id"]),48 "user": msg["user"],49 "message": msg["message"],50 "timestamp": msg["timestamp"]51 })52 return {"chat_id": chat_id, "messages": messages}53 54# Endpoint para teste de conexão55@app.get("/")56def home():57 return {"message": "API de histórico de mensagens está funcionando!"}58 