Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

55 строки
1.2 KiB
Python

from fastapi import FastAPI
class EventStore:
def __init__(self, max_events_per_user=10):
self.events = {}
self.max_events_per_user = max_events_per_user
def get(self, user_id):
"""
Возвращает события для пользователя
"""
if user_id in self.events:
user_events = self.events[user_id]
else:
user_events = []
return user_events
def put(self, user_id, item_id):
"""
Сохраняет событие для пользователя
"""
user_events = self.get(user_id)
self.events[user_id] = [item_id] + user_events[: self.max_events_per_user]
events_store = EventStore()
app = FastAPI(title="events")
@app.post("/put")
async def put(user_id: int, item_id: int):
"""
Сохраняет событие для user_id, item_id
"""
events_store.put(user_id, item_id)
return {"result": "ok"}
@app.get("/get")
async def get(user_id: int, k: int = 10):
"""
Возвращает список последних k событий для пользователя user_id
"""
events = events_store.get(user_id)[:k]
return {"events": events}