mirror of
https://github.com/FutureOfMedTech-FITM-hack/backend.git
synced 2025-10-18 09:34:18 +03:00
45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
from fastapi import APIRouter
|
|
from fastapi.param_functions import Depends
|
|
from redis.asyncio import ConnectionPool, Redis
|
|
|
|
from med_backend.services.redis.dependency import get_redis_pool
|
|
from med_backend.web.api.redis.schema import RedisValueDTO
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/", response_model=RedisValueDTO)
|
|
async def get_redis_value(
|
|
key: str,
|
|
redis_pool: ConnectionPool = Depends(get_redis_pool),
|
|
) -> RedisValueDTO:
|
|
"""
|
|
Get value from redis.
|
|
|
|
:param key: redis key, to get data from.
|
|
:param redis_pool: redis connection pool.
|
|
:returns: information from redis.
|
|
"""
|
|
async with Redis(connection_pool=redis_pool) as redis:
|
|
redis_value = await redis.get(key)
|
|
return RedisValueDTO(
|
|
key=key,
|
|
value=redis_value,
|
|
)
|
|
|
|
|
|
@router.put("/")
|
|
async def set_redis_value(
|
|
redis_value: RedisValueDTO,
|
|
redis_pool: ConnectionPool = Depends(get_redis_pool),
|
|
) -> None:
|
|
"""
|
|
Set value in redis.
|
|
|
|
:param redis_value: new value data.
|
|
:param redis_pool: redis connection pool.
|
|
"""
|
|
if redis_value.value is not None:
|
|
async with Redis(connection_pool=redis_pool) as redis:
|
|
await redis.set(name=redis_value.key, value=redis_value.value)
|