Allowing to retrieve data only once

This commit is contained in:
Ivan Golikov 2022-12-20 08:05:21 +01:00
parent d2babe2567
commit 66acd51b6d

View file

@ -1,4 +1,5 @@
from fastapi import FastAPI from fastapi import FastAPI
from fastapi.exceptions import HTTPException
from rectes.models import Secret, SecretSaveResult from rectes.models import Secret, SecretSaveResult
from rectes.redis_db import redis from rectes.redis_db import redis
@ -18,8 +19,18 @@ async def set_secret(data: Secret):
} }
@app.get("/secret/{secret_key}", response_model=Secret) @app.get(
"/secret/{secret_key}",
response_model=Secret,
responses={404: {"description": "The item was not found"}},
)
async def get_secret(secret_key): async def get_secret(secret_key):
data = await redis.get(secret_key)
if data is None:
raise HTTPException(404)
await redis.delete(secret_key)
return { return {
"data": await redis.get(secret_key), "data": data,
} }