cf-module-orchestrator 0.1.23

Module Orchestrator - system module for service discovery and module management
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use axum::Extension;
use modkit::api::prelude::*;
use std::sync::Arc;

use super::dto::ModuleDto;
use crate::domain::service::ModulesService;

/// List all registered modules with their capabilities, instances, and deployment mode.
///
/// # Errors
///
/// Returns `ApiError` if the response cannot be constructed.
pub async fn list_modules(
    Extension(svc): Extension<Arc<ModulesService>>,
) -> ApiResult<Json<Vec<ModuleDto>>> {
    let modules: Vec<ModuleDto> = svc.list_modules().iter().map(ModuleDto::from).collect();
    Ok(Json(modules))
}