rustploy 0.1.38

Rustploy PaaS daemon — lightweight self-hosted deployment platform
//! `Command::EnvBackupList`/`EnvBackupRestore`: lista e restaura snapshots de
//! env vars (`crate::features::backup`).

use crate::bootstrap::state::AppState;
use shared::Response as RpResponse;

pub async fn list(state: AppState) -> RpResponse {
    match crate::features::backup::list_snapshots(&state.backup_dir).await {
        Ok(names) => RpResponse::EnvBackupSnapshots(names),
        Err(e) => RpResponse::err("BackupError", e.to_string()),
    }
}

pub async fn restore(state: AppState, snapshot: String) -> RpResponse {
    match crate::features::backup::restore_snapshot(&state.db, &state.backup_dir, &snapshot).await {
        Ok(n) => {
            tracing::info!(snapshot, restored = n, "env vars restauradas");
            RpResponse::Ok
        }
        Err(e) => RpResponse::err("RestoreError", e.to_string()),
    }
}