pandas-cli 1.0.0

PandasCLI is a command-line tool for quickly generating and managing Rust projects with PandasAPI structure. It helps you set up new projects, generate modules, and streamline your development workflow with ease.
use rocket::serde::json::Json;
use crate::modules::{{module_name}}::dto::{Create{{ModuleName}}Dto, Update{{ModuleName}}Dto};
use crate::modules::{{module_name}}::repository::{{ModuleName}}Repository;
use crate::modules::{{module_name}}::schema::{{ModuleName}};

pub async fn create_{{module_name}}<R: {{ModuleName}}Repository>(repo: &mut R, dto: Create{{ModuleName}}Dto) -> Json<{{ModuleName}}> {
    let {{module_name}} = {{ModuleName}} {
        id: None,
        {{params_impl}}
    };
    Json(repo.create_{{module_name}}({{module_name}}).await)
}

pub async fn get_{{module_name}}<R: {{ModuleName}}Repository>(repo: &mut R) -> Json<Vec<{{ModuleName}}>> {
    Json(repo.get_{{module_name}}().await)
}

pub async fn get_{{module_name}}_by_id<R: {{ModuleName}}Repository>(repo: &mut R, id: &String) -> Option<Json<{{ModuleName}}>> {
    repo.get_{{module_name}}_by_id(id).await.map(Json)
}

pub async fn update_{{module_name}}<R: {{ModuleName}}Repository>(repo: &mut R, id: &str, dto: Update{{ModuleName}}Dto) -> Option<Json<{{ModuleName}}>> {
    repo.update_{{module_name}}(id, dto).await.map(Json)
}

pub async fn delete_{{module_name}}<R: {{ModuleName}}Repository>(repo: &mut R, id: &str) -> bool {
    repo.delete_{{module_name}}(id).await
}