zero4rs 2.0.0

zero4rs is a powerful, pragmatic, and extremely fast web framework for Rust
Documentation
use crate::prelude2::*;

use std::collections::HashMap;

pub async fn redis_fred_ttl(
    query: web::Query<HashMap<String, String>>,
    request: HttpRequest,
    app_state: web::Data<AppState>,
) -> impl Responder {
    let key = query
        .get("key")
        .cloned()
        .unwrap_or_else(|| String::from(""));

    let val = app_state.redis_fred().ttl(&key).await?;

    request.json(200, R::ok(val))
}

pub async fn redis_fred_exists(
    query: web::Query<HashMap<String, String>>,
    request: HttpRequest,
    app_state: web::Data<AppState>,
) -> impl Responder {
    let key = query
        .get("key")
        .cloned()
        .unwrap_or_else(|| String::from(""));

    let val = app_state.redis_fred().exists(&key).await?;

    request.json(200, R::ok(val))
}

pub async fn redis_fred_set(
    query: web::Query<HashMap<String, String>>,
    body: web::Bytes,
    request: HttpRequest,
    app_state: web::Data<AppState>,
) -> impl Responder {
    let key = query
        .get("key")
        .cloned()
        .unwrap_or_else(|| String::from(""));

    let val = crate::commons::bytes_to_string(body.to_vec())?;

    app_state.redis_fred().set(&key, &val, 10).await?;

    request.json(200, R::ok(true))
}

pub async fn redis_fred_get(
    query: web::Query<HashMap<String, String>>,
    request: HttpRequest,
    app_state: web::Data<AppState>,
) -> impl Responder {
    let key = query
        .get("key")
        .cloned()
        .unwrap_or_else(|| String::from(""));

    let val = app_state.redis_fred().get::<String>(&key).await?;

    request.json(200, R::ok(val))
}