pssecret-server/src/rectes/main.py

37 lines
827 B
Python
Raw Normal View History

2022-06-12 10:47:07 +00:00
from fastapi import FastAPI
from fastapi.exceptions import HTTPException
2022-12-17 13:34:40 +00:00
from rectes.models import Secret, SecretSaveResult
from rectes.redis_db import redis
from rectes.utils import get_new_key
2022-06-12 10:47:07 +00:00
app = FastAPI()
2022-12-17 13:33:26 +00:00
@app.post("/secret", response_model=SecretSaveResult)
async def set_secret(data: Secret):
new_key = await get_new_key()
await redis.setex(new_key, 60 * 60 * 24, data.data)
return {
"status": "saved",
"retrieval_url": f"/secret/{new_key}",
}
@app.get(
"/secret/{secret_key}",
response_model=Secret,
responses={404: {"description": "The item was not found"}},
)
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 {
"data": data,
}