Mountain/IPC/WindServiceHandlers/Extensions/ExtensionsGetAll.rs
1#![allow(non_snake_case)]
2
3//! `extensions:getAll` - every scanned extension's raw
4//! manifest, no `ILocalExtension` reshape. Used by tooling /
5//! debug surfaces that want the full payload (extension
6//! activity log, marketplace UI, audit reports). Renderer
7//! consumers MUST go through `ExtensionsGetInstalled` for the
8//! workbench-shaped data.
9
10use std::sync::Arc;
11
12use CommonLibrary::ExtensionManagement::ExtensionManagementService::ExtensionManagementService;
13use serde_json::{Value, json};
14
15use crate::{RunTime::ApplicationRunTime::ApplicationRunTime, dev_log};
16
17pub async fn ExtensionsGetAll(RunTime:Arc<ApplicationRunTime>) -> Result<Value, String> {
18 let Extensions = RunTime
19 .Environment
20 .GetExtensions()
21 .await
22 .map_err(|Error| format!("extensions:getAll failed: {}", Error))?;
23
24 dev_log!("extensions", "extensions:getAll returning {} extensions", Extensions.len());
25
26 if let Some(First) = Extensions.first() {
27 dev_log!(
28 "extensions",
29 "extensions:getAll sample: {}",
30 serde_json::to_string(First)
31 .unwrap_or_default()
32 .chars()
33 .take(300)
34 .collect::<String>()
35 );
36 }
37
38 Ok(json!(Extensions))
39}